摘要:
什么是类加载机制? 类加载机制是指,虚拟机把描述类的数据从class文件(一串二进制的字节流,无论以何种形式存在)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。其中,产生class对象的时机是在加载阶段完成后,这个阶段完成后字节流就存储在方法区中,内存中 阅读全文
摘要:
内存分配与回收策略 (一)内存分配策略 给谁分配?分配到哪?是内存分配策略必须解答的问题。 java对象是分配的对象,往大方向来说,是分配到堆中,更细一点说,根据对象不同的特点分配到新生代和老年代区域。如果启动了本地线程分配缓冲,就按线程优先在TLAB上分配。 一、新生代区域的分配 新创建出来的对象 阅读全文
摘要:
各类垃圾收集器与GC日志 (一)垃圾收集器 一、Serial收集器 最基本、历史最悠久的收集器。使用复制算法,用在新生代,通常老年代用Serial old配合。GC过程需要stop the world。适用于client模式下的虚拟机。 二、ParNew收集器 Serial多线程版本,采用复制算法时 阅读全文
摘要:
垃圾收集算法 java中的内存是交给虚拟机管理的。要实现垃圾回收,必须考虑如下三个问题: 1. 哪些内存需要回收? 2. 什么时候回收? 3. 怎么回收? 对于第一点,往大了来说,是堆和方法区的内存需要回收。往具体了来说,是堆中哪些对象的内存可以回收了?方法区中哪些类的信息的内存可以回收了?要解答这 阅读全文
摘要:
(一)java中的内存区域 在java虚拟机执行java程序的时候,会将虚拟机所管理的内存划分为以下几个区域: 其中,浅颜色的是线程私有的内存区域,即java程序中每个线程都有的独立区域;深色的是共有的区域。 一、线程私有区域 1. java虚拟机栈 虚拟机栈中描述得是java方法执行的内存模型,虚 阅读全文
摘要:
代理模式 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。 何为提供一个替身或占位符?即一个对象代表另一个对象。有什么事直接告诉代理对象,不必麻烦真正的对象,由代理对象来决定哪些事情去交给真正的对象。举个例子,以前男女婚配,由男方家庭去拜托媒人,媒人转告女方,此时媒人就是代理对象,真 阅读全文
摘要:
oo设计原则 最少知识原则,只和朋友交谈。该原则要求减少对象之间的交互。具体指的是只调用本对象中的成员变量的方法、当作参数传进来的对象的方法,和本方法中创建的对象的方法。 总结来说,就是对方法的调用不超过两个“.”。这样做的好处是减少各类间的依赖。缺点是会产生很多“包装类”,因为不能直接太多“.”去 阅读全文
摘要:
什么是设计模式? 设计模式其实是组织代码方式的一种经验,由前人在开发中整理归纳出来。 oo设计原则 在oo设计中应该遵循的几个原则: 封装变化。即将需要变化的部分与固定不变的部分隔离开,如抽象类中的抽象方法,要求每个子类去实现,这是变化的部分。 多用组合,少用继承。组合即一个对象has其他对象。 针 阅读全文