黑马程序员技术交流社区

标题: JAVA学习记录3 静态代码块 构造函数 构造函数快 [打印本页]

作者: xman20    时间: 2015-3-21 09:30
标题: JAVA学习记录3 静态代码块 构造函数 构造函数快
这几日学习了静态代码块,构造函数,构造函数块。

对于JAVA对于内存的设置有了一些深的认识,内存会被分成静态代码块,栈内存,堆内存,所有的引用类型都存在于栈内存中,实例化的对象都存放在堆内存中。

之前编写程序的时候,喜欢首先给对象起个名称,但是没有实例化,后续再调用的时候总是出现空指针异常,因为没有实例化对象,引用没有指定相对的引用经常报错。

以前对于一个对象实例化后的执行顺序是混乱的,静态代码,构造代码块,构造函数块的执行顺序,对象的实例化会首先执行静态代码块,之后会执行构造代码,最后才执行构造函数代码块。

其中有一个小细节,所有new出的新对象,都会有同一个静态代码块,当同时new两个新对象的时候,静态代码块只会执行一次。

Static和final的优势之一就是减少代码的重复以及节约内存,特别是后面的程序代码越写越多的时候,可以减少代码的数量,并且可以整理出更多的内存。

此前没有做文档的习惯,也没有规范化注释,都是简单的//注释或者,都是以前写C程序没有好好写注释遗留下来的不好的习惯。

This的引用是代表当前对象,而super是代表父类。

使用了static关键字后,可以不实例化对象,直接用类成员去调用方法,不需要实例化对象






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2