JavaSE复习_2 对象与类

△java中的制表符.' '制表符." "也可以.
△方法内不能再定义一个方法,互相平级.
△数组中boolean类型的变量默认为false;char默认为'u0000'(u是unicode 的一种标识,标识16进制)
△int [ ]a=new int[4]{1,2,3,4};非法
 int [ ]a=new int[]{1,2,3,4};合法
   int [ ]a=new int[]{1,2,3,4};可以在不同行,先声明,后赋值如:
  int [ ]a;
  a=new int[ ]{1,2,3,4};
  int []b={1,2,3,4}只能在同一行,不能先声明后初始化.
   静态初始化: 程序员在初始化数组时为数组每个元素赋值;
   动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值
△Java中包含的是整个程序中需要保持唯一的元素,比方说.class,还有静态变量.方法和类一起存储于方法区中
△如果给出了构造函数,系统不再提供默认的构造函数 
△Java中的对象中的方法是能够访问任何同一类的对象的私有变量的.
△声明一个对象的步骤:
   1.将class文件加载进内存
   2.声明一个引用
   3.堆内存中创建对象,并进行默认初始化.
   4.成员变量进行显示初始化
   5.构造方法进栈.进行构造代码块初始化然后构造方法初始化随后构造方法弹栈
   6.将对象的地址值赋值给引用变量
△静态变量和方法均存在于方法区中.
类加载顺序:方法只有调用才会加载.因此
public   class   Parent   { 
//第零步,首先定义iz,iy两个变量,并初始化为0(因为是int类型,如果是对象则为null)
private   static   int   iz   =   getNext(2); //第一步,因为有方法调用,所以转到方法,即第二步
private   static   int   iy=99; //第三步
 
 
//静态初始化块 
static //第四步
{ 
System.out.println("parent的静态初始化块"); 
System.out.println(iz); //这里因为第二步,iz=3
System.out.println(iy); //这里因为第三步,iy=4
} 
 
 
 
public   static   int   getNext(int   base) //第二步,方法调用
{ 
System.out.println("parent的static   int   getNext(int   base)被调用"); 
System.out.println(iy); //iy初始化为0
System.out.println(iz); //iz初始化也为0,这里就说明先走变量定义,对于int类型,初始化为0
return   ++base; 
} 
 
public   static   void   t() //这里没有执行,这就说明了,方法不调用,就不会被加载,所以如果第一步不调用getNext方法,第二步就不会执行,就会直接到第三步
{ 
System.out.println("parent的static   void   t被调用"); 
System.out.println(iz); 
 
} 
 
}
1.方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
△默认的或者私有的类无法生成javadoc
△构造代码块每创建一次对象,就会执行一次.而且是优先于构造函数执行.静态代码块优先于主方法执行.
加油
原文地址:https://www.cnblogs.com/hlhdidi/p/5574300.html