12 2021 档案

摘要:#环境 jdk11 #jconsole 官方文档:https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html 从Java5开始,在JDK中自带的Java监控和管理控制台 用于对JVM中内存、线程和类等 阅读全文
posted @ 2021-12-23 17:50 翻蹄亮掌一皮鞋 阅读(332) 评论(0) 推荐(0) 编辑
摘要:#环境 jdk11 #jps jps(Java Process Satus):显示指定系统内所有的HotSpot虚拟机进程(查看虚拟机进程信息),可用于查询正在运行的虚拟机进程。 基本语法:jps [options] [hostid] options 3.1 -q: 只显示本地虚拟机唯一id 3.2 阅读全文
posted @ 2021-12-22 22:47 翻蹄亮掌一皮鞋 阅读(114) 评论(0) 推荐(0) 编辑
摘要:#概括 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型需要进行类的加载 从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期为:加载=>链接(验证、准备、解析)=>初始化=>使用=>卸载 #加载阶段 ##加载完成的操作 加载:将Ja 阅读全文
posted @ 2021-12-19 18:55 翻蹄亮掌一皮鞋 阅读(36) 评论(0) 推荐(0) 编辑
摘要:#环境 jdk1.8 #概括 助记符(mnemonic):Short description of the instruction 对于大部分与数据类型相关的字节码指令,它们的操作码助记符中都有特殊的字符来表明专门为哪种数据类型服务。例如 i 代表对int类型的数据操作 JVM中的字节码指令集按照用 阅读全文
posted @ 2021-12-19 15:23 翻蹄亮掌一皮鞋 阅读(534) 评论(0) 推荐(0) 编辑
摘要:#概括 #魔数 The magic item supplies the magic number identifying the class file format; it has the value 0xCAFEBABE. 每个class 文件开头的4个字节的无符号整数称为魔数(Magic Num 阅读全文
posted @ 2021-12-18 22:49 翻蹄亮掌一皮鞋 阅读(109) 评论(0) 推荐(0) 编辑
摘要:#不涉及其它运算 public void method1() { int i = 3; i++; } public void method1() { int i = 3; ++i; } 结论:不涉及其它运算的情况下,i和i没有区别 #涉及其他运算 ##i++ public void method1( 阅读全文
posted @ 2021-12-16 14:51 翻蹄亮掌一皮鞋 阅读(81) 评论(0) 推荐(0) 编辑
摘要:#什么是垃圾回收器 垃圾收集器 (GC) 自动管理应用程序的动态内存分配请求。 #默认选择 垃圾收集器、堆大小和运行时编译器默认选择: 垃圾优先使用 (G1) 收集器 最大 GC 线程数受堆大小和可用 CPU 资源的限制 初始堆大小为物理内存的 1/64 最大堆大小为物理内存的 1/4 分层编译器, 阅读全文
posted @ 2021-12-10 15:43 翻蹄亮掌一皮鞋 阅读(128) 评论(0) 推荐(0) 编辑
摘要:#System.gc() 调用该gc方法表明 Java 虚拟机将努力回收未使用的对象,以使它们当前占用的内存可用于快速重用。当控制从方法调用返回时,Java 虚拟机已尽最大努力从所有丢弃的对象中回收空间,不能保证一定进行回收。 #内存溢出 内存溢出(Out Of Memory,简称OOM)是指应用系 阅读全文
posted @ 2021-12-10 11:59 翻蹄亮掌一皮鞋 阅读(88) 评论(0) 推荐(0) 编辑
摘要:#垃圾标记阶段 ##对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段 ##引用计数算法 最早的也 阅读全文
posted @ 2021-12-09 21:33 翻蹄亮掌一皮鞋 阅读(46) 评论(0) 推荐(0) 编辑
摘要:#什么是垃圾回收 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾 垃圾回收(英语:Garbage Collection,缩写为GC)是指一种自动的存储器管理机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间,垃圾 阅读全文
posted @ 2021-12-09 17:51 翻蹄亮掌一皮鞋 阅读(378) 评论(0) 推荐(0) 编辑
摘要:#概述 String是final类 String实现了Serializable、Comparable < String >、CharSequence接口 在jdk9以前使用char数组储存字符串数据,jdk8以后使用byte数组 @Stable private final byte[] value; 阅读全文
posted @ 2021-12-09 16:44 翻蹄亮掌一皮鞋 阅读(125) 评论(0) 推荐(0) 编辑
摘要:#概述 jvm的主要任务是负责装在字节码到其内部,但是字节码指令不等价于本地机器指令 由执行引擎将字节码指令解释为对应平台上的本地机器指令 执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于Pc寄存器 PC寄存器始终保存着下一条需要被执行的指令地址 执行引擎采用解释器和即时编译器并存的架 阅读全文
posted @ 2021-12-09 13:27 翻蹄亮掌一皮鞋 阅读(102) 评论(0) 推荐(0) 编辑
摘要:#概述 直接内存是在java堆外的、直接向系统申请的内存空间 来源于NIo,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高 #缺点 分配回收成变高 不受jvm内存回收管理 阅读全文
posted @ 2021-12-08 21:49 翻蹄亮掌一皮鞋 阅读(49) 评论(0) 推荐(0) 编辑
摘要:#创建对象的方式 通过 new 关键字 Class的newInstance() Constructor的newInstance(...) 使用clone() 使用反序列化 第三方库Objenesis #创建对象的步骤 判断对象对应的类是否加载、链接、初始化:虚拟机遇到一条new指令,首先去检查这个指 阅读全文
posted @ 2021-12-08 21:21 翻蹄亮掌一皮鞋 阅读(25) 评论(0) 推荐(0) 编辑
摘要:#概括 方法区是在虚拟机启动时创建的 方法区是所有 Java 虚拟机线程之间共享的 它存储每个类的结构,例如运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括在类和接口初始化以及实例初始化中使用的特殊方法 方法区可以是固定大小,也可以根据计算需要进行扩展,如果不需要较大的方法区,可以进行收 阅读全文
posted @ 2021-12-08 19:39 翻蹄亮掌一皮鞋 阅读(38) 评论(0) 推荐(0) 编辑
摘要:#概括 一个jvm实例只有一个堆内存 所有 Java 虚拟机线程之间共享堆 堆的内存不需要是连续的,逻辑上它被视为连续的 堆是在虚拟机启动时创建的 堆是为所有类实例和数组分配内存的运行时数据区域。 数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。 在方法结 阅读全文
posted @ 2021-12-08 16:59 翻蹄亮掌一皮鞋 阅读(53) 评论(0) 推荐(0) 编辑
摘要:#概括 #总结 本地方法栈管理本地方法的调用 本地方法栈是线程私有的 本地方法栈可以是固定的或可动态扩展大小的 本地方法栈是用C语言实现的 它的具体做法是Native Method stack中登记native方法,在Execution Engine执行时加载本地方法库。 阅读全文
posted @ 2021-12-08 12:05 翻蹄亮掌一皮鞋 阅读(29) 评论(0) 推荐(0) 编辑
摘要:#什么是本地方法? 一个native method方法就是一个Java调用非Java的接口,该方法的实现由非Java语言实现 #为什么使用native method 有些层次的任务用java实现很不容易,例如和底层系统的交互 #用法 定实现体义native方法,不提供,实现体是用非java语言在外面 阅读全文
posted @ 2021-12-08 11:35 翻蹄亮掌一皮鞋 阅读(24) 评论(0) 推荐(0) 编辑
摘要:#出现背景 由于Java是跨平台的,不同平台CPU的架构不同,不能设计为基于寄存器,所以Java的指令都是根据栈来设计的。 #概括 每个 Java 虚拟机线程都有一个私有的Java 虚拟机栈,与线程同时创建。Java 虚拟机栈存储栈帧,它保存局部变量和部分结果,并在方法调用和返回中发挥作用。Java 阅读全文
posted @ 2021-12-07 23:04 翻蹄亮掌一皮鞋 阅读(36) 评论(0) 推荐(0) 编辑
摘要:#概括 The Java Virtual Machine can support many threads of execution at once (JLS §17). Each Java Virtual Machine thread has its own pc (program counter 阅读全文
posted @ 2021-12-07 20:45 翻蹄亮掌一皮鞋 阅读(248) 评论(0) 推荐(0) 编辑
摘要:#作用 顾名思义,类加载器是加载 Java 类的东西。更准确地说,类加载器读取类文件的内容,然后使用读取的字节数组创建java.lang.Class的实例。 1:类加载器子系统负责从文件系统或者网络中加载class文件。 2:classLoader只负责class文件的加载,至于它是否可以运行,则由 阅读全文
posted @ 2021-12-07 20:16 翻蹄亮掌一皮鞋 阅读(116) 评论(0) 推荐(0) 编辑
摘要:#概括 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏 阅读全文
posted @ 2021-12-07 15:54 翻蹄亮掌一皮鞋 阅读(82) 评论(0) 推荐(0) 编辑

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