Loading...

摘要: 5. 共享模型之内存 上一章讲解的 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性。这一章我们进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题 5.1 Java 内存模型 JMM 即 Java Memory Model,它从java层面定义了主存、 阅读全文
posted @ 2020-08-13 12:30 嗯嗯123 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 线程与进程 2.1 进程与进程 进程 程序由指令和数据组成,但是这些指令要运行,数据要读写,就必须将指令加载到cpu,数据加载至内存。在指令运行过程中还需要用到磁盘,网络等设备,进程就是用来加载指令管理内存管理IO的 当一个指令被运行,从磁盘加载这个程序的代码到内存,这时候就开启了一个进程 进程就可 阅读全文
posted @ 2020-07-25 00:21 嗯嗯123 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 8. 共享模型之工具 8.1 线程池 池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完 阅读全文
posted @ 2020-07-01 01:40 嗯嗯123 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 一 G1收集器 g1收集器是一个面向服务端的垃圾收集器适用于多核处理器、大内存容量的服务端系统。 它满足短时间gc停顿的同时达到一个较高的吞吐量。 JDK7以上版本适用 先介绍两个概念:吞吐量和响应能力,响应能力和吞吐量是评价一个系统的两个重要指标 吞吐量 吞吐量关注的是,在一个指定的时间内,最大化 阅读全文
posted @ 2020-05-05 00:34 嗯嗯123 阅读(2171) 评论(0) 推荐(0) 编辑
摘要: 字符串常量池的概念 字符串常量池也有人叫字符串池(String Pool),字符串常量池由String类私有的维护。 在阅读此文章之前还要理解的一些概念,免得你看得神魂颠倒! String str = “aa” ;字符串常量指的是语句中的str,字符串对象或者说字符串实例指的是语句中的 “aa”。 阅读全文
posted @ 2020-04-30 00:27 嗯嗯123 阅读(191) 评论(1) 推荐(0) 编辑
摘要: class字节码的结构 使用javap -verbose 命令分析一个.class字节码文件时(以下简称字节码文件),将会分析该字节码文件的魔数,版本号,常量池,类信息,类的构造方法,类中的方法信息,类变量与实例变量等信息。字节码文件是十六进制的数字,两个十六进制数的大小就是一个字节。 intell 阅读全文
posted @ 2020-04-02 16:28 嗯嗯123 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 本文结构: 一:虚拟机的内存结构 什么是虚拟机内存结构?jvm在运行java程序中的时候会把它管理的内存划分为若干个不同的数据区域,这些区域就是内存结构啦!jdk内存结构如下所示: 1.1 虚拟机栈 此区域是线程私有的,虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个 阅读全文
posted @ 2020-04-02 16:27 嗯嗯123 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 类的生命周期 生命周期详解 生命周期中的类加载阶段可细分为类型的加载,连接,和初始化三个阶段。在java代码中,类型的加载,类型的连接和初始化过程都是在程序运行期间完成的,这使代码提供了更多的可能性(比如可以动态生成类呀)。 类型的加载,在这个阶段,虚拟机要完成三个步骤 1.通过一个类的全限定名来获 阅读全文
posted @ 2020-04-02 16:26 嗯嗯123 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 一 JVM垃圾回收模型 一. GC算法 1.1 标记-清除算法(Mark-Sweep) 算法分为“标记”和“清除”两个阶段首先标记出所有需要回收的对象,然后回收所有需要回收的对象。 问题:效率不高,需要扫描所有的对象,堆越大,GC越慢,并且存在严重的内存碎片问题,空间碎片太多可能会导致后续使用中无法 阅读全文
posted @ 2020-04-02 16:24 嗯嗯123 阅读(453) 评论(0) 推荐(0) 编辑