2.1.哪些内存需要回收? jvm的内存结构包含五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中,程序计数器、虚拟机栈、方法栈3个区域随线程而生,随线程而灭,因此这届个区域的内存和回收都具备确定性,就不需要过多回收的问题,因为方法结束时,内存自然就跟着回收了,而java堆区和方法区不一 ...
分类:
其他好文 时间:
2019-05-09 20:23:03
阅读次数:
135
1、Tomcat 的优化经验 答:去掉对 web.xml 的监视,把 jsp 提前编辑成 Servlet。 有富余物理内存的情况,加大 tomcat 使用的 jvm 的内存 2、HTTP 请求的 GET 与 POST 方式的区别 答: Get:是以实体的方式得到由请求 URI 所指定资源的信息,如果 ...
分类:
编程语言 时间:
2019-04-26 09:25:37
阅读次数:
182
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间。 先来看一下Java程序具体执行的过程 上图中的运行数据区(Runtime Data Areas)即为JVM内存区域,其结构如下图: 各区域存储的具体信息: 1 ...
分类:
编程语言 时间:
2019-03-12 16:53:36
阅读次数:
228
概念: volatile关键字,官方解释:volatile可以保证 可见性、顺序性、一致性 。 可见性:volatile修饰的对象在加载时会告知JVM,对象在CPU的缓存上对多个线程是同时可见的。 顺序性:这里有JVM的内存屏障的概念,简单理解为:可以保证线程操作对象时是顺序执行的,详细了解可以自行 ...
分类:
编程语言 时间:
2019-02-15 15:49:25
阅读次数:
279
本文我们来分析分析应用服务器的内存泄露的问题,看看Tomcat是如何应对这个问题的;首先,来看看内存泄露这个词,内存对于java程序来说,即指JVM内存,而我们知道JVM的内存泄露是有很多种情况的;一种情况,class泄露是perm区的内存,此种场景就是当应用服务器的类特别多的时候,perm区的容量... ...
分类:
其他好文 时间:
2019-01-24 11:55:03
阅读次数:
188
程序计数器:保存的是当前存成执行命令的地址,每次得到当前的地址后会执行下一条命令,每个线程都是独立的 在JVM规范中规定,如果线程执行的是非native方法,则程序计数器中保存的是当前需要执行的指令的地址;如果线程执行的是native方法,则程序计数器中的值是undefined。 由于程序计数器中存 ...
分类:
其他好文 时间:
2019-01-12 20:54:49
阅读次数:
162
首先JVM的内存结构包括五大区域: 程序计数器、虚拟机栈、本地方法栈、方法区、堆区。其中程序计数器、虚拟机栈和本地方法栈3个区域随线程启动与销毁, 因此这几个区域的内存分配和回收都具有确定性,不需要过多考虑回收的问题。而Java堆区和方法区则不一样,这部分内存的分配和回收是动态的,正式垃圾回收需要关 ...
分类:
其他好文 时间:
2019-01-06 00:03:59
阅读次数:
200
JVM的内存区域划分 来源 https://www.cnblogs.com/xiaoxi/p/6421526.html 说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存 ...
分类:
其他好文 时间:
2019-01-04 17:19:32
阅读次数:
145
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区 ...
分类:
其他好文 时间:
2018-12-26 20:06:05
阅读次数:
125
这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。 先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信 ...
分类:
其他好文 时间:
2018-12-26 15:55:13
阅读次数:
128