Java笔记(三)访问控制符等说明

访问控制符
public private static protected final
static字段
静态字段,最本质的特点就是,他是类的字段,他不属于任何一个对象实例。他不保存在某个对象实例的内存区域中,而且保存在类的内存区域的公共储存单元。
类变量可以直接通过类名直接访问,也可以通过对象访问。
final字段
final就是最终的不可更改的,final声明的类不能有子类,final方法不能被复写,final变量不能被修改。
接口
接口可以包含常量定义
type NAME = value;
NAME是变量名,通常都是大写。
在接口中被定义的是可以被共享的,它和C中的#define和C++中的const定义的常量是一样的。

字段变量和局部变量
前者是在类中,是类的一部分,存在堆中,后者是方法中的变量,局部变量储存在栈中。除此之外,两者生命周期不同,前者自动赋值,后者必须显式赋值。

另外,Java构造方法有一个问题。
若构造方法内部调用别的方法,如果这个方法是虚方法,结果如何?
从语法上来说,是合法的,但有时候会造成事实上的不合理。这是Java构造方法的顺序问题,在构造子类时,会首先调用父类的构造方法,然后调用虚函数,由于实例对象没有被完全创建,所以对象的成员变量有可能是null。可能的话,避免在构造器中调用任何方法。

Java的垃圾回收
对象回收是由Java虚拟机的垃圾回收线程来完成的,任何对象都有一个引用计数器,其值为0时,说明该对象可以回收。
若我们没有规定类的父类,他是继承自object类的,Object类有finalize方法,可以释放系统资源。

try( Person p =new Person(...) ) {
    
    }

执行完这段代码后,系统会自动调用Person.close()。

另外,调用System.gc()方法可以要求系统进行垃圾回收,但它也仅仅是建议,在系统空闲时会执行。

猜你喜欢

转载自blog.csdn.net/weixin_42927264/article/details/84000857