08 2015 档案

JVM系列(六)编译器优化
摘要:早期(编译期)优化开始——生成字节码为止;解析与填充符号表过程;插入式注解处理器的注解处理过程;语义分析与字节码生成过程。java的语法糖:泛型——java的泛型是“伪泛型”,在编译期优化中变成强制转换的。变长参数——foo(Stringstr,Object...args)boxing/unboxi... 阅读全文

posted @ 2015-08-18 20:44 Emmerich.Luang 阅读(162) 评论(0) 推荐(0)

JVM系列(七)jdk工具介绍、监控等
摘要:安装java的时候一般会安装JDK而不是JRE。其中一个原因就是JDK/bin目录下附送很多的工具,有助于定位java相关问题。visualVM 非常好的工具!可以看到分代内存的使用情况、线程的CPU使用率、类的内存使用情况。基本上做性能测试必须这个软件的。另外,安装visual gc插件后可... 阅读全文

posted @ 2015-08-18 20:44 Emmerich.Luang 阅读(225) 评论(0) 推荐(0)

JVM系列(五)并发相关
摘要:并发概率下的内存模型 java定义了一个内存模型,从硬件/操作系统中抽象出来。对比C/C++直接用操作系统的内存是不同的。 工作内存(working memory):线程自己独占的内存。线程的工作内存是主内存的一份拷贝。 主内存(main memory):实际上存放所有线程的数据的地方。工作内... 阅读全文

posted @ 2015-08-17 20:02 Emmerich.Luang 阅读(509) 评论(0) 推荐(0)

String的hashCode 和equals 区别
摘要:网上找到特么一段话:Java对于equals方法和hashCode方法是这样规定的: 1、如果两个对象相等,那么它们的hashCode值一定要相等; 2、如果两个对象的hashCode相等,它们并不一定相等。PS:相等说的是equals方法。 那么这2个方法是什么来的?? 先祭出源码... 阅读全文

posted @ 2015-08-07 19:56 Emmerich.Luang 阅读(296) 评论(0) 推荐(0)

导航