java读书笔记(1)-对象与内存控制

一、Java中类的初始化分为2个阶段:

  1、为类变量分配内存空间;

  2、按初始化代码(定义时指定初始值和初始化代码块中执行初始值)的排列顺序对类变量执行初始化;

     看个例子:

     

public class App 
{
    public App(){
        time = 5;
    }
    {
        time = 3;
    }
    int time = 4;
    
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

javap -c App.class命令:

  通过javap命令可以看到:初始化代码块和赋值语句会根据编写的顺序合并到类的构造方法中,time赋值的顺序是 time = 3,time =4,time=5;

二、父子实例

class Base{
        int count = 2;
        public void display(){
            System.out.println(count);
        }
    }
    
    class Derivd extends Base{
        int count = 200;
        public void display(){
            System.out.println(count);
        }
    }
    
    public static void main( String[] args )
    {
        Base base = new Derivd();
        System.out.println(base.count);//输出2
        base.display();//输出200
        
    }

 

 

三、final修饰符

  当定义final变量时就为该变量指定了初始值,而且该初始值可以在编译时就确定下来,那这个final变量本质上就是一个“宏变量”,编译器会把程序中所有用到该变量的地方直接替换成该变量的值;

  

 

posted @ 2017-09-15 17:53  猎空  阅读(153)  评论(0编辑  收藏  举报