随笔分类 - jvm
摘要:如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610mjava -Xmx1610M -versionjava -Xmx1610m -version网摘的tomcat内存溢出解决方案Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内
阅读全文
摘要:网上很多使用的是getProperties。说获得系统变量,但是其实不正确。getProperties中所谓的"system properties"其实是指"java system",而非"operation system",概念完全不同,使用getProperties获得的其实是虚拟机的变量形如:
阅读全文
摘要:JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据、JVM当前所有线程及其栈相关信 息等等。各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于此API开发的。本篇对 这部分内容进行
阅读全文
摘要:首先实现一个自己的ClassLoader,该ClassLoader重写findClass方法。 从classpath中加载类资源。注意,不要重写loadClass方法。 因为在使用自定义的MyClassLoader加载Person类的时候 。 Person类中需要依赖的其他对象, 都会默认使用MyC...
阅读全文
摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的JAVA类型,这就是虚拟机的类加载机制。类加载的生命周期包括:加载Loading,验证Verification,准备Preparation,解析Resolution,初始化Initial...
阅读全文
摘要:(1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允
阅读全文
摘要:java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互 java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互 一个优秀的Java 程序员必须了解GC 的工作原理、如何优化GC的性能、如何和GC进行有效的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统
阅读全文
摘要:首先介绍一下新生代、老年代。所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有
阅读全文