/**
* U1的总结
*
*
* 一 :java基础
* 1.初始java
* 01.java发展史 1995 诞生
* 02.java的优势
* 03.java虚拟机和跨平台原理 JDK JAVA开发工具包 JRE java运行环境 JVM java虚拟机
* 04.使用记事本开发java程序
* 001.创建源文件 .java
* 002.编译源文件 使用javac
* 003.运行字节码文件 .class
* 05.使用IDE工具进行开发
* 001.包的声明 package
* 002.包的命名规范
* 003.导入包 import
* 004.main()四要素 public static void main(String[] args)
* 005.3种注释 注释的目的
* 06.jdk API
* 07.反编译工具
* 2.数据类型和运算符
* 01.变量的概念:一个数据在内存空间中的表示!
* 变量的规范:
* 001.驼峰命名法
* 002.只能以字母 _ $ ¥开头
* 003.有意义
* 02.常量的概念:在运行期间不允许被改变的量!
* 常量的规范:
* 001.由final 修饰
* 002.全大写,有意义的单词之间使用下划线 分割
* 003.一般在定义的时候初始化!
* 03.java中八种基本数据类型
* 001.byte 1byte=8bit -128 127
* 002.short
* 003.int -2的31次方 2的31次方-1
* 004.long
* 005.float
* 006.double
* 007.char 数值取值范围 0-65535
* 008.boolean true false
* 04.关键字 :java中已经使用的单词,并且有特殊的涵含义!
* 保留字(goto,const) :有可能称为关键字的单词!
* 都不能作为变量名来使用!
* 05.数据类型转换
* double score=85; //自动类型转换 小转大
* int score=85.5; //需要强制类型转换 大转小
* 06.算术运算符
* / 取整
* % 取余
* 07.逻辑运算符
* && || !
* 三元运算符:
* 表达式1?表达式2:表达式3
* 表达式1===》必须是boolean类型的值!
* 为true 执行 表达式2
* 为false 执行 表达式3
* 3.流程控制
* 01.if-else
* if(表达式) 表达式===》必须是boolean类型的值!
* 如果只有一条输出语句,可以省略大括号!
* 02.if -else if -else
* 03.嵌套if
* 04.switch等值
* 05.break return continue
* 06.while 先判断再执行
* 07.do - while 先执行再判断
* 08.for 适用于次数固定的循环
* for(表达式1;表达式2;表达式3){
* 循环体
* }
* 表达式1:初始化变量
* 表达式2:循环条件
* 表达式3:迭代变量
* 循环体:需要重复执行的操作!
*
* 执行顺序:
* 表达式1--》表达式2--》 循环体--》表达式3--》表达式2
*
* 4.数组
* 01.数组的概念:一组相同数据类型数据的集合!
* 下标:从0开始
* 标识符:数组的名称
* 长度:length
* 数据类型
* 02.打擂法
* 03.冒泡排序
* 两两相比小靠前,
* 外层循环N-1
* 内层循环N-1-i
* 之后等量转换
* 04. 2分查找法 ***
* 05.Arrays类操作数组 一系列方法
*
*二:面向对象
* 1.类和对象
* 001.类和对象之间的关系!
* 类是对象的模版,对象是类的实例!
* 一个类可以实例化N个对象!而且每个对象都是独一无二的!
* 002.全局变量和局部变量
* 是否具有初始值!
* 就近原则
* 003.属性(特征)和方法(行为)
* 004.static 属于类!多个对象之间共享!
* 005.静态代码块 普通代码块 构造 执行的顺序
* 006.this super
* 007.方法重载
* 本类中!
* 方法名相同,参数列表不同
* 与返回值类型和修饰符 无关!
* 008.方法重写
* 具有继承关系!
* 方法名相同,参数列表相同!
* 返回值可以是其子类对象
* 访问修饰符 不能严于父类!
* 009.构造方法 ,构造的重载
* 010.参数传递
* 基本数据类型+String 在作为参数的时候,传递的是值!
* 引用数据类型,在作为参数的时候,传递的是地址!
*
*
*
* 2.封装
* 目的:避免用户不健康的输入!
*
* 01.属性私有化
* 02.提供get set方法
* 03.增加逻辑判断
* 3.继承 单根继承 extends
* 小猫咪 动物 轮船 交通工具
* 满足 is a 关系!
* 01.Object 所有的类的父类
* 001.equals
* 002.toString
* 003.hashCode
* 02.访问权限修饰符
* private
* protected
* public
* 默认 0
* 4.多态
* 01.静态多态 =====》方法的重载
* 02.动态多态
*
* 多态存在的条件
* 001.必须有继承关系
* 002.必须重写方法
* 003.父类引用指向子类的对象
* 03.向上转型 向下转型
* 04.instanceof 判断某个对象是否属于某个类型
*
* 使用多态的场景:
* 01.使用父类作为方法的参数
* 02.使用父类作为方法的返回值
* 5.抽象类 子类中需要重写父类的方法!但是父类的方法中 没有任何语句!显然是没有意义!提取成抽象方法!
* 01.抽象方法 不能有方法体!
* 02.抽象类的概念
* 001.由abstract修饰
* 002.类中可以有构造方法,但是不能实例化
* 003.类中可以有非抽象方法!
* 004.子类中必须重写所有的抽象方法,除非子类也是抽象类!
* 005.父类中静态的方法,子类是不能重写的!
* 6.接口 implements 解决java中的单根继承!
*
* has a 具有某个功能!
* 本身不关注方法的实现!
* 谁实现 谁关注!
*
* 接口可以继承接口! extends
* 所有的属性都是静态常量,必须有初始值!static final
* 所有的方法都是public abstract修饰的!
* public abstract可以省略!
*
* 接口和抽象类的区别
*
* 7.异常
* 01.异常:在程序的运行过程中产生的不正常的事件,会中断程序的执行!
* 02.异常处理机制:保证异常只有的代码能执行完毕!
* 03.try catch finally throw throws
* 04. throw throws 区别
* 05. return finally 执行顺序
* 06.finally 不执行的情况
* 07.常用的几种异常
* ArithmeticException 算术异常
* ArrayIndexOutOfBoundsException 数组下标越界
* NullPointException 空指针异常
* ClassNotFoundException 没有找到类
* ClassCastException 类型转换异常
* NumberFormatException 数字格式转换异常!
* IllegalArgumentException 非法参数异常!
*
*三:java高级
* 1.集合框架以及泛型
* Collection 接口
* List
* ArrayList LinkedList 区别
* Set
* HashSet HashTable
* Map
* HashMap
* Collections 操作类 操作 集合
* 一些列的方法
* Iterator 遍历
* 2.实用类
* 01.枚举定义 Enum 目的
* 02.基本数据类型的包装类 装箱 拆箱 ***
* 03.Math类进行数学运算
* 04.String 操作字符串
* == 和equals 区别
* String a =new String("a");
* 05.String StringBuffer StringBuilder 区别
* 06.Date 和Calendar 操作时间
* 07.SimpleDateFormate类格式化日期
* 001.format把日期转换成字符串
* 002.parse 把字符串转换成日期
* 08.Random 类获取随机数
*
* 3.输入输出流
* 01.File类创建文件夹 文件属性
* 02.IO流 输入 输出 都是相对于 内存!
* 所有的输入都有read() 所有的输出都有write()
* 001.字节流
* InputStream
* OutputStream
* 002.字符流
* Reader
* Writer
* 003.操作2进制文件
* DataInputStream
* DataOutputStream
* 4.序列化和反序列化
* 01.序列化:将内存中 *对象*放入存储介质中!持久化的过程!
* 前提对象必须实现Serializable接口
* 02.反序列化:将存储介质中的对象,放到内存中的过程!
* ObjectInputStream
* ObjectOutputStream
*
* transient 序列化的时候 忽略此属性
*
* 5.多线程
* 01.线程 和 进程 区别
* 02.多线程 并发
* 03.线程的生命周期
* 001.新生状态 new 对象
* 002.就绪状态 对象.start()
* 003.运行状态 调用run()
* 004.阻塞状态 join sleep wait yield
* 005.死亡状态
* 0001.正常 run()执行完毕
* 0002.非正常 run()执行过程中出现异常情况
* 04.start()和run()区别
* 05.线程的优先级 0-10
* 06.线程同步的问题
* synchronized 锁的都是对象
* 001.同步代码块
* 002.同步代码方法
* 6.网络编程
* 01.协议 ip 域名 端口
* 02.Socket编程 基于TCP
* 001.ServerSocket 服务器
* 002.Socket 客户端
* 03.Socket编程 基于UDP
* 001.DatagramPacket 打包 拆包
* 002.DatagramSocket 接收 发送
* 04.TCP 和 UDP区别
*
* 7.xml
* 01.xml的概念:可扩展的标记语言! 无需预编译!
* 02.DTD
* * ? + 什么意思
* 03.解析xml的4种方式 dom sax jdom dom4j
* 04. dom解析xml
* 001.创建解析器工厂
* 002.创建解析器
* 003.解析文件
*
* 004.创建转换器工厂
* 005.创建转换器
* 006.保存到xml
* 05. dom4j解析xml
* 001.创建解析器工厂
* 002.创建解析器
* 003.解析文件
*
* 004.创建转换器工厂
* 005.创建转换器
* 006.保存到xml
*
*反射:
* 01.反射的概念
* 02.Class.forName("完整限定名");
*
*
* 单例: 保证在整个应用程序中,类只有一个实例!而且这个实例是 自身创建的!
* 01.懒汉
* 02.饿汉
* 03.双重锁
*
* 实现单例的步骤:
* 01.创建本类的静态对象!
* 02.私有化构造
* 03.提供对外部访问的接口
*
*
*
*
*
*
*
*/