解释了java中对象的在内存中的模型,学习了对象的内存模型后,对理解多态、参数传递等的理解都有帮助。 前言:这是一篇关于JVM内存区域的文章,由网上一些有关这方面的文章和《深入理解 Java虚拟机》整理而来,所以会有些类同的地方,也不能保证我自己写的比其他网上的和书本上的要好,也不可能会这样。写博客... ...
分类:
其他好文 时间:
2018-09-22 22:27:17
阅读次数:
235
值传递和引用传递分析 Java中数据类型分为两大类:基本类型和引用类型(也就是对象类型)。 基本类型:boolean、char、byte、short、int、long、float、double 引用类型:类、接口、数组 因此,变量类型也可分为两大类:基本类型和引用类型。 在分析值传递和引用传递之前,... ...
分类:
其他好文 时间:
2018-09-22 22:26:18
阅读次数:
332
JDK内存 jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配。 运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method ...
分类:
其他好文 时间:
2018-09-18 14:25:38
阅读次数:
202
Tomcat调优主要内容如下:增加最大连接数,调整工作模式,启用gzip压缩,调整JVM内存大小,作为Web服务器时,合理选择垃圾回收算法,尽量使用较新JDK版本生产配置实例:<Connectorport="8080"protocol="org.apache.coyote.http11.Http11 ...
分类:
其他好文 时间:
2018-09-18 11:10:09
阅读次数:
166
文章转自 https://www.cnblogs.com/myna/p/7567889.html 引文 JDK7及之前版本的方法区(Method Area)和Java堆一样,是各个线程共享的内存区域,用于存储已经被虚拟机加载的类信息、常量、静态常量、即时编译器编译后的代码等数据。虽然Java虚拟机规 ...
分类:
编程语言 时间:
2018-09-17 23:05:16
阅读次数:
407
又是一篇备忘... 主要记录一些知识,进行一些资源的汇总. 先来群里 大大提供的两张图,清晰易懂: Dockerized Java https://www.youtube.com/watch?v=NQ5hTEp GTM Java on Linux for devs and ops https://w ...
分类:
其他好文 时间:
2018-09-16 00:35:24
阅读次数:
261
1.1.什么是直接内存(Derect Memory) 在内存模型最开始的章节中,我们画出了JVM的内存模型,里面并不包含直接内存,也就是说这块内存区域并不是JVM运行时数据区的一部分,但它却会被频繁的使用,原因是NIO这个包。 NIO(New input/output)是JDK1.4中新加入的类,引 ...
分类:
其他好文 时间:
2018-09-15 18:22:11
阅读次数:
161
一、堆(Heap) 1.1.什么是堆 堆是用于存放对象的内存区域。因此,它是垃圾收集器(GC)管理的主要目标。其具有以下特点: 堆在逻辑上划分为“新生代”和“老年代”。由于JAVA中的对象大部分是朝生夕灭,还有一小部分能够长期的驻留在内存中,为了对这两种对象进行最有效的回收,将堆划分为新生代和老年代 ...
分类:
其他好文 时间:
2018-09-15 17:32:07
阅读次数:
127
最近开始肝第三次<深入理解Java虚拟机-JVM高级特性与最佳实践>, 每次都是看了就忘, 所以这次准备写点东西记录下来. 个人感觉这本书写的是真的不错, 不同的阶段看有不同的体验, 每次都有很多收获. 话不多说, 直接进入正题. 什么是JVM Java Vitual Machine, 是一个运行J ...
分类:
其他好文 时间:
2018-09-13 23:59:51
阅读次数:
301
JVM的内存区域是怎么划分的? JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢? 首先是 程序计数器 (Program Counter Regi ...
分类:
其他好文 时间:
2018-09-12 20:18:52
阅读次数:
187