jvm虚拟机
文章平均质量分 88
想跌破记忆寻找你
这个作者很懒,什么都没留下…
展开
-
什么是堆和栈,它们在哪儿?
答案一栈是为执行线程留出的内存空间。当函数被调用的时候,栈顶为局部变量和一些 bookkeeping 数据预留块。当函数执行完毕,块就没有用了,可能在下次的函数调用的时候再被使用。栈通常用后进先出(LIFO)的方式预留空间;因此最近的保留块(reserved block)通常最先被释放。这么做可以使跟踪堆栈变的简单;从栈中释放块(free block)只不过是指针的偏移而已。堆(h原创 2017-01-04 13:50:05 · 334 阅读 · 0 评论 -
java内存模型
内存模型概述1)JSR133:在Java语言规范里面指出了JMM是一个比较开拓性的尝试,这种尝试视图定义一个一致的、跨平台的内存模型,但是它有一些比较细微而且很重要的缺点。其实Java语言里面比较容易混淆的关键字主要是synchronized和volatile,也因为这样在开发过程中往往开发者会忽略掉这些规则,这也使得编写同步代码比较困难。JSR133本身的目的是为了修原创 2016-09-01 10:57:27 · 595 阅读 · 0 评论 -
JVM的GC策略
1 前言 GC(Garbage Collect)是jvm对于内存管理的核心功能,正是因为它才让java程序员从内存释放的苦海中脱离出来,所以作为一个程序员都有必要去了解一下他的原理。 说一句题外话,我曾经被问到GC的具体实现,那个时候我就知道一些基本的思想,结果被人鄙视了。对于这个问题我到现在仍保留个人观点,就算java用了很久,如果不涉及到java程序的性能调原创 2016-09-01 10:11:21 · 6059 阅读 · 0 评论 -
Java内存溢出详解
一、常见的Java内存溢出有以下三种:1. java.lang.OutOfMemoryError: Java heap space----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。He转载 2016-07-21 15:41:15 · 286 阅读 · 0 评论 -
在JVM中,新生代和旧生代有何区别?GC的回收方式有几种?server和client有和区别?
一.概述java的最大好处是自动垃圾回收,这样就无需我们手动的释放对象空间了,但是也产生了相应的负效果,gc是需要时间和资源的,不好的gc会严重影响系统的系能,因此良好的gc是JVM的高性能的保证。JVM堆分为新生代,旧生代和年老代,新生代可用的gc方式有:串行gc(Serial Copying),并行回收gc(Parellel Scavenge),并行gc(ParNew),旧生代和年老代可用原创 2016-06-23 16:20:38 · 3520 阅读 · 0 评论 -
jvm是如何管理内存的
1、JVM是如何管理内存的Java中,内存管理是JVM自动进行的,无需人为干涉。了解java内存模型看这里:java内存模型是什么样的了解jvm实例结构看这里:jvm实例的结构是什么样的创建对象或者变量时, JVM会自动分配内存(当然这个分配是遵循严格规则的)。当JVM发现某些对象不再需要的时候,就会对该对象占用的内存进行重分配(释放)操作,而且使得分配出来的内存能够提供给原创 2016-06-23 15:38:09 · 5069 阅读 · 0 评论 -
java内存优化
1、java内存如何优化了解jvm内存管理看这里:jvm是如何管理内存的了解堆内存看这里:java堆内存是什么样的Java内存的优化主要是通过合理的控制GC来实现,主要原则:1. 不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况(因为GC过后这个值是不会变化的)。2. 使用JDK提供的内存查看工具,比如JConsole和J原创 2016-06-23 15:35:37 · 1803 阅读 · 0 评论