‘壹’ java语言中能完成资源释放功能的是什么
java资源不需要手动释放,在没有任何引用的情况下,系统会自己回收,system.gc()能强制gc去回收无引用的资源
‘贰’ java什么时候该写.close()释放资源,不写可以吗
虽然Java有自动内存回收机制,但是如果是数据库连接、网络连接、文件操作等,不close是不会被回收的,属于不正确的代码。
也就是说,有close方法,必须得自己调用一下才行。
垃圾回收机制仅在Java虚拟机所控制的范围内释放资源。
对于类似于数据库连接、socket以及文件操作等,
如果有close方法,在你完成任务后执行它
并且最好在finally块内做close,因为即使发生了例外,这些代码也能被调用。
对于使用完了的对象来讲,Java不推荐使用类似于C++的析构函数来释放内存(C++中new完后得delete,Java中new完,使用后,将其置
成null比较好),因为GC会调节最适当的时间来释放内存,在程序中滥用delete会降低Java程序的性能(但应该不会引发额外的错误)。
‘叁’ java中一个线程什么时候释放资源啊问题补充中是我情况的说明.
启一个 eclipse 就有一个javaw.exe 一直在运行。你也说了那是进程。进程可以包含很多线程的。而且线程完毕,但是你的进程却一直开着。不信你杀死javaw 进程。看看你的Myeclipse或者是 eclipse 还有么。
‘肆’ 如何手动释放一个java线程占用的资源
建议你声明一个boolean变量替换while(true)中的true,因为这样就可以控制线程了,然后不必等到主程序结束
‘伍’ java 什么资源需要手动释放
1、文件流要释放
2、数据库连接资源要释放
3、在结合使用hibernate时,session要释放
在使用的时候,java的垃圾回收一般不用手动释放,但是可以调用方法进行调用以实现垃圾回收,在某种特定情况下会使用到
‘陆’ java 怎么释放内存
cc=null;就可以了。java 虚拟机会自己调用gc()方法去释放内存。
显示的调用System.gc()或Runtime.getRuntime().gc()也是可以的。调用了gc()并不会强制释放内存,虚拟机会尽最大努力从所有丢弃的对象中回收了空间。
‘柒’ java中静态方法区的资源什么时间被释放
class里面的静态方法是在这个class被释放的时候同时释放。
那么,class是什么时候释放的呢?
在sun 的JDK中所有的class都有它的ClassLoader,当这个ClassLoader被释放时,所有被它装载的class也同时被释放。
‘捌’ java中如何关闭一个窗口就完全释放它所占的资源但不终止整个程序(程序由多个窗口)
根据Java的垃圾回收机制:垃圾回收回收的是无任何引用的对象占据的内存空间
所以你只要采用匿名类创建打开的窗口并调用System.gc() 或Runtime.getRuntime().gc() 就可以啦
在要创建窗口的地方这样写:
new frame().setVisible(true);
System.gc() ;
当你再次打开同样的窗口时,又会执行new frame().setVisible();重新创建一个新的窗口,原来的自然就变成无任何引用的对象了,随即就会被JVM垃圾回收机制回收掉了
注意:调用System.gc()用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作是不可预料的
‘玖’ java如何手动释放内存
java当中数组是不需要手动释放的,底层有自动回收垃圾的机制,扩展如下:
前一次循环结果如果没有被引用,那么会等待被自动释放,如果被引用,则不释放。
String[] str2=new String[500];
意思是每次循环都重新定义,并且重新赋值为新创建的数组对象,而上次循环所声明的变量以及所创建的数组对象都被列入自动回收列表了。
‘拾’ java什么时候该写.close()释放资源
在Java中对资源的读写最后要进行close操作,以下是2种释放资源处理方式:
第1种:把close()放在try中。
try {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(
"out.txt", true)));
pw.println("This is a test.");
pw.close();
} catch (IOException e) {
e.printStackTrace();
第3种:使用try-with-resource语句。
try (PrintWriter pw = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)))) {
pw.println("This is a test.");
} catch (IOException e) {
e.printStackTrace();
无论是否有异常发生close()方法都应该被调用,因此close()应放在finally中。而从Java7开始,可以使用try-with-resource语句。