读书笔记
学习笔记cmj
学习笔记
展开
-
java技术图谱
cms 垃圾回收器图:原创 2021-05-18 23:53:21 · 320 阅读 · 0 评论 -
jvm垃圾回收器之CMS收集器
jvm垃圾回收器之CMS收集器cms收集器 (Concurrent Mark Sweep 并发标记删除)cms收集器摘要CMS (Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。目前很大一部分的 Java应用集中在互联网站或者B/S系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。CMS收集器就非常符合这类应用的需求。学习cms收集器之前带着问题去学习cms收集器在执行时都包含那几..原创 2021-03-27 11:08:16 · 238 阅读 · 0 评论 -
jvm内存模型
jvm内存模型主内存和工作内存内存间的交互操作对volatile的特殊规则对long和double的特殊规则原子性,可见性和有序性先行发生原则jvm内存模型的作用(为什么要定义内存模型)1:用来屏蔽硬件和各种操作系统之间内存访问的差异。可以让Java程序在各种不同硬件的操作系统上具有一致的访问效果。(外话: 这也就是为什么说,java具有具有跨平台性,因为不同平台jvm)。2:java内存模型主要通过定义内存访问规则来屏蔽硬件和操作系统之间内存访问的差异。内存访问规则通常指实.原创 2021-03-26 09:54:33 · 383 阅读 · 1 评论 -
nginx配置文件
nginx配置文件结构mainevents(...)http{ server { location {...} }}从上面的描述分为5个模块: main,events,http,server,location.模块描述main配置nginx的子进程数,子进程优先级,以及子进程所属用户/组, 错误日志位置与级别,进程能够打开’文件描述符数量’ 和配置pid 位置等events配置nginx处理链接的方式httpnginx处理http请求的主原创 2020-09-27 00:19:14 · 5623 阅读 · 0 评论 -
读书笔记之 java中的标准注解
java给我们提供了一些标准的注解,在这里做一下统计。注解名词应用场合目的Deprecated全部将目标标记为过时的SuppressWarnings除了包和注解之外的所有情况阻止某个给定的类型的警告信息Override方法检查该方法是否覆盖了某一个超类的方法PostConstruct方法被标记的方法应该在构造之后立即被调用PreDes...原创 2020-05-03 20:48:30 · 18322 阅读 · 0 评论 -
读书笔记之 volatile关键字理解与使用
volatile关键字我们在开发的时候很少使用,在看spring源码的时候很有可能会看到,但是很少有人知道在什么环境下使用。本人查看一些书籍资料后做一下总结。volatile 通常理解为jvm虚拟机提供的最轻量级的同步机制(本句来源于‘深入理解JAVA虚拟机’)两大特征:(1)使用volatile的变量对所有线程具有可见性。(2)使用volatile的变量禁止指令重排序两大特征的具体理解...原创 2020-04-21 02:33:44 · 18654 阅读 · 6 评论 -
2020-02-10 深入理解JVM读书笔记之类加载器加载职责
Bootstrap ClassLoader: 加载$JAVA_HOME/lib 核心包Extension ClassLoader: 加载$JAVA_OHOME/ext 扩展包Application ClassLoader: 加载 ClassPath ,也就是我们的项目User ClassLoader: 程序猿自己实现的类加载器,加载自定义的类双亲委派模型: 优先托父类...原创 2020-02-10 16:09:11 · 5655 阅读 · 1 评论 -
读书笔记之 工作内存和主内存 理解
内存模型: 定义内存交互动作的一种规范(工作内存和主内存只是一种概念定义,在内存中并不是划分一块区域定义为工作/主内存)#局部基本类型变量 存在方法栈中,局部引用类型变量存在方法栈中,引用对象存在堆内存中#成员变量 都在堆内存中,无论基础类型还是引用类型#线程访问成员变量,都是以copy 方式进行读取。#局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需...原创 2019-12-16 22:53:59 · 5686 阅读 · 1 评论 -
读书笔记之类初始化和实例化本质
# 类的加载,验证,准备,解析,这四个步骤中除了类加载器可以自定义外,其余都有jvm虚拟机控制。类初始化时才开始执行我们程序中代码(或字节码),本质上:是执行构造<clinit>方法的过程类实例化时执行我们的类构造方法中的代码(或字节码),本质是执行构造<init>方法的过程#构造<clinit> 和 构造<init> 的区别clin...原创 2019-12-16 22:46:33 · 5609 阅读 · 0 评论 -
读书笔记 之 类初始化规定
什么情况下需要开始类加载过程的第一个阶段:加载?Java虚拟机规范中并没有进行强制约束,这点可以交给虚拟机的具体实现来自由把握。但是对于初始化阶段,虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始):1)遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其...原创 2019-01-03 13:03:13 · 131 阅读 · 0 评论