![](https://img-blog.csdnimg.cn/20200717183346896.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
java基础知识
hzw@sirius
志之所及,皆为征途
展开
-
log4j-CNVD-2021-95914-BUG
log4j-CNVD-2021-95914-BUG1. 缺陷复现缺陷方演示import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class log4j_CNVD_2021_95914 { private static final Logger log = LogManager.getLogger(log4j_CNVD_2021_95914.class); publi原创 2021-12-17 16:45:30 · 282 阅读 · 0 评论 -
jvm监控方案
一.jconsole1.1 演示1.2 远程监控jconsol若要监控服务器端的jvm,需开启JMX服务资料:Jconsole与Jmx 分析JVM状况(上)Jconsole与Jmx 分析JVM状况(下)开启JMX服务(vm optinos)-Dcom.sun.management.jmxremote.port=8989 -- 指定端口-Dcom.sun.management.jmxremote.authenticate=false – 指定是否需要密码验证-Dcom.sun.m原创 2020-08-24 20:10:47 · 437 阅读 · 0 评论 -
阿里P8的这点Java底层?(合集)
JVM内存模型##内存模型图四个概念class文件class文件就是我们说的字节码文件,它是由.java、.groovy等文件通过编译器解析产出的文件。class文件才是jvm要使用的文件。class contentclass content就是class文件读取到内存中的那片内存区域Class对象类加载器将class content里的内容逐个字节读出,按照jvm规范解析成Class对象,放入方法区中。java.lang.String.class 就是一个Class对象对象由Cla原创 2020-07-16 16:34:07 · 496 阅读 · 1 评论 -
阿里P8的这点Java底层?-JVM内存模型
JVM内存模型##内存模型图四个概念class文件class文件就是我们说的字节码文件,它是由.java、.groovy等文件通过编译器解析产出的文件。class文件才是jvm要使用的文件。class contentclass content就是class文件读取到内存中的那片内存区域Class对象类加载器将class content里的内容逐个字节读出,按照jvm规范解析成Class对象,放入方法区中。java.lang.String.class 就是一个Class对象对象由Cla原创 2020-07-14 11:23:12 · 311 阅读 · 0 评论 -
阿里P8的这点Java底层?-对象的大小、指针压缩
文章开头思考一个问题:为什么要计算对象大小对象的大小对象的内存布局对象头Mark Word32位机,占4字节;64位机,占8字节。主要存储对象运行时的一部分数据: hashcode,GC 分代年龄,锁状态标志位,线程锁标记,偏向线程ID,偏向时间戳等类型指针(Klass point)指向方法区当前对象的Class类开启指针压缩:指针大小为4B;未开启指针压缩:指针大小位8B数组长度普通对象没有数组长度,数组对象才有数组长度对齐填充(上第二个图,特殊情况下会有,见下面数组对象的演示原创 2020-07-15 09:25:12 · 352 阅读 · 0 评论 -
阿里P8的这点Java底层?-虚拟机栈与调优 (内容不够丰满,待补充)
虚拟机栈与调优 (内容不够丰满)jvm栈大小-Xss,指设定每个线程的堆栈大小虚拟机栈默认大小为1M,如下上图1024的单位是1k,下图演示通过-Xss指定栈大小为228jvm限定堆栈最小值上例显示,1.6限定的最小堆栈大小为160k,1.8限定的最小堆栈大小为228k思考1: 最小堆栈大小是怎么确定的?哪些因素影响???栈溢出下例通过无限递归产生栈溢出,通过变量记录下栈溢出时,最大的栈深度思考:分析下上例栈溢出产生的原因此例,栈溢出的原因:jvm虚拟机栈中,test()方法都会原创 2020-07-16 16:27:09 · 288 阅读 · 0 评论 -
阿里P8的这点Java底层?-Java内存模型、volatile(底层详解)
Java内存模型JMMJava Memory Model,JMM规定了内存主要划分为主内存和工作内存两种。此处的主内存和工作内存跟JVM内存划分(堆、栈、方法区)是在不同的层次上进行的,如果非要对应起来,主内存对应的是Java堆中的对象实例部分,工作内存对应的是栈中的部分区域,从更底层的来说,主内存对应的是硬件的物理内存,工作内存对应的是寄存器和高速缓存。内存交互操作指令指令说明lock(锁定)主内存中的变量标识为线程独占状态unlock(解锁)将线程独占状态的主内存变量解除锁定re原创 2020-07-16 16:29:34 · 251 阅读 · 0 评论