标签:堆栈

JAVA

Java JVM内存(栈、堆、常量池)分配

herman 7年前 (2017-04-25) 2952浏览 0评论

有人说java没有内存泄漏。这其实是不科学的。不是没有内存泄漏,而是你没有遇到而已! 栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。 Java内存分配与管理是Java的核心技术之一,今天我们再次深入J...

JAVA

java 多线程 JVM 锁优化

herman 7年前 (2017-04-18) 3565浏览 0评论

JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明...

JAVA

详解使用 jstack 跟踪 java 异常代码

herman 7年前 (2017-03-27) 4678浏览 0评论

最近公司有一项业务在做活动,流量一下子大增。数据暴涨了80,系统无法支撑,导致了程序内存溢出,系统宕机。查看日志发现是有内存溢出的异常,今天就为大家分享一下如何使用 jstack 命令排查定位java程序中的异常代码。 自造 java 内存...

JAVA

工作线程数是不是设置的越大越好

herman 7年前 (2017-03-17) 4480浏览 2评论

根据经验来看,jdk api 一般推荐的线程数为CPU核数的2倍。但是有些书籍要求可以设置为CPU核数的8倍,也有的业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本...

JAVA

java 内存溢出 OutOfMemoryError

herman 8年前 (2016-11-04) 3300浏览 0评论

Java 堆是用来存储对象实例的, 因此如果我们不断地创建对象, 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收, 那么当创建的对象过多时, 会导致 heap 内存不足, 进而引发 OutOfMemoryError 异常 ...