JVM
huzhigenlaohu
这个作者很懒,什么都没留下…
展开
-
JVM的GC日志分析
JVM的GC日志的主要参数包括如下几个:-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-原创 2016-07-14 15:56:56 · 419 阅读 · 0 评论 -
Java虚拟机之对象探秘
Java虚拟机之对象探秘对象的创建虚拟机遇到一条new指令时,首先会检查指令参数是否能够在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那么必须先执行相应的类加载过程。类加载过程通过后,接下来就是虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可确定,即在Java堆中分配一块确定大小的内存。- 如果Java堆内存是绝对规整的,原创 2016-07-14 16:53:53 · 381 阅读 · 0 评论 -
ClassNotFoundException和NoClassDefFoundError的区别
正如它们的名字所说明的:NoClassDefFoundError是一个错误(Error),而ClassNOtFoundException是一个异常,在Java中错误和异常是有区别的,我们可以从异常中恢复程序但却不应该尝试从错误中恢复程序。ClassNotFoundException的产生原因:Java支持使用Class.forName方法来动态地加载类,任意一个类的类名如果被作为参数传递给这个方法都原创 2016-07-29 10:35:22 · 398 阅读 · 0 评论 -
内部类访问局部变量的时候,为什么变量必须加上final修饰
这里的局部变量就是在类方法中的变量,能访问方法中变量的类当然也是局部内部类了。我们都知道,局部变量在所处的函数执行完之后就释放了,但是内部类对象如果还有引用指向的话它是还存在的。例如下面的代码:class Outer{ public原创 2016-07-31 09:20:42 · 675 阅读 · 0 评论 -
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一转载 2016-08-01 09:43:22 · 452 阅读 · 2 评论 -
java如何实现进程间的通信?
先看看传统的进程间通信的手段:(1) 管道(PIPE)(2) 命名管道(FIFO)(3) 信号灯(Semphore)(4) 消息队列(MessageQueue)(5) 共享内存(SharedMemory)(6) Socket(当然也有Socket)如果加上上面提到的临时文件(临时文件其实是很难处理的,不同的进程间单靠临时文件可以交互信息,但是做到进程的调度控制确是很费力原创 2016-09-09 17:10:33 · 15089 阅读 · 0 评论