03 2019 档案

摘要:1. 字符串常量池的需要 字符串常量池(String pool, String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。假若字符串对象允许改 阅读全文
posted @ 2019-03-25 16:09 AmyZheng 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:第十二章 Java内存模型与线程 1、硬件效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲。 每个处理器都有自己的高速缓存,而它们又共享同一主内存(Main 阅读全文
posted @ 2019-03-21 16:20 AmyZheng 阅读(213) 评论(0) 推荐(0) 编辑
摘要:第十一章 晚期(运行期)优化 1、HotSpot虚拟机内的即时编译 解释器与编译器: 许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码)两种选择 即时编译器: 当虚拟机发现某个方法或者代码块的运行特别频繁时,就会把这些代码认定为 阅读全文
posted @ 2019-03-20 20:27 AmyZheng 阅读(240) 评论(0) 推荐(0) 编辑
摘要:第十章 早期(编译期)优化 1、Javac的源码与调试 编译期的分类: 前端编译期:把*.java文件转换为*.class文件的过程。例如sun的javac、eclipseJDT中的增量编译器。 JIT编译期:后端运行期编译器,把字节码转换成机器骂的过程。例如 HotSpot VM的C1、C2编译器 阅读全文
posted @ 2019-03-19 10:30 AmyZheng 阅读(371) 评论(0) 推荐(0) 编辑
摘要:第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-IN 阅读全文
posted @ 2019-03-18 11:01 AmyZheng 阅读(177) 评论(0) 推荐(0) 编辑
摘要:第八章 虚拟机字节码执行引擎 1、运行时栈帧结构 概述: 栈帧是用于支持虚拟机进行方法调用的和方法执行的数据结构,他是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量,操作数栈,动态连接和方法返回值等信息,每个方法从调用开始到执行完成的过程都对应着一个栈帧在虚拟机栈里面从入栈到出栈的 阅读全文
posted @ 2019-03-17 21:48 AmyZheng 阅读(360) 评论(0) 推荐(0) 编辑
摘要:第七章 虚拟机类加载机制 1、类加载的时机 虚拟机的类加载机制: 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类从被加载到虚拟机内存中开始到卸载出内存为止,他的整个生命周期包括加载、验 阅读全文
posted @ 2019-03-16 20:36 AmyZheng 阅读(281) 评论(0) 推荐(0) 编辑
摘要:第六章 类文件结构 1、无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式——字节码是构成平台无关的基石。 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Java在内的任何语言绑定只能与class文件这种特定的二进制文件格式所关联。 class文件包含了Ja 阅读全文
posted @ 2019-03-15 20:24 AmyZheng 阅读(317) 评论(0) 推荐(0) 编辑
摘要:第五章 调优案例分析与实战 阅读全文
posted @ 2019-03-13 21:09 AmyZheng 阅读(192) 评论(0) 推荐(0) 编辑
摘要:第四章 虚拟机性能监控与故障处理工具 1、JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程。 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称。 -m 输出虚拟机进程启动时传 阅读全文
posted @ 2019-03-13 19:37 AmyZheng 阅读(306) 评论(0) 推荐(0) 编辑
摘要:第三章 垃圾收集器与内存分配策略 1、判断对象是否已死 引用计数法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,每当引用失效时,计数器值就减1。 任何时刻计数器为0的对象就是不可能再被使用的。 引用计数器实现简单,判定效率高,但是无法解决对象相互循环引用。 可达性分析: 通过 阅读全文
posted @ 2019-03-13 10:36 AmyZheng 阅读(684) 评论(0) 推荐(0) 编辑
摘要:第二章 Java内存区域与内存溢出异常 1、运行时数据区域 程序计数器: 当前线程所执行的字节码的行号指示器,用于存放下一条需要运行的指令。 运行速度最快位于处理器内部。 线程私有。 虚拟机栈: 描述的是Java方法执行的内存模型,用于存放对象的引用和基本数据类型。 每个方法执行的时候都会创建一个栈 阅读全文
posted @ 2019-03-10 16:17 AmyZheng 阅读(496) 评论(0) 推荐(0) 编辑
摘要:第六章 Java 8 与并发 1、函数式编程 函数作为一等公民: 将函数作为参数传递给另外一个函数这是函数式编程的特性之一。 函数可以作为另外一个函数的返回值,也是函数式编程的重要特点。 无副作用: 函数的副作用是指在函数调用过程中除了给出了返回值以外还修改了其他函数的外部状态。 申明式: 函数式编 阅读全文
posted @ 2019-03-07 19:13 AmyZheng 阅读(283) 评论(0) 推荐(0) 编辑
摘要:第五章 并行模式与算法 1、单例模式 是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统一个类只产生一个实例。 对于频繁创建使用的对象可以省略new 操作花费的时间,可以减少系统开销。 由于new 操作的次数减少,系统内存使用频率降低,这将减轻GC压力,缩短GC停顿时间。 构造函数私有, 阅读全文
posted @ 2019-03-06 20:46 AmyZheng 阅读(337) 评论(0) 推荐(0) 编辑
摘要:第四章 锁的优化及注意事项 1、锁性能的几点建议 减小锁持有时间: 系统持有锁时间越长锁竞争程度就越激烈,只对需要同步的方法加锁,可以减小锁持有时间进而提高锁性能。 减少锁的持有时间有助于降低锁冲突的可能性,进而提高锁的并发能力。 减小锁粒度: 减小锁粒度就是指缩小锁定对象的范围,从而减小锁冲突的可 阅读全文
posted @ 2019-03-05 20:03 AmyZheng 阅读(396) 评论(0) 推荐(0) 编辑
摘要:第三章 JDK并发包 1、同步控制 重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁。 重入锁和synchronized的比较: Lock是一个接口,而synchronized是Java中的关键字,synchr 阅读全文
posted @ 2019-03-03 19:46 AmyZheng 阅读(564) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示