当前位置:首页 » 资源管理 » java中释放资源的是哪个块
扩展阅读
京东开店成本多少钱 2024-09-20 00:51:44
钻石王座如何分别正盗版 2024-09-20 00:10:09

java中释放资源的是哪个块

发布时间: 2022-01-26 02:55:57

1. JAVA怎样释放一个使用中的文件

不可以,Java增加了垃圾回收机制来管理内存!就算你将对象赋值为null,垃圾回收机也不会立即回收该对象所占的资源,只有当内存不够用的时候,垃圾回收机才会去回收!!

2. java中怎么释放所有资源

什么叫所有资源?java有他自己的回收机制,没用的内存会自动释放

3. Java中有类似C++ 的delete ,free语句来释放资源吗

java采用了垃圾回收机制,程序员无法操作内存释放
可以通过编程的手段来影响,让对象符合垃圾回收条件。
1、将无用对象赋值为null.
2、重新为引用变量赋值。比如:
Person p = new Person("aaa");
p = new Person("bbb");
这样,new Person("aaa")这个对象就是垃圾了——符合垃圾回收条件了。
3、让相互联系的对象称为“岛”对象
Person p1 = new Person("aaa");
Person p2 = new Person("bbb");
Person p3 = new Person("ccc");
p1=p2; p2=p3; p3=p1;
p1=null; p2=null; p3=null;
在没有对p1、p2、p3置null之前,它们之间是一种三角恋关系。分别置null,三角恋关系依然存在,但是三个变量不在使用它们了。三个Person对象就组成了一个孤岛,最后死在堆上——被垃圾回收掉
4、强制的垃圾回收System.gc()
实际上这里的强制,是程序员的建议,什么时候执行还是JVM的垃圾回收器说了算

4. 如何手动释放一个java线程占用的资源

建议你声明一个boolean变量替换while(true)中的true,因为这样就可以控制线程了,然后不必等到主程序结束

5. JAVA 怎样释放一个使用中的文件

结束掉解压程序,然后如果有用到流
.close()

6. java中堆内存如何释放

java把内存分成两种,一种叫做栈内存,一种叫做堆内存
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为改变量分配的内存空间,该内存空间可以立刻被另作他用。
堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在
栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,以后就可以在程序
中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号。
引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,即使程序运行到使用new产生数组
和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占
着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因。但是在写程序的时候,可以人为的控制。

7. java语言中能完成资源释放功能的是什么

java资源不需要手动释放,在没有任何引用的情况下,系统会自己回收,system.gc()能强制gc去回收无引用的资源

8. java什么时候该写.close()释放资源,不写可以吗

虽然Java有自动内存回收机制,但是如果是数据库连接、网络连接、文件操作等,不close是不会被回收的,属于不正确的代码。
也就是说,有close方法,必须得自己调用一下才行。
垃圾回收机制仅在Java虚拟机所控制的范围内释放资源。
对于类似于数据库连接、socket以及文件操作等,
如果有close方法,在你完成任务后执行它
并且最好在finally块内做close,因为即使发生了例外,这些代码也能被调用。
对于使用完了的对象来讲,Java不推荐使用类似于C++的析构函数来释放内存(C++中new完后得delete,Java中new完,使用后,将其置
成null比较好),因为GC会调节最适当的时间来释放内存,在程序中滥用delete会降低Java程序的性能(但应该不会引发额外的错误)。

9. java 什么资源需要手动释放

1、文件流要释放
2、数据库连接资源要释放
3、在结合使用hibernate时,session要释放
在使用的时候,java的垃圾回收一般不用手动释放,但是可以调用方法进行调用以实现垃圾回收,在某种特定情况下会使用到