1.1.万物皆对象;
1.2.程序是对象的集合,他们通过发送消息来告知彼此要做的;
1.3.每个对象都有自己的由其他对象所构成的存储;
1.4.每个对象都拥有其类型;
1.5.某一特定类型的所有对象都可以接收同样的消息;
1.6.类描述了具有相同特性(数据元素)和行为(功能)的对象集合;
1.7.组合:现有的类合成新的类;
2.1.用引用操作对象;
2.2.存储区域:寄存器、堆栈、堆、常量存储和非RAM存储;
2.3.高精度数字:BigInteger、BigDecimal;
3.1.操作符:赋值“=” 和比较“==”;
3.2.自增i++/++i、自减i--/--i;
3.3.关系操作符、逻辑操作符、短路、按位操作符、移位操作符;
3.4.三元操作符:boolean-exp?value1:value2;
4.1.Java中中控制语句关键之包括if-else、while、do-while、for、return、break以及switch,但不包括goto;
4.2.while和do-while唯一的区别是do-while的语句至少会执行一次,即使表达式第一次为false;
4.3.return一方面指定一个方法返回什么值,另一方面它会导致当前的方法退出并返回值;
4.4.、break和continue都可用于控制循环的流程,其中break强行退出循环,不执行剩下额语句,而continue是停止当前的迭代,开始下一次迭代;
4.5.无穷循环:while(true)、for(;;);
5.1.方法重载、构造器重载;不以返回值作为区分重载方法,例如调用时f(),无法确定返回值;
5.2.this关键字:在方法内部使用,表示对“调用方法的那个对象”的引用;
5.3. static静态:一是为特定域分配单一内存空间,二是希望方法或者域不和任何其对象关联;
5.4.垃圾回收机制:一旦垃圾回收机制准备好释放对象占用的存储空间,首先调用其finalize()方法,并且在下一次垃圾回收动作发生前,才会真正回收对象所占用的内存,所以使用finalize()可以在垃圾回收时刻做一些重要的清理工作;
5.5.成员初始化、构造器初始化;在类的内部,变量定义的顺序决定了初始化的顺序;
5.6.静态数据的初始化:无论创建多少个对象,静态数据只占一份存储区域;对于静态的基本数据域,且也没有对他们进行初始化,那么他就会获得基本类型的标准初值,若是对象引用,默认初始值就是null;静态域在第一次被访问的时候才会被初始化;
5.7.初始化的顺序是先静态对象,而后是非静态对象;
5.8.对象创建过程:
1)创建对象或者首次访问某类的静态方法/域时,Java解释器查找类路径定位到.Class文件;
2)载入.Class文件,执行静态初始化;
3)当new一个对象时,首先在堆上为对象分配足够的存储空间,这块存储空间会被清零,这就自动的将对象中的基本数据类型设置了默认值,而引用被设置为null;
4)执行所有出现于字段定义出的初始化动作;
5)执行构造器;
5.9.数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或者基本类型数据序列;
5.10.数组元素中的基本类型值会自动初始化为空值(0或false),对于非基本类型的数组,实际是一个引用数组,如果没有创建对象,且试图去使用数组中的空引用,就会在运行时产生异常;
5.11.可变参数列表:参数个数或类型未知;
6.1.访问控制权限:public、protected、包访问权限(无关键字)和private;
6.2.package和import;
6.3.接口和实现:封装;
6.4.类的访问权限:仅有public和包访问权限,不能有其他;每个编译单元只能有一个public类,每个编译单元都有单一的公共接口,用public类来实现。该接口可以按要求包含众多的支持包访问的类,若某个编译单元内存在一个以上的public类,编译器会给出出错信息;public类的名称必须和含有该编译单元的文件名匹配,包括大小写;
7.1.复用:组合、继承和代理;
7.2.继承:创建一个子类,从外部看,它就像是一个与父类具有相同接口的新类,还有一些额外的域和方法,但继承不只是复制父类的接口,在创建子类的对象时,该对象包含了一个父类的子对象,这个子对象跟由父类直接创建的对象是一样的,二者的区别是后者来自于外部,前者被包装在子类对象的内部;
7.3.父类初始化:在构造器中调用父类构造器来执行初始化,而父类构造器具有执行父类初始化所需要的所有知识和能力;如果没有默认的父类构造器,或者想调用一个带参的父类构造器,就必须用super显式地编写调用父类构造器的语句,且配上适当的参数;
7.4.代理:将一个成员对象置于要构造的类中,与此同时在这个新类中暴露该成员对象的所有方法;
public class A{
private B b = new B();
public void method1(){
b.method1();
}
}
7.5.关键字protected指明:就类用户而言,这是私有的,但对于任何继承于此类的子类或者其他任何位于同一个包内的类来说,它却是可以访问的;
7.6.final关键字:
1)final常量:初始化后不被改变,这类常量必须是基本数据类型,在定义时必须进行赋值;static和final修饰的域占据一段不能改变得存储空间;
2)final引用:使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象,但是对象却是可以被修改的,Java并没有提供任何使对象恒定不变的途径;
3)final参数:无法在方法中更改参数引用所指向的对象;
4)final方法:保证方法不会被重写;
5)final类:被修饰的类为终类,无法被继承;final类中的方法隐式的指定为final的,因为无法覆盖它们;
8.1将一个方法的调用同一个方法主体关联起来称为绑定;在运行时根据对象类型进行绑定称为运行时或者动态绑定;
8.2.用继承表达行为间的差异,并用字段表达状态上的变化;