幽灵雾的专栏

一个以维护世界和平为己任的帅气大叔

Java千百问_07JVM架构(016)_java内存如何优化

点击进入_更多_Java千百问1、java内存如何优化了解jvm内存管理看这里:jvm是如何管理内存的 了解堆内存看这里:java堆内存是什么样的 java内存的优化主要是通过合理的控制GC来实现,主要原则: 1. 不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的...

2016-06-04 07:57:38

阅读数:6535

评论数:1

Java千百问_07JVM架构(019)_运行时常量池是什么

点击进入_更多_Java千百问1、运行时常量池是什么运行时常量池(Runtime Constant Pool),它是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引...

2016-06-09 07:43:38

阅读数:3021

评论数:0

Java千百问_07JVM架构(018)_如何监控jvm的运行情况

点击进入_更多_Java千百问1、如何监控jvm的运行情况了解jvm内存模型看这里:java内存模型是什么样的 了解jvm内存管理看这里:jvm是如何管理内存的 了解jvm垃圾回收机制看这里:java垃圾回收机制是什么 了解jvm内存优化看这里:java内存如何优化我们通常使用Jdk工具来监...

2016-06-05 07:49:16

阅读数:6062

评论数:0

Java千百问_07JVM架构(017)_jvm常见配置都有哪些

点击进入_更多_Java千百问1、jvm常见配置都有哪些了解jvm内存模型看这里:java内存模型是什么样的 了解jvm内存管理看这里:jvm是如何管理内存的 了解jvm垃圾回收机制看这里:java垃圾回收机制是什么jvm配置非常多,按照不同类型划分,常常用来优化jvm内存(了解jvm内存优化...

2016-06-04 10:37:47

阅读数:2859

评论数:0

Java千百问_07JVM架构(015)_XmnXmsXmxXss有什么区别

点击进入_更多_Java千百问1、XmnXmsXmxXss有什么区别首先,Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。了解jvm内存管理看这里:jvm是如何管理内存的Xms、Xmx-Xms、-Xmx分配用来设置进程堆内存的...

2016-05-29 11:05:54

阅读数:5389

评论数:1

Java千百问_07JVM架构(014)_什么是Dump文件

点击进入_更多_Java千百问1、什么是Dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开。当我们的程序发布出去之后,在客户机上是无法跟踪代码的,所以Dump(扩展名是 ...

2016-05-29 10:29:46

阅读数:5104

评论数:1

Java千百问_07JVM架构(013)_java什么情况会内存溢出

点击进入_更多_Java千百问1、Java堆什么情况会溢出所有对象的实例都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,如果程序使用的内存超过了堆最大内存(-Xmx),则会溢出Java heap space。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:j...

2016-05-29 09:47:38

阅读数:2751

评论数:1

Java千百问_07JVM架构(012)_fullGC、minorGC、magorGC有什么区别

点击进入_更多_Java千百问1、fullGC、minorGC、magorGC有什么区别fullGC、minorGC、magorGC还有youngGC是Java垃圾处理机制(GC)的名词,区分这几个概念非常简单: 老生代进行一次垃圾清理,被称为fullGC或者magorGC。 新生代进行一次垃圾清...

2016-05-29 09:06:06

阅读数:5606

评论数:4

Java千百问_07JVM架构(011)_java垃圾回收都有哪些方式

点击进入_更多_Java千百问1、java垃圾回收都有哪些方式所谓垃圾回收方式,是指JVM提供的几种不同的垃圾回收器,不同的垃圾回收器进行垃圾回收时采用不同的方式。当然,总体原则遵循java垃圾回收机制。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:java堆内存是什...

2016-05-29 08:07:25

阅读数:4033

评论数:4

Java千百问_07JVM架构(010)_什么是老生代的标记算法

所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:算法过程: 1. 先判定对象是否可回收,对其标记。 2. 统一回收(简单地删

2016-05-28 10:50:38

阅读数:4468

评论数:1

Java千百问_07JVM架构(009)_什么是新生代的复制算法

所谓复制算法(Copying),即将内存平均分成A区、B区两块,进行复制+清除垃圾的操作,算法图解如下:算法过程: 新生对象被分配到A块中未使用的内存当中。当A块的内存用完了, 把A块的存活对象复制到B块。 清理A块所有对象。

2016-05-28 10:23:17

阅读数:3004

评论数:1

Java千百问_07JVM架构(008)_java垃圾回收机制是什么

1、如何判断垃圾对象垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。通常的编程语言都会用以下算法之一进行判断: 引用计数(ReferenceCounting)算法 这种方法比较简单直观,核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该...

2016-05-28 09:47:18

阅读数:2601

评论数:1

Java千百问_07JVM架构(007)_java堆内存是什么样的

点击进入_更多_Java千百问1.堆内存是什么样的了解jvm实例模型看这里:jvm实例的结构是什么样的 了解java内存框架看这里:jvm是如何管理内存的 了解堆栈的区别看这里:java堆和栈有什么区别 每一个jvm实例都会被分配一个被所有线程共享的堆内存空间,用来存放对象和数组,作为jvm...

2016-05-22 21:36:03

阅读数:3151

评论数:4

Java千百问_07JVM架构(006)_java堆和栈有什么区别

在《jvm是如何管理内存的》这篇文章中,已经对PC寄存器(计数器 pc registers)、方法区(method area)、本地方法栈(native method stacks)、栈(stacks)、堆(heap)内存区域做了介绍,其中栈(stacks)、堆(heap)是java内存管理

2016-05-22 12:09:24

阅读数:4829

评论数:1

Java千百问_07JVM架构(005)_显示内存管理有什么弊端

点击进入_更多_Java千百问1、显示内存管理有什么弊端手动内存管理一般被称为显示内存管理,显示内存管理经常发生两种情况: 引用悬挂 当一个被某个引用变量正在使用的内存空间,在重新分配过程中被释放掉了,释放后,该引用变量就处于悬挂状态(所引用的对象已经不存在了)。 如果这个被悬挂引用变量,试图...

2016-05-22 11:05:58

阅读数:4465

评论数:1

Java千百问_07JVM架构(004)_jvm是如何管理内存的

点击进入_更多_Java千百问1、JVM是如何管理内存的Java中,内存管理是JVM自动进行的,无需人为干涉。了解java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对象或者变量时, JVM会自动分配内存(当然这个分配是遵循严格规则的)...

2016-05-21 12:49:43

阅读数:5875

评论数:3

Java千百问_07JVM架构(003)_内存分配有哪些策略

点击进入_更多_Java千百问1、内存分配有哪些策略我们从编译原理讲起,不同的开发环境、开发语言都会有不同的策略。一般来说,程序运行时有三种内存分配策略:静态的、栈式的、堆式的 静态存储 是指在编译时就能够确定每个数据目标在运行时的存储空间需求,因而在编译时就可以给它们分配固定的内存空间。 这...

2016-05-21 11:55:14

阅读数:4648

评论数:1

Java千百问_07JVM架构(002)_jvm实例的结构是什么样的

点击进入_更多_Java千百问1、jvm实例的结构是什么样的在Java虚拟机规范中,一个虚拟机实例的行为主要组成部分为:子系统、内存区域、数据类型和指令。 这些组件描述了JVM内部的一个抽象结构。与其说这些组成部分的目的是进行JVM内部结构的一种支配,不如说是提供一种对外部行为的严格定义,该规范...

2016-05-21 10:39:10

阅读数:2465

评论数:1

Java千百问_07JVM架构(001)_java内存模型是什么样的

点击进入_更多_Java千百问1、什么是内存模型  Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多。Java针对多种异构平台的独立性,使得多线程技术也具有了开拓性的一面。   我们有时候在Java开发中,对于同步和线程安全要求很严格的程序时,往往...

2016-05-15 19:03:57

阅读数:6578

评论数:1

提示
确定要删除当前文章?
取消 删除