第一章:JAVA语言概述
1.1:JAVA语言简史
1.2:JAVA的竞争对手及其各自优势
1.3:JAVA程序运行机制
1:解释型语言优势:跨平台比较容易。
2:JAVA既是编译型语言,又是解释型语言
1.4 开发JAVA的准备
1:JRE包含JVM
1.5 第一个JAVA程序
1:javac语法
javac -d destdir srcFile
当前目录可用.表示
2:
1.6 JAVA程序的基本规则
1:类是JAVA程序中的最小程序单位
2:拥有main方法的类才可以被解释器执行
3:JAVA源程序的程序名必须与public类的类名相同,因此,一个java源文件只能含有一个public类
4:JAVA严格区分大小写
1.7 垃圾回收机制
1:除了释放没用的对象外,垃圾回收也可以清除内存记录碎片。垃圾回收会影响程序性能。
2:
编写JAVA程序时,一个基本原则是,对于不在需要的对象,不要引用他们,可赋值为null
1.8 何时开始使用IDE工具
1.9 本章小结
第二章:理解面向对象
2.1 面向对象
1:JAVA拒绝使用goto,但是将goto关键字保留
2:JAVA不支持多继承
2.2 UML介绍
2.3 JAVA的面向对象特征
第三章:数据类型和运算符
1:JAVA是强类型,强类型有2个含义:a:所有类型必须先声明后使用;b:指定类型的变量只能接受类型与之匹配的值
3.1 注释
1:文档注释:以/**开头,以*/结尾
2:可使用javadoc命令自动将文档注释生成API文档
3.2 标识符和关键字
P45:JAVA语句可以跨行,但是一个字符串,变量名不能跨多行。
P46:JAVA语言的标识符必须以字母、下划线、美元符开头,后面可以接任意数目的字母、数字、下划线、美元符
P46:JAVA关键字
3.3 数据类型分类
P47:null只能转化为引用类型,不能转换为基本类型
P48:数据类型
P49:八进制以0开头,十六进行以0x或0X开头,二进制以0B或者0b开头
P51:float:1+8+23;double:1+11+52
P51:浮点数必须包含一个小数点,否则会被当做int来处理
P51:JAVA整形默认为int,浮点默认为double
P51:正无穷大:POSITIVE_INFINITY,负无穷大:NEGATIVE_INFINITY,非数:NaN,在类Double或者Float中
P52:可以在数值中使用下划线,不管是整形还是浮点,都可以自由的使用下划线,通过下划线分割,可以更直观的分辨数字常量中到底有多少位
P53:java中Boolean数值只能是true或false,不能用0或者非0来代表,其他数据类型的值也不能转换为Boolean
3.5 基本类型的类型转换
P55:把浮点强制转换为整数时,会直接截断浮点数的小数部分
3.6 直接量
3.7 运算符
P59:当做含有浮点数的除法时,可以除以0或者0.0,此时输出为无穷大,非浮点情况会跑出异常。
P59:当求余运算都是整数时,第二个数不能为0,否则会除法除零异常。如果含有浮点,则允许第二个为0或0.0,但结果为NaN。0或者0.0对任何数求余都是0或0.0
P61:赋值表达式是有值的,值为右边被赋的值
P62:>>>无符号右移
P64:对int类型整数移位a>>b时,若b>32,系统会先用b对32取余,同理,long对64先取余
第四章:流程控制与数组
4.1 顺序结构
4.2 分支结构
P75:switch的表达式只能是byte,short,char,int这4个整形以及枚举类型,还有java.lang.String
4.3 循环结构
P79:do-while后面又分号
4.4 控制循环结构
P85:JAVA可以使用标签来来break或者continue外层循环
4.5 数组类型
P86:数组是一种引用类型
P87:定义数组时不能指定数组长度
P89:数组提供一个属性length
P90:使用foreach不能改变数组的值
4.6 深入数组
第五章:面向对象(上)
5.1 类和对象
P106:如果程序员没有编写构造函数,系统会提供一个默认的,一旦编写了,就不会提供
P107:修饰符public,private,protected只能出现一个,abstract和final最多只能出现一个
P108:构造器的返回值是隐士的
P112:static修饰的方法中不能使用this,所以静态成员不能访问非静态成员
5.2 方法详解
P115:JAVA传参数只有值传递
5.3 成员变量和局部变量
P127:局部变量定义后,必须显示初始化,系统不会为其自动初始化
5.4 隐藏和封装
P130:访问控制级别又小到大:private,default,protected,public。default修饰的可以被同一个包内访问
P134:包是逻辑路径,不一定要是具体路径
P135:一个JAVA源文件只能包含一个package语句,可以包含多个import语句
5.5 深入构造器
5.6 类的继承
P143:
5.7 多态
P149:方法具有多态性,对象不具有多态性
P150:
5.8 继承和组合
5.9 初始化块
P157:初始化块只在创建java对象时隐式执行,而且在执行构造器之前执行
P157:普通初始化块,声明实例Field指定的默认值都是对象的初始化代码,它们的执行 顺序和源程序中的排列顺序一致。使用static修饰则变成静态初始块,在类初始化而不是对象初始化的时候执行。
第六章:面向对象(下)
6.1 JAVA7增强的 包装类
P163:除了Character之外,其他包装类都可以使用字符串参数来构造
P163:
P165:虽然包装类是引用对象,但是包装类的实例可以和数值类型进行比较
P166:
P166:两个Boolean进行比较时,true>false
6.2 处理对象
P168:Object类提供的toString方法总是输出类名+@+hashCode
P169:
6.3 类成员
6.4 final修饰符
P175:final修饰的成员变量必须由程序员显示地指定初始值
P175:
P176:如果final修饰的局部变量在定义时没有指定默认值,则可以在后面代码中队该final变量赋初始值,但只能一次。
P180:
P180:java提供的8个包装类和String类都是不可变类
P185:
6.5 抽象类
P186:抽象类没有方法体没有花括号,直接跟分号。普通方法体只有花括号
6.6 更彻底的抽象:接口
P191:在接口中定义变量,会自动添加public,static,final
P195:
6.7 内部类
P199:内部类可以访问外部类的私有数据,但是外部类不能访问内部类的实现细节