java
liujuntao921
这个作者很懒,什么都没留下…
展开
-
jvm对象创建以及类的加载
当虚拟机遇到一个new命令时,首先将会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载,解析和初始化过。如果没有就必须先执行类加载过程。类从被加载到虚拟机到被卸载。生命周期:加载,验证,准备,解析,初始化,使用和卸载。在什么情况下需要加载类呢?1.遇到new,getstatic,putstatic或invokestatic指令时。常见原创 2015-07-08 22:08:29 · 799 阅读 · 0 评论 -
jvm垃圾回收
怎么判断对象是否存活呢? 只要有两种算法: 1,引用计数算法,给对象中添加一个引用计数器,每当一个有一个地方引用它时,计数器值+1,当引用失效,计数器-1。计数器为0时,说明对象不可能再被利用。 于是通知GC收集器,回收。这个算法思想很简单,但是存在问题,就是当两个对象互相持有对方的引用,而这两个对象在其他地方又原创 2015-06-27 13:00:43 · 443 阅读 · 0 评论 -
java非阻塞nio例子
nio服务端时序图:客户端代码:TimeServer.java类public class TimeServer { public static void main(String[] args) { int port = 8080; HandleServer timeServer=new HandleServer(port); new Thread(timeServer, "noi-原创 2015-07-10 15:23:28 · 491 阅读 · 0 评论 -
Java虚拟机(JVM)中的内存设置详解
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。GC(Garbage Coll转载 2015-09-07 13:53:20 · 595 阅读 · 0 评论 -
关于创建String对象过程的内存分配
常量池(Constant Pool):指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。JVM虚拟机为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(String,Integer和 Floating point常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式转载 2015-09-15 14:59:15 · 562 阅读 · 0 评论