jvm 架构
文章平均质量分 75
雪地里的白开水1
这个作者很懒,什么都没留下…
展开
-
JVM架构(006)_java堆和栈有什么区别
1、java堆和栈有什么区别了解jvm内存管理看这里:jvm是如何管理内存的 在《jvm是如何管理内存的》这篇文章中,已经对PC寄存器(计数器 pc registers)、方法区(method area)、本地方法栈(native method stacks)、栈(stacks)、堆(heap)内存区域做了介绍,其中栈(stacks)、堆(heap)是java内存管理中非常重要的两个部转载 2016-08-29 14:26:55 · 354 阅读 · 0 评论 -
JVM架构(017)_jvm常见配置都有哪些
1、jvm常见配置都有哪些了解jvm内存模型看这里:java内存模型是什么样的 了解jvm内存管理看这里:jvm是如何管理内存的 了解jvm垃圾回收机制看这里:java垃圾回收机制是什么jvm配置非常多,按照不同类型划分,常常用来优化jvm内存(了解jvm内存优化看这里:java内存如何优化),常见配置如下:了解垃圾回收器看这里:java垃圾回收都有哪些方式转载 2016-08-30 15:43:20 · 254 阅读 · 0 评论 -
JVM架构(018)_如何监控jvm的运行情况
1、如何监控jvm的运行情况了解jvm内存模型看这里:java内存模型是什么样的 了解jvm内存管理看这里:jvm是如何管理内存的 了解jvm垃圾回收机制看这里:java垃圾回收机制是什么 了解jvm内存优化看这里:java内存如何优化我们通常使用Jdk工具来监控jvm的运行情况,当然目前有很多第三方产品是通过jdk提供的api来组织数据进行监控的。具体来说有如下监控软转载 2016-08-30 16:10:45 · 897 阅读 · 0 评论 -
JVM架构(019)_运行时常量池是什么
1、运行时常量池是什么运行时常量池(Runtime Constant Pool),它是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到常量池中。了解java内存管理看这里:jvm是如何管理内存的 如图:转载 2016-08-30 16:38:38 · 739 阅读 · 1 评论 -
异常处理(005)_如何自定义异常
1、如何定义自己的异常Java支持自己创建的异常。了解异常看这里:什么是java中的异常方法如下:1、所有的异常必须是Throwable的子类。2、如果想写一个检查异常,需要扩展Exception类。3、如果想编写一个运行时异常,则需要扩展RuntimeException类。4、异常类与任何其他类一样,可以包含字段和方法。我们可以定义如下自己的异常处理类:转载 2016-08-31 11:14:36 · 341 阅读 · 0 评论 -
JVM架构(001)_java内存模型是什么样的
1、什么是内存模型 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多。Java针对多种异构平台的独立性,使得多线程技术也具有了开拓性的一面。 了解线程和进程看这里:线程和进程有什么区别 我们有时候在Java开发中,对于同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型。那究竟什么是内存模型呢?转载 2016-08-26 11:08:29 · 221 阅读 · 0 评论 -
JVM架构(002)_jvm实例的结构是什么样的
1、jvm实例的结构是什么样的在Java虚拟机规范中,一个虚拟机实例的行为主要组成部分为:子系统、内存区域、数据类型和指令。 这些组件描述了JVM内部的一个抽象结构。与其说这些组成部分的目的是进行JVM内部结构的一种支配,不如说是提供一种对外部行为的严格定义,该规范定义了这些抽象组成部分的相互作用,以及Java虚拟机执行所需要的行为。了解jvm内存管理看这里:java内存模型是转载 2016-08-26 11:33:59 · 369 阅读 · 0 评论 -
JVM架构(003)_内存分配有哪些策略
1、内存分配有哪些策略我们从编译原理讲起,不同的开发环境、开发语言都会有不同的策略。一般来说,程序运行时有三种内存分配策略:静态的、栈式的、堆式的静态存储 是指在编译时就能够确定每个数据目标在运行时的存储空间需求,因而在编译时就可以给它们分配固定的内存空间。 这种分配策略要求程序代码中不允许有可变数据结构的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译转载 2016-08-26 17:21:50 · 393 阅读 · 0 评论 -
JVM架构(004)_jvm是如何管理内存的
1、JVM是如何管理内存的Java中,内存管理是JVM自动进行的,无需人为干涉。了解java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对象或者变量时, JVM会自动分配内存(当然这个分配是遵循严格规则的)。当JVM发现某些对象不再需要的时候,就会对该对象占用的内存进行重分配(释放)操作,而且使得分配出来的内存能够提转载 2016-08-26 18:29:12 · 389 阅读 · 0 评论 -
07JVM架构(016)_java内存如何优化
1、java内存如何优化了解jvm内存管理看这里:jvm是如何管理内存的 了解堆内存看这里:java堆内存是什么样的 java内存的优化主要是通过合理的控制GC来实现,主要原则: 1. 不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况(因为GC过后这个值是不会变化的)。 2. 使用JDK提供的内存查看工具,比如JConsole和Jav转载 2016-08-30 15:42:43 · 298 阅读 · 0 评论 -
JVM架构(015)_XmnXmsXmxXss有什么区别
1、XmnXmsXmxXss有什么区别首先,Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。了解jvm内存管理看这里:jvm是如何管理内存的Xms、Xmx-Xms、-Xmx分配用来设置进程堆内存的最小大小和最大大小。了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制转载 2016-08-30 15:35:30 · 15657 阅读 · 0 评论 -
JVM架构(007)_java堆内存是什么样的
1.堆内存是什么样的了解jvm实例模型看这里:jvm实例的结构是什么样的 了解java内存框架看这里:jvm是如何管理内存的 了解堆栈的区别看这里:java堆和栈有什么区别 每一个jvm实例都会被分配一个被所有线程共享的堆内存空间,用来存放对象和数组,作为jvm的数据集中管理区,存取效率、空间释放就成为了重中之重,jvm通过多区架构来完成这两个目标的达成。其结构如下:转载 2016-08-29 15:04:44 · 421 阅读 · 0 评论 -
JVM架构(008)_java垃圾回收机制是什么
1、如何判断垃圾对象垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。通常的编程语言都会用以下算法之一进行判断:引用计数(ReferenceCounting)算法 这种方法比较简单直观,核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。FlashPlayer/Python使用该算法,简转载 2016-08-29 16:38:40 · 317 阅读 · 0 评论 -
JVM架构(009)_什么是新生代的复制算法
1、什么是新生代的复制算法了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收看这里:java垃圾回收机制是什么 所谓复制算法(Copying),即将内存平均分成A区、B区两块,进行复制+清除垃圾的操作,算法图解如下:算法过程:新生对象被分配到A块中未使用的内存当中。当A块的内存用完了, 把A块的存活对象复制到B块。清理A块所有对象。新生对象被分转载 2016-08-29 16:49:43 · 886 阅读 · 1 评论 -
JVM架构(010)_什么是老生代的标记算法
1、什么是老生代的标记算法了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收看这里:java垃圾回收机制是什么 所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:算法过程: 1. 先判定对象是否可回收,对其标记。 2. 统一回收(简单转载 2016-08-29 16:52:46 · 422 阅读 · 0 评论 -
JVM架构(011)_java垃圾回收都有哪些方式
1、java垃圾回收都有哪些方式所谓垃圾回收方式,是指JVM提供的几种不同的垃圾回收器,不同的垃圾回收器进行垃圾回收时采用不同的方式。当然,总体原则遵循java垃圾回收机制。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制看这里:java垃圾回收机制是什么每种方式都有自己的优势与劣势。我们编转载 2016-08-29 16:58:15 · 334 阅读 · 0 评论 -
JVM架构(012)_fullGC、minorGC、magorGC有什么区别
1、fullGC、minorGC、magorGC有什么区别fullGC、minorGC、magorGC还有youngGC是Java垃圾处理机制(GC)的名词,区分这几个概念非常简单:老生代进行一次垃圾清理,被称为fullGC或者magorGC。新生代进行一次垃圾清理,被称为youngGC或者minorGC。了解java垃圾回收机制看这里:java垃圾转载 2016-08-29 17:00:18 · 772 阅读 · 0 评论 -
JVM架构(013)_java什么情况会内存溢出
1、Java堆什么情况会溢出所有对象的实例都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,如果程序使用的内存超过了堆最大内存(-Xmx),则会溢出Java heap space。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制看这里:java垃圾回收机制是什么实例:publi转载 2016-08-29 17:15:22 · 433 阅读 · 0 评论 -
JVM架构(014)_什么是Dump文件
1、什么是Dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开。当我们的程序发布出去之后,在客户机上是无法跟踪代码的,所以Dump(扩展名是 .dmp)文件对于我们来说特别重要。我们可以通过.dmp文件把出现问题的情况再现,然后根据再现的状况(包括堆转载 2016-08-29 17:24:20 · 836 阅读 · 0 评论 -
JVM架构(005)_显示内存管理有什么弊端
1、显示内存管理有什么弊端手动内存管理一般被称为显示内存管理,显示内存管理经常发生两种情况:引用悬挂 当一个被某个引用变量正在使用的内存空间,在重新分配过程中被释放掉了,释放后,该引用变量就处于悬挂状态(所引用的对象已经不存在了)。 如果这个被悬挂引用变量,试图操作原来对象的时候,由于该对象本身的内存空间已经被手动释放掉了(已经不存在了),所以这个执行结果是不可预知转载 2016-08-26 19:55:19 · 410 阅读 · 0 评论