随笔分类 -  Java虚拟机

《深入理解Java虚拟机》读书笔记
摘要:一、什么是OOM OutOfMemory(内存溢出)就是内存用完了,意思就是说,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error(注:非exception,因为这个问题已经严重到不足以被应用处理)。 PS.一个线程OOM,进程里其他线程还能运行吗 阅读全文
posted @ 2020-05-28 23:39 Qmillet 阅读(639) 评论(0) 推荐(0)
摘要:一、概述 系统上线会出现GC相关问题,有FGC过于频繁的,有YoungGC耗时过长的。GC过程会导致其他线程STW,进一步导致服务器响应超时。 二、解决 1. 通过可视化工具(JvisualVM或MAT)或者终端命令行查看每次GC之后的情况 2. 如果每次GC之后内存都没有释放空间的话,这就可能是内 阅读全文
posted @ 2020-05-28 15:25 Qmillet 阅读(5013) 评论(0) 推荐(0)
摘要:一、Tomcat接口 server.xml配置文件讲解 <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <!--停止端口号 --> <Listener className="org.apa 阅读全文
posted @ 2020-03-23 15:14 Qmillet 阅读(787) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_37141773/article/details/103138476 一、虚拟机 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。 同一个java代码在windows上生成的机器码可能是0101.. 阅读全文
posted @ 2019-12-22 09:42 Qmillet 阅读(338) 评论(0) 推荐(0)
摘要:虚拟机执行子系统 第八章 虚拟机字节码执行引擎 第六、七章讲解了如何在Class文件中定义类,如何将类加载到虚拟机中,本章主要讲解虚拟机如何执行定义在Class文件里的字节码。 所有Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 一、运行时 阅读全文
posted @ 2019-12-16 22:07 Qmillet 阅读(150) 评论(0) 推荐(0)
摘要:虚拟机执行子系统 第七章 虚拟机类加载机制 本章讲述虚拟机如何加载Class文件?Class文件中的信息进入虚拟机之后有什么样的变化? 【类加载机制】:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载 阅读全文
posted @ 2019-12-16 20:24 Qmillet 阅读(182) 评论(0) 推荐(0)
摘要:虚拟机执行子系统 第六章、类文件结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现“一次编写,到处运行”。 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基 阅读全文
posted @ 2019-12-16 14:30 Qmillet 阅读(183) 评论(0) 推荐(0)
摘要:自动内存管理机制 第三章 垃圾收集器与内存分配策略 【哪些内存需要回收?、什么时候回收?如何回收?】 一、对象已死吗——对象是否是垃圾? 1.引用计数算法 【基本思想】:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加一;当引用失效时,计数器值减一;任何时刻计数器值为0的对象就是不可能再 阅读全文
posted @ 2019-12-14 22:35 Qmillet 阅读(225) 评论(0) 推荐(0)
摘要:自动内存管理机制 第二章、Java内存区域与内存溢出异常 【虚拟机中内存如何划分,以及哪部分区域、什么样代码和操作会导致内存溢出、各区域内存溢出的原因】 一、运行时数据区域 Java虚拟机所管理的内存包括以下几个运行时数据区域【虚拟机内存模型】: 1.程序计数器: 可以看作是当前线程所执行的字节码的 阅读全文
posted @ 2019-12-14 22:29 Qmillet 阅读(241) 评论(0) 推荐(0)
摘要:第一章 走进Java 一、Java技术体系 Java技术体系组成部分:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库 JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程 阅读全文
posted @ 2019-12-13 20:41 Qmillet 阅读(144) 评论(0) 推荐(0)