垃圾回收

垃圾回收只收拾堆内存的对象

无法精确控制

回收前会调用对象的finalize()方法,从object继承的,意思是让系统响应有没有人要认领,以避免被清除掉。

垃圾回收的目的是回收所不需要被占用的内存

finalize()相对温和,用于资源清理,当确认无人认领就回收空间

对象的三种状态:

有连接:可达状态

无连接:可恢复状态,在finalize之后无人认领,直接杀掉不可达

强制回收:

System.gc();

Runtime。getRuntime()。gc();


java -verbose:gc 文件名;

用这条命令执行java程序可以看到回收动作和前后内存占用比;


不要主动调用finalize方法,应该有垃圾回收机制调用

何时被调用不确定,不是一定会被执行的

finalize方法可能会让一些对象重新变成可达状态

执行finalize方法出现异常时,垃圾回收机制不会报告异常,程序继续执行


使用以下类型引用,必须断开原有的强应用,否则无法回收

不同等级的引用,垃圾回收机制对待的态度不同

强引用很常见,比如String a=“haha”;

软弱虚引用要重新定义:

先String a=“haha”;

然后

SoftReference:SoftReference sr=new SoftReference(a);

软引用,当内存空间足够,不会回收,不够时可能回收

WeakReference:WeakReference wr=new WeakReference(a);

弱引用:不论够不够一定会回收

PhantomReference:

PhantomReference pr=new PhantomReference(a);

虚引用有跟没有一样

前两个引用可以单独时候,虚引用不可单独,用来跟踪对象被垃圾回收的状态,虚引用保持在关联队列,如果查找队列中包含,说明已被回收

ReferenceQueue rq=new ReferenceQueue();//创引用队列

PhantomReference pr=new PhantomReference(a,rq);//关联


sr wr pr 都是引用,没有类型信息,可以通过各自的get()方法获得对象。


jar是一种压缩格式,一种打包,安全,速度快,压缩,包装,可移植,只是多了一个META-INF目录包含一个MAINFEST.MF清单文件


打包命令jar ,在cmd输入jar空格可以看到参数

先在cmd输入cd 要打包的目录的上级路径:作用就是跳转到要打包的目录的所在目录地址

jar A 打包后的名字 要打包的目录:这个是格式,A代表参数,必须要有参数,根据需要添加。

uf更新无信息,uvf更新由信息提示

cf 打包无信息 cvf打包有信息

xf打包无信息 xvf打包有信息

打包一个可执行的程序包需要加参数e

jar cvfe test.jar testdir mainclassname


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值