thinking in java读书笔记4

初始化与清理
  1.在java中用构造函数来确保对象被初始化,构造函数的名字和类名一样,并且编程风格要求的方法首字母小写的要求不适用于构造函数,因为构造函数必须和类名完全一致。
   构造函数也能有参数,让你能对对象的初始化提供参数。 默认的构造函数是不带参数的。当你定义了构造函数,就不会再有默认的构造函数。
   构造函数是一种特殊的方法,它没有返回值。这点同 void 有本质的区别,void 的方法什么都不返回,这是由你决定的,你也可以返回值,但构造函数什么都不返回,你别无选择。
   new 表达式会返回这个对象的 reference ,但构造函数本身并不返回任何东西。
    public class TestConsctuctor{  
   TestConstructor(String argument){}  //带参数的构造函数
 }
  2. 方法重载(reload)是在面向对象开发中是一种很重要的方法。
      class TestReload{
 
  TestReload(){}               // construct method
  TestReload(String argument){} //reload construct method

  private void testMethod(){}               // ordinary method
  private String testMethod(List list){}      //reload ordinary method
 }
 3.区分重载的方法:每一个经过重载的方法都必须有唯一的参数类型的列表。即使是参数位置的颠倒也能区分开两个方法。
 4.this 只能用在方法的内部,它负责返回调用这个方法的对象的reference.它常用于return语句以返回当前对象的reference.this还可用来再构造函数里面调用构造函数,如:
 class TestThis{
 int a = 0;
 TestThis(){...}
 TestThis(int a){...}
 testThis(string d){...}
 TestThis(int a ,String d){
   this(a); //invoke TestThis(int a)
   this.a = a; // this.a present class variable
   }
 }
 5.static :你不能在static方法里面调用非static方法,反过来可以。类的static 方法只能访问其它static方法和static 数据成员。
 6.对象不一定被垃圾回收器回收,所以定义了finalize()方法,不同于c++中的拆构函数。垃圾回收只与内存有关。垃圾回收的时候会先调用finalize()方法。一般只用于清理一些
   不是通过new生成在内存中的东西。比如native方式生成的本地代码。
 7.垃圾回收和finalize()方法都是靠不住的,只要jvm还没有到耗尽内存的时候,它是不会浪费时间来回收垃圾以恢复内存的。因此,在某些特别的场合下,你必须自己创建清理垃圾
  的方法,并且明明白白的调用它。
 8.垃圾回收原理:reference counting; adaptive;stop-and-copy; mark-and-sweep;
 9.初始化:默认初始化值,primitive一般为0,object为null; 自己指定初始化值; 构造函数进行初始化。
 10.初始化的顺序:变量的初始化会先于任何方法,甚至是构造函数的调用;static变量->变量->构造函数->方法.static成员只会在需要的时候才进行初始化,static初始化
   只执行一次。
 11.创建对象的步骤:以Dog类举例,
   a.第一次创建Dog对象,或访问Dog类的static成员时,java会自动搜索classpath,找到Dog.class
   b.装载class对象之后会对所有的static成员进行初始化
   c.用new Gog()创建新的对象的时候,Dog对象的构建进程会现在堆里为对象分配足够的内存
   d.这快内存被清零,这样就自动把Dog对象的primitive默认为0,reference为null
   e.执行定义成员数据时的初始化
   f.执行构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值