javaee论坛

普通会员

225648

帖子

344

回复

358

积分

楼主
发表于 2019-11-03 09:05:14 | 查看: 369 | 回复: 0

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

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

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

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

try(Personp=newPerson(...)){}

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

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


您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017