我们知道有些java对象比如socket,io流等是有close方法的,一般可以在finally块内调用然后释放资源,假如我们忘记调用close方法,当java gc这个对象的时候也会释放资源,不过java gc是不能确定时间的,所以最好用完了就手工close一下。
下面我们用ServerSocket的例子来证明垃圾回收是会释放内存和端口的:
import java.net.ServerSocket; public class TestSocketGc { public static void main(String[] args) throws Exception { System.out.println("start"); sub(); //sub里面的serverSocket此时超出作用域了,通知jvm可以gc一下 //如果不手工gc一下,假设内存资源充足,jvm也不会自动gc System.gc(); //休息一下让jvm有时间回收sub里面的serverSocket Thread.sleep(3000); /** * 如果注释掉上面两句,没释放资源, * 因为端口占用,下面一句将抛异常: * java.net.BindException: Address already in use: JVM_Bind */ ServerSocket serverSocket = new ServerSocket(4567); System.out.println("end"); } public static void sub() throws Exception { ServerSocket serverSocket = new ServerSocket(4567); //serverSocket.close(); //serverSocket = null; //System.gc(); } }
谢谢!!!
相关推荐
GC java 手册 kindle格式 GC java 手册 kindle格式 GC java 手册 kindle格式
让你对java gc 的工作原理有更深的了解 谢谢下载
Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java...
GC频率从另一个角度反应了系统的健康情况。 GC有两种类型:Scavenge GC(也称Young GC)和Full GC。 一般Full GC时,机器的Load会升高,应用也会停止...观察GC的方法有很多,本文详细讲述了一些特定场景下使用的方法。
NULL 博文链接:https://wangwengcn.iteye.com/blog/1606192
GChisto及CMS GC相应补丁文件,补丁文件未亲测。 This patch adds the following features and improvements when using CMS GC in incremental mode: detecting Full GCs corrected parsing errors when using -XX:...
Java基础[Java基础]--Java GC工作原理
Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java...
Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java...
Java GC与性能调优文档 作者:高飞
成为JavaGC专家PartII—如何监控Java垃圾回收机制Java开发Java经验技巧共12页.pdf.zip
Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 ...
在第一篇文章成为JavaGC专家PartI—深入浅出Java垃圾回收机制中我们学习了不同GC算法的执行过程,GC如何工作,新生代及老年代的基本概念,在JDK7中你应该了解的5种GC类型以及他们的性能如何。在第二篇文章成为JavaGC...
jvm配置参数详解,以及Java gc详解
JVM内存管理的介绍,编写GC友好的代码。 本材料主要关心 Sun Hotspot JVM 6的内存管理 Sun Hotspot JVM 6的GC模型 主要针对JVM6的GC模型,但也会简单介绍Java 7的G1 编写GC友好代码的一些技巧
NULL 博文链接:https://xdjava.iteye.com/blog/2031254
Java GC的副本.pptx
1.java基础的简介,包括类和对象,方法,变量 2.java面向对象,封装和隐藏,构造方法, 继承,多态,抽象类,接口,final,内部类 GC
NULL 博文链接:https://seanzhou.iteye.com/blog/2003941