随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。
初始化和清理正是设计安全的两个问题。
构造器:
java在创建对象时,用构造器保证对象被初始化。
使用
new关键字,将会为对象分配存储空间,并调用相对应的构造器。
构造器名称与类名相同。
不接受任何参数的构造器称为默认构造器,也称为
无参构造器;
构造器也是方法无返回值,和void空返回值不同;
构造器方法和普通方法的区别:
方法名和类名称相同,首字母大写
无返回值类型
方法重载:
方法签名相同,参数类型不同;
方法签名:返回值类型+方法名
this关键字:
this表示当前对象,this关键字只能在方法内部使用,表示对“调用方法的哪个对象”的引用;
在构造器中调用构造器,可以使用this关键字;
例如调用无参构造器,可以在有参构造器中加入this();
static的含义:
static方法就是没有this的方法。在static方法内部不能调用非静态方法。
清理:终结处理和垃圾回收
finalize
Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。
工作原理:
工作原理应该是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作(如关闭流等操作)。
使用垃圾回收器的原因是为了回收程序不再使用的内存。
终结条件:
System.gc()用于强制进行终结动作
垃圾回收机制原理:
不同模式有不同机制;
引用记数是一种简单但是速度很慢的垃圾回收技术;
每个对象都含有一个引用记数器,当有引用连接上对象时,引用记数加1。当引用离开作用域或者为null时,引用记数减一。当引用计数器为0时,垃圾回收器会释放资源。