第一章 对象导论
1.万物皆是对象
2.java是单继承。
3.简单介绍了,is-a,has-a,容器,异常,并发。
第二章 一切皆是对象
1.引用操作对象。
2.对象是new出来的。
3.堆栈指的是栈。对象放在堆里面。常量通常直接存在程序代码内部。基本类型,在内存中直接存值,在堆栈中。
4.java数组不直接操作内存。
5.不用手动销毁,区别C/C++。垃圾回收器自动清理。
6.简单介绍类,方法,类成员。java使用“方法”这个词语来描述子程序,而非C/C++的函数。方法名和参数列表,唯一标识某个方法。
7.简单介绍包名的命名。
8.简单介绍static,属于类,不属于对象。
9.注释,多行注释“/** 内容 */”(文档注释),“/* 内容 */”(只代表注释)和单行注释“//内容”。
10.javadoc命令生成文档。介绍在文档注释中,@author(作者),@version(版本),@see(链接),@param(参数),@return(返回值)的用法
第3章 操作符
1.先乘除再加减。为表达清晰,最好括号括住乘除。
2.“=”等号为赋值。“++”和“--”放变量前面,先加减再赋值;放后面,先赋值再加减。
3.关系操作符“<”,“>”,“<=”,“>=”,“==”,“!=”。
4.比较对象内容用equal(),基本类型可以用==和!=。
5.逻辑操作符“&&”,“||”,“!”。注意“&&”操作符的短路,若左边是false,则右边的不再执行。
6.1.39E-43表示:1.39×10的43次方。
7.位操作,“&”,“|”,“^”,“~”。位移操作符“<<”,“>>”。
8.介绍if-else和 “ ? : ”。
9.类型转换,窄化操作,需要强制转换。多余位数直接舍去,不四舍五入。如“29.7”强转int,变为29.
第4章 控制执行流程
1.true和false。if-else。
2.do-while两种写法:“while(){}”和“do{}while()”;
3.for循环,for(语句1;语句2;语句3){语句4},“语句3”在“语句4”之后执行
4.foreach,return退出方法,break退出循环,continue继续下次循环
第五章 初始化与清理
1.构造器没有返回值,与返回值为空(void)不同
2.区分重载的方法:①参数类型不同。②参数数量不同。③参数顺序不同。返回值不同不能作为区分重载的方法。
3.没有手动创建构造器,编译器会自动创建一个无参构造器。若只手动创建了一有参构造器,则不能使用无参构造器创造对象,会编译错误。
4.this:调用方法的那个对象。可以用return this; 来返回当前对象。
5.构造器中调用构造器可以用this实现,但必须放在第一行。无法在一个构造器中调用两个其他构造器。禁止在其他非构造器方法中调用构造器
6.static方法有全局函数的语义。
7.垃圾回收器准备释放对象占用的存储空间时,会先调用对象的finalize()方法,在垃圾回收真正发生时,才会清理对象所占用内存空间。finalize()方法存在的意义在于:某些“本地方法”会分配内存,垃圾回收只会清理对象所占的内存
8.java本地方法,只支持C/C++,但它们可以调用其他语言的方法
9.垃圾清理是“自适应技术”:java虚拟机会进行监视,如果对象都很稳定,垃圾回收器的效率降低的话,就切换到“标记-清扫”方式,同样,java虚拟机会跟踪“标记-清扫”的效果,要是堆空间出现很多碎片,就会切换回“停止-复制”方式。
10.局部变量必须初始化。类的数据成员可以不必初始化,若是基本数据类型,会自动赋默认值,对象自动赋值null。
11.初始化时,变量的初始化先于构造方法,即使变量的初始化语句在构造方法后面仍是先执行。
12.无论创造多少对象,静态对象只占用一个存储空间。静态初始化动作只执行一次。
13.实例代码块:无static,直接在类中定义,直接大括号括住的代码块;普通代码块:直接大括号括住,出现在方法中,按顺序执行,相当于普通代码。
14.类初始化顺序,①静态代码块②类变量/实例代码块③构造方法
15.不带static直接大括号的代码块,初始化顺序,可以当类变量一样,也是在构造方法之前,初始化多次,每次new之前都执行
16.数组定义好之后,不能再次“sArray={"a", "b", "c"};”,这样赋值,会报错,只能单个修改
17.可变参数,参数形如“(int required, String... strs)”
18.java5开始引入枚举类型enum。
第六章 访问权限控制
1.访问权限控制等级,从大到小:public,protect,包访问权限(没有关键词,有称呼为友元的,friendly),private。
2.每个“后缀名.java”文件中只能有一个public修饰的class,且必须和文件名相同。无public类,文件可以随意命名,不推荐。
3.package语句是除注释外的第一个语句。包名小写。推荐包名命名方式,域名倒序。
4.java解释器查找类运行过程:先找CLASSPATH,作为根目录,再加包名,包名“.”替换为反斜杠。在这些目录中查找相应的类。
5.引用多个包含有相同类名冲突时,可以写完整包名来区分。
6.本书例子中直接调用静态方法printnb(),导入方式:"import static net.mindView.util.Print.*;",此处“*”代指方法名。尽量不用此种方式。
7.public: 所修饰的类、变量、方法,在内外包均具有访问权限;
protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的。对同包的类是可访问的,对外包的非子类是不可以访问;
包访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
private: 私有的权限,只对本类的方法可以使用。
8.类的访问权限,只有public和包访问权限(什么都不写)两种。