今天的效率十分的低,让我自己都有点看不下去了。
今天所做的全部工作就是看了《Java编程思想》的构造器这一章,但是看了这一章之后的收获还是挺多的。下面是我简单记录的一些知识点。
构造器没有返回值(与返回值void是不同的),在创建对象的时候调用。
构造器是强制重载方法名的一个原因。参数顺序的不同,也可以用来区分重载方法。重载中,如果传入的基本数据类型小于方法中的声名的形式参数类型,实际数据类型就会被提升。
编译器会暗自把所操作对象的引用作为第一个参数传递给方法。这个偷偷传入的对象用this关键字表示,this关键字只能在方法内部使用。表示对“调用方法的那个对象”的引用。如果在方法内部调用同一个类的其它方法,就不必使用this。只有当需要明确指出当前对象的引用时,才使用this关键字,比如返回语句中,return this
在构造器中调用构造器,使用this关键字,在构造器中如果为this添加参数列表,将产生对符合此参数列表的某个构造器的明确调用,但是一个构造器中只能调用一次
static 方法就是没有this的方法,static方法内部不能调用非static方法
Java允许在类中定义finalize()方法,释放特殊的区域,finaliz在垃圾回收的时候起作用。垃圾回收机制只回收由new产生的空间
1、对象可能不被垃圾回收
2、垃圾回收并不等于析构
finalize()主要用在本地方法中,本地方法也就是在Java中调用非Java代码的方式。本地方法目前只支持C和C++,但是它们又可以调用其它代码
System.gc()可以强制进行终结动作
字节码要比展开后的本地机器码小很多
为某个变量进行赋值的时候,可以在定义类成员变量的地方为其赋值(C++不可以这样做),基本类型和非基本类型都可以,甚至可以调用某个方法进行初始化。
构造器初始化。初始化顺序:即使变量定义散步于方法定义之间,它们仍旧在任何方法(包括构造器)被调用之间被初始化。
静态初始化只有在第一次访问静态数据的时候才被初始化,此后静态成员不会再被初始化。
显式的静态初始化:Java允许将多个静态初始化动作组织成一个特殊的“静态子句”
|
|
非静态对应的初始化
|
|
数组的初始化,int[] a = {1, 2, 3}
Arrays.toString()是java.util标准类库,将产生一维数组的可打印版本。
自动包装机
可变参数列表
|
|
枚举类型,enum。
enum实际上也是一个类,只是其中包含了特殊的类方法,在但因的时候使用ordinal方法可以打印出enum变量的值,而直接打印则是字符串的形式。
下面谈一点感受,到现在,发现我没有一种语言是非常熟悉的,这里的熟悉是指要能够充分云中这种语言的特性,写出高质量的代码,以前的层次都始终停留在写出代码上,写出来就不用说代码的质量到底怎么样了,这一点是很大的问题。我现在最紧迫的任务是要能够将一门或者几门语言练到熟练的地步,这才是继续往下走的基础,也只有这样,才可能取得更多的进步。