章前准备 人人都知道类加载器很重要,原本以为自定义加载时指定是如何确定链接,载入之类的传说中的关联方式,看完之后发现自己还是too young,类如何加载如何链接都是jvm的事情,做为程序猿只能控制两件事,字节码生成和类加载器 字节码生成:标准的java,jsp,听说Python等脚本也可以- .....
分类:
其他好文 时间:
2014-11-11 18:32:35
阅读次数:
226
1. 常遇到关于内存溢出的错误 ?? ??? ?java.lang包下 ?? ??? ?StackOverflowError 很少 ?? ??? ?OutOfMemoryError: heap space(堆空间) 比较常见 ?? ??? ?OutOfMemoryError: PermGe...
分类:
其他好文 时间:
2014-11-11 16:49:39
阅读次数:
230
NO9. 类中引用到的field字段
在常量池中是怎样描述的?...
分类:
编程语言 时间:
2014-11-11 16:39:13
阅读次数:
388
优化推荐系统的JVM关键参数-Xmx设定Java允许使用的最大堆空间。例如-Xmx512m表示堆空间上限为512MB-server现代JVM有两个重要标志:-client和-server,分别为客户端程序(运行时间短、占用资源少)和服务器端程序(长时间运行、资源密集型)选择合适的JVM配置。-d32...
分类:
其他好文 时间:
2014-11-11 15:55:12
阅读次数:
255
如果项目比较大代码较多,在打包时,可能会出现java.lang.OutOfMemoryError: Java heap space
解决方法:\sdk\tools\proguard\bin\proguard.bat
java -jar "%PROGUARD_HOME%"\lib\proguard.jar %* 添加-Xmx1024m -Xms1024m参数,调高JVM 的使用内存;即变成
j...
分类:
编程语言 时间:
2014-11-11 14:24:29
阅读次数:
215
vi /etc/profile在最后插入export JAVA_HOME=/usr/lib/jvm/j2sdk1.6-oracleexport PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME....
分类:
系统相关 时间:
2014-11-11 14:19:38
阅读次数:
175
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的....
分类:
其他好文 时间:
2014-11-11 10:31:25
阅读次数:
242
第十四章. 教程 - 杂七杂八
14.1. 创建目录
有一个常见的情况是,多个任务都依赖于某个目录的存在。当然,你可以在这些任务的开始加入mkdir来解决这个问题。但这是种臃肿的解决方法。这里有一个更好的解决方案 (仅适用于这些需要这个目录的任务有着dependsOn的关系的情况):
14.2. Gradle 属性和系统属性
Gradle 提供了许多方式将属性添加到您的构建中。 从Gradle 启动的 JVM,你可以使用-D命令行选项向它传入一个系统属性。 Gradle命令的-D选项和java命令的-D选...
分类:
其他好文 时间:
2014-11-11 09:22:40
阅读次数:
237
英文原文:JVM: How to analyze Thread Dump在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息,通常远超出你的想象,我们可以在工作中善加利用这...
分类:
编程语言 时间:
2014-11-10 19:51:31
阅读次数:
278
JVM设置过程中的一般的规范 在JVM的设置中,年轻代的设置比较的重要,因为年轻代存储空间分配的比较的块,可以说触发GC的机会比较的大。 默认的情况下:-XX:NewRatio 默认为2 说明:年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代),设置为2,则年轻代与年老代所占...
分类:
其他好文 时间:
2014-11-10 19:41:25
阅读次数:
215