自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

筑梦踏实

Not everything that counts can be counted and not everything that's counted truely counts.

  • 博客(10)
  • 收藏
  • 关注

原创 《深入理解Java虚拟机》读书笔记10

第13章 线程安全与锁优化线程安全的定义当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,那这个对象是线程安全的。Java语言中操作共享的数据分为5类:不可变(在Java语言里,不可变的对象一定是线程安全的,只要一个不可变的对象被正确构建出来,那其外部的可见状态永远也不...

2018-05-19 20:34:32 107

原创 《深入理解Java虚拟机》读书笔记9

第12章 Java内存模型与线程12.11、衡量一个服务性能的高低好坏,每秒事务处理数TPS是最重要的指标之一。(它代表着一秒内服务端平均能响应的请求总数)12.2硬件的效率与一致性物理机的并发问题:1)运算任务除了需要处理器计算之外,还需要与内存交互,如读取运算数据、存储运算结果等(不能仅靠寄存器来解决)。 2)计算机的存储设备和处理器的运算速度差了几个数量级,所以不得不加入一层读写速度尽可能接...

2018-05-19 20:33:10 144

原创 《深入理解Java虚拟机》读书笔记8

第11章 晚期(运行期)优化Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器成为即时编译器(Just In Time Compiler,JIT编译器)。Java虚拟机...

2018-05-13 10:45:53 107

原创 《深入理解Java虚拟机》读书笔记7

第10章 早期(编译期)优化10.2Javac编译器1、Javac编译过程步骤:解析与填充符号表插入式注解处理器的注解处理分析与字节码生成2、解析与填充符号表包括了经典程序编译原理中的词法分析、语法分析两个过程。词法分析:将源代码的字符流转变为标记集合。语法分析:根据Token序列来构造抽象语法树的过程。3、注解处理插入式注解处理器的标准API在编译期对注解进行处理,我们可以把它看作是一组编译器的...

2018-05-13 10:44:37 110

原创 《深入理解Java虚拟机》读书笔记6

第8章 虚拟机字节码执行引擎8.11、从外观上看,所有Java虚拟机的执行引擎是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。2、虚拟机与物理机物理机的执行引擎:是直接建立在处理器、硬件、指令集和操作系统层面的。虚拟机的执行引擎:是自己实现的,因此可以自行制定指令集和执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。8.2运行时栈帧结构1、栈帧是用于...

2018-05-13 10:43:15 97

原创 《深入理解Java虚拟机》读书笔记5

第7章虚拟机类加载机制虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。在Java语言里,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时稍微增加一点性能开销,但是却能为Java应用程序提供高度的灵活性,Java中天生可以动态扩展语言特性就是依赖运行期间动态加载和动态连接这个特点实现的。...

2018-03-20 19:05:42 98

原创 《深入理解Java虚拟机》读书笔记4

第4章 虚拟机性能监控与故障处理工具4.2 JDK的命令行工具:Java.exe  和  javac.exe1) jps(JVM Process Status Tools)虚拟机进程状况工具:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及这些进程的本地虚拟机的唯一ID(LVMID,Local Virtyal Machine Identifier)2) jstat(JVM Stati...

2018-03-20 19:02:25 108

原创 《深入理解Java虚拟机》读书笔记3

第3章垃圾收集器与内存分配策略3.11. 了解GC和内存分配的必要性:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,就需要对这些“自动化”的技术实施必要的监控和调节。2. 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。这几个区域的内存分配和回收都具备稳定性,无需过多考虑回收问题,因...

2018-03-14 09:54:31 99

原创 《深入理解Java虚拟机》读书笔记2

 第2章Java内存区域与内存溢出异常2.2运行时数据区域1. 程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。此内存区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryE...

2018-03-12 10:23:43 113

原创 《深入理解Java虚拟机》读书笔记1

(仅作为自己的读书笔记记录)第一章 走进Java1.2Java技术体系1) Java技术体系:Java程序设计语言、各种硬件平台上的Java虚拟机、Class文件格式、Java API类库、来自商业机构和开源社区的第三方Java类库2) 把Java程序设计语言、Java虚拟机和Java API类库这三部分统称为JDK,JDK是用于支持Java开发的最小环境。3) 可以把Java API类库中的Ja...

2018-03-12 10:12:38 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除