0x001 背景 JavaMelody是一款运行在Java Web容器中,用来监控Java内存和服务器CPU使用情况的工具,可以通过图表给出监控数据,方便研发运维等找出响应瓶颈、优化响应等。 该组件低版本存在一个XXE漏洞——CVE-2018-15531,由于该组件的启动特性,攻击者无需特定的权限即 ...
分类:
编程语言 时间:
2019-07-28 15:33:47
阅读次数:
203
一.jvm分为年轻代,年老代,持久代1.年轻代:年轻代主要存放新创建的对象,垃圾回收会比较频繁。(稍微讲细一点就是即可,年轻代分成EdenSpace和SuvivorSpace。当对象在堆创建时,将进入年轻代的EdenSpace。垃圾回收器进行垃圾回收时,扫描EdenSpace,如果对象仍然存活,则复制到SuvivorSpace。)2.年老代:年老代主要存放JVM认为生命周期比较长的对象(在扫描Su
分类:
其他好文 时间:
2019-07-26 19:05:41
阅读次数:
260
一、从内存条申请一块内存出来,分成五个部分; 二、调用方法,方法入栈,申请一块内存空间 栈内存中的数组对象名称 array 保存的值就 0x666 ,它的new 出来的数组对象在对内存中的地址值; 找到之后,再根据索引数 0,1,2 .. 定义两个数组对象: 三、两个引用数据类型,两个引用名称直接赋 ...
分类:
编程语言 时间:
2019-07-25 23:51:44
阅读次数:
215
1、并发编程模型的两个关键问题:线程之间的通信和同步。 2、并发线程模型有两种: (1)共享内存:线程之间有公共状态,通过读-写内存中的公共状态进行隐式通信,显示同步。 (2)消息传递:线程之间没有公共状态,必须通过发送消息进行显示通信,隐式同步。 3、Java的并发采用共享内存模型,线程间的通信总 ...
分类:
编程语言 时间:
2019-07-20 13:06:17
阅读次数:
101
首先需要明白以下几点: 栈空间(stack),连续的存储空间,遵循后进先出的原则,用于存放局部变量。 堆空间(heap),不连续的空间,用于存放new出的对象,或者说是类的实例。 方法区(method),方法区在堆空间内,用于存放①类的代码信息;②静态变量和方法;③常量池(字符串敞亮等,具有共享机制 ...
分类:
编程语言 时间:
2019-07-20 09:40:36
阅读次数:
94
一 数据类型 1.1 8种基本数据类型 1.2 引用数据类型 1.3 java内存机制 1.3.1 寄存器 1.3.2 栈 1.3.3 堆 1.3.4. 静态区/方法区 1.3.5. 运行时常量池(Runtime Constant Pool) 1.3.6 直接内存(Direct Memory) 二: ...
分类:
编程语言 时间:
2019-07-17 20:25:05
阅读次数:
135
一、Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。 Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值 ...
分类:
编程语言 时间:
2019-07-17 09:38:46
阅读次数:
90
类在加载的过程中会出现三个阶段:1.java程序被编译为字节码文件,入xxx.class 2.通过classloader类加载器将xxx.class字节码文件加载到内存,封装成class对象,将字节码文件中的成员变量封装到class对象中的flelds对象,将构造方法封装成constructor对象 ...
分类:
编程语言 时间:
2019-07-17 09:37:51
阅读次数:
116
Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知识点总结技术架构原理 https://blog.csdn.net/zhongwen7710/arti ...
分类:
编程语言 时间:
2019-07-16 18:34:47
阅读次数:
104