java杂记

复习java,记一点开始别不熟悉的东西。

1,成员变量,系统会默认初始化(非基本数据类型默认值为null,基本数据类型中数值型(short,int,long,double,float,byte)默认为0,boolean默认为false,char为\u0000。局部变量,系统不会进行初始化

2,在gvm中内存主要分为两部分:栈,堆。栈是用来存储局部变量的,堆是用来存储new出来的对象的。并且在在还存在一块区域:方法区,它是用来存储类的信息(如:属性,方法等),static变量与方法,常量池

3,垃圾回收。所谓的垃圾就是没有被引用的对象,gc会自动回收它。因此,垃圾回收的话,可以将对象引用赋值为null即可

4,static变量又称是类变量。在方法区中,有一块区域是用来存储static的,这块区域直接从属于类,所以static又称类变量。非static是从属于对象的。因此,在没有对象的时候,是可以用该类中的静态成员的。当调用到一个类中的成员时,首先会把该类信息加载到方法区中,所以可以直接调用类虽的静态成员,但此时并没有相应的对象。

5,一个类被加载到方法区中,并不是只有new出对象时。只要调用到类中的任何一个成员变量、方法,都会加载的。例如MyClass.staticField时,MyClass这个类的信息一样会被加载到方法区中。

6,this又称隐式参数。是因为在每一个方法中,默认的会传入一个该类的对象,因此,可以在方法中使用this。此时this就指向了当前对象的物理地址。因此,我们在方法可以使用this代替当前的对象。super也是同理的。静态方法是不能调用this的。

你可能感兴趣的:(java杂记)