E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
jvm学习
JVM学习
记录-Java内存模型(二)
对于volatile型变量的特殊规则关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制。在处理多线程数据竞争问题时,不仅仅是可以使用synchronized关键字来实现,使用volatile也可以实现。Java内存模型对volatitle专门定义了一些特殊的访问规则,当一个变量被定义为volatile时,它将具备以下两个特性:第一个是保证此变量对所有线程的可见性,这里的“可见性”
纪莫
·
2018-05-31 01:00
JVM学习
记录-Java内存模型(一)
前言Java虚拟机规范中定义了一种Java的内存模型,即JavaMemooryModel(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果。JVM是整个虚拟机,JMM模型属于JVM的一部分。定义Java内存模型并不是一件容易的事情,即要足够严谨,又要足够宽松。初始的Java内存模型并不完善,经过不断的改善,到JDK1.5后才逐渐的成熟和完善起来。主内存与工作内存Java内
纪莫
·
2018-05-30 01:00
JVM学习
记录-类加载器
前言JVM设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外面去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类与类加载器类加载器虽然只用户实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。每个类都有一个独立的类名称空间,在比较两个类是否“相等”,只有两个类是由同一个类加载器加载
纪莫
·
2018-05-28 23:00
JVM学习
记录-类加载的过程
类的整个生命周期的7个阶段是:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。类加载的全过程主要包括:加载、验证、准备、解析、初始化这5个阶段的内容。加载加载是类加载过程的一个阶段,在加载阶段JVM需要完成以下3件事情:通过一个类的全限定明
纪莫
·
2018-05-27 19:00
JVM学习
记录-类加载时机
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类的加载机制。在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolu
纪莫
·
2018-05-26 01:00
JVM学习
记录-垃圾收集器
先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法:标记-清除算法(Mark-Sweep)。复制算法(Copying)。标记整理算法(Mark-Compact)。分代收集算法(GenerationalCollecting)。如果说收集算法是内存回收的方法论。那么垃圾收集器就是内存回收的具体实现。不同的厂商、不同的版本的虚拟机提供的垃圾收集器会有很大差别,目前讨论的收集器基于JDK1.7Update
纪莫
·
2018-05-22 00:00
JVM学习
记录-垃圾回收算法
简述因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法。JVM中常见的垃圾收集算法有以下四种:标记-清除算法(Mark-Sweep)。复制算法(Copying)。标记整理算法(Mark-Compact)。分代收集算法(GenerationalCollecting)。标记-清除算法标记-清除算法是现代垃圾回收算法的思想基础,主要分为两个阶段:标记阶段和清除阶段。首先根据
纪莫
·
2018-05-10 00:00
10_
JVM学习
笔记_线程上下文类加载器分析
线程上下文类加载器分析示例代码packagecom.leofight.jvm.classloader;publicclassMyTest24{publicstaticvoidmain(String[]args){System.out.println(Thread.currentThread().getContextClassLoader());System.out.println(Thread.c
leofight
·
2018-05-01 10:49
JVM学习
笔记——Part1 自动内存管理机制 Chapter one:Java 内存区域与内存溢出异常(长期更新)
JVM学习
笔记——Part1自动内存管理机制Chapterone:Java内存区域与内存溢出异常(长期更新)本文内容基于《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》,作者周志明,机械工业出版社出版
璃寒渡鸦
·
2018-04-30 16:15
Java学习笔记
09_
JVM学习
笔记_启动类加载器与自定义系统类加载器详解
启动类加载器与自定义系统类加载器示例代码publicclassMyTest23{publicstaticvoidmain(String[]args){System.out.println(System.getProperty("sun.boot.class.path"));System.out.println(System.getProperty("java.ext.dirs"));System.
leofight
·
2018-04-30 12:55
07_
JVM学习
笔记_类加载情况的运行分析
自定义类加载器在复杂类加载情况下的运行分析示例代码:packagecom.leofight.jvm.classloader;publicclassMyCat{publicMyCat(){System.out.println("MyCatisloadedby:"+this.getClass().getClassLoader());}}packagecom.leofight.jvm.classload
leofight
·
2018-04-30 08:35
JVM学习
记录-对象已死吗
前言先来回顾一下,在jvm运行时数据区,分为两部分,一个部分是线程共享区,主要包括堆和方法区,另一部是线程私有区分包括本地方法栈,虚拟机栈和程序计数器。在线程私有部分的三个区域是随着线程生和灭的。栈中的栈帧随着方法的进入和退出而执行着出栈和入栈操作。每一个栈帧所用内存大小在类结构确定下来时就已知了。因此这线程私有区的内存分配和回收都具备确定性,简单概括的说:这部分内存在类加载时分配,在线程结束时回
纪莫
·
2018-04-22 19:00
JVM学习
笔记——深入理解JVM在Java堆中对象分配、布局和访问的全过程
注:参考书籍《深入理解Java虚拟机JVM高级特性与最佳实践第2版》(周志明著)在之前的《
JVM学习
笔记——Java内存区域》中,已经介绍了Java虚拟机的运行时数据区,了解了内存中放了什么之后,我们需要进一步了解虚拟机内存中的数据的其他细节
Selves_Nan
·
2018-04-21 13:31
Java学习心得
JVM学习
笔记——Java内存区域
本系列的学习笔记是基于学习《深入理解Java虚拟机第2版》(周志明著)的,为了便于随时复习和查漏补缺,所以我将书本的内容进行整理和进一步归纳。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区,这些区域有着各自的用途,以及创建和被销毁的时间,有的区域区域随着虚拟机进程的启动而存在,我们称为“由所有线程共享的数据区”,有些区域则依赖用户线程的启动和结束而建立和销毁。根
Selves_Nan
·
2018-04-20 22:41
Java学习心得
06_
JVM学习
笔记_类的命名空间、类的卸载
类的命名空间每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成。在同一个命名空间中,不会出现类的完整名字(包括类的包中)相同的两个类。在不同的命名空间中,有可能会出现类的完整名字(包括类的包名)相同的两个类。关于命名空间的重要说明1.子加载器所加载的类能够访问父加载器所加载的类2.父加载器所加载的类无法访问到子加载器所加载的类类的卸载当MySample类被加载、连接和初
leofight
·
2018-04-07 15:06
JVM学习
--虚拟机类加载机制
1.类加载的时机加载、验证、准备、解析(连接)、初始化、使用、卸载,7个阶段。2.类加载的过程2.1加载阶段通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法去的运行时的数据结构在内存中生成一个代表这个类的Class对象,作为方法区这个类的各种数据的访问入口2.2验证阶段文件格式的验证元数据的验证字节码验证符号引用的验证2.3准备阶段正式为类变量分配内存并设置
soap_leutenant
·
2018-03-23 15:27
JVM
JVM
JVM学习
之 Class类文件结构
Class文件格式u1代表1个字节,class文件是一组以8位字节为基础单位的二进制流。类型名称数量u4magic1u2minor_version1u2major_version1u2constant_pool_count1cp_infoconstant_poolconstant_pool_count-1u2access_flags1u2this_class1u2super_class1u2int
Adonis_D_Gogh
·
2018-03-20 15:19
JAVA
JVM
JVM学习
笔记——JVM启动流程和基本结构
JVM启动流程JVM基本结构详细介绍内存空间作用Java堆(Heap)对于大多数应用来说,Java堆(JavaHeap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC堆”。如果从内存回收的角度看,由于现在
蒙蒙的林先生
·
2018-03-19 11:40
JVM学习笔记
JVM学习
笔记——JAVA垃圾回收机制
垃圾回收机制的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。垃圾回收机制中的算法Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但
蒙蒙的林先生
·
2018-03-15 17:06
JVM学习笔记
JVM学习
一、
JVM学习
笔记JVM:JavaVirtualMachineJVM总感觉那么的神秘,底层的东西,试着把一些复杂的概念,用简单的方式做一个总觉。那么学习JVM主要是学习哪些内容。1.运行时数据区。
黎明你好
·
2018-03-13 15:26
JVM学习
笔记3——JVM 内存结构
JVM内存结构JVM内存结构布局JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块,由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、FromSurvivor空间、ToSurvivor空间,默认情况下年轻代按照8:1:1的比例来分配;方法区存储类信息、常量、静态变量等数据,是线程共享的区域,为与Java堆区分,方法区还有一个别名Non-Heap(非堆);栈又分
BugWriter
·
2018-03-07 16:57
JVM
JVM学习
笔记2——类加载机制
类加载机制虚拟机如何加载class文件,class文件中的信息进入到虚拟机中会发生什么变化?类加载机制类的加载指的是JVM把描述类的二进制数据从.class文件中加载到内存中,将其放在运行时数据区的方法区内,并对其进行校验、转换解析和初始化,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在
BugWriter
·
2018-03-04 21:47
JVM
JVM学习
笔记1——概述
JVM学习
笔记概述为什么要学习JVM理解原理方便调优什么是JVMJVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
BugWriter
·
2018-03-03 17:14
JVM
JVM学习
——内存分配
在说明JVM内存分配之前,先说明java程序运行的过程,首先.java文件被java编译器编译成.class字节码文件,然后通过JVM中的ClassLoader类加载器,将字节码文件加载进内存,加载完毕后,由JVM的执行引擎执行,在执行过程中,JVM会使用一些空间来保存执行过程所用到的数据和信息,这段空间一般被称为RuntimeDataArea(运行时数据区),也就是我们常说的JVM内存。在Jav
tigerJGG
·
2018-02-23 23:33
计算机
JVM学习
篇 | (四) 利用MAT排查堆溢出
JVM学习
篇|(四)利用MAT排查堆溢出堆已经讲得差不多啦,这章我们以一个例子来说说如何设置以及当发生堆溢出的时候怎么排查问题。
Coder编程
·
2018-02-01 17:47
Java开发
学习系列
#
JVM学习篇
JVM学习
篇 | (三) JVM内存分配与回收策略
JVM学习
篇|(三)JVM内存分配与回收策略各位小伙伴大家好,还记得上一博文《
JVM学习
篇|(二)初识JAVA堆》我们讲了什么吗?虚拟机中的堆,他是整个内存模型中占用最大的一部分,而且不是连续的。
Coder编程
·
2018-02-01 16:53
Java开发
学习系列
#
JVM学习篇
JVM学习
总结
阅读更多JVM作为java的重要组成部分,在java语言发布初期就跟随着一起发布了,JVM从最初的sun公司的ClassicVM,到现在常用的HotSpotVM,J9等VM,因为大部分常用的JVM都是HotSpotVM,所以在这里主要都是说的该VM。JVM在发展初期就规划了JVM不仅仅只是支持java语言,而且还要支持其他语言在JVM上的运行,到现在为止这个规划已经实现了,可以在JVM上运行的语言
357029540
·
2018-01-29 17:00
java
jvm
JVM学习
总结
阅读更多JVM作为java的重要组成部分,在java语言发布初期就跟随着一起发布了,JVM从最初的sun公司的ClassicVM,到现在常用的HotSpotVM,J9等VM,因为大部分常用的JVM都是HotSpotVM,所以在这里主要都是说的该VM。JVM在发展初期就规划了JVM不仅仅只是支持java语言,而且还要支持其他语言在JVM上的运行,到现在为止这个规划已经实现了,可以在JVM上运行的语言
357029540
·
2018-01-29 17:00
java
jvm
JVM学习
笔记(二)——虚拟机类加载机制
类加载的时机类加载的生命周期:加载验证、准备、解析(统称为连接),其中解析过程不像其他过程那样按部就班,它可以在初始化阶段之后再开始,也就是动态分派的基础,动态绑定。初始化使用卸载什么时候开始类加载,共只有五种情况遇到new,getstatic,putstatic,invokestatic四条字节码指令时。从字面意义上我们就很好理解:(1)new代表最普遍的new一个对象实例的时候。(2)get/
a2370889_com
·
2018-01-06 15:13
JVM
JVM学习
整理
学习JVM可以从底层了解到Java语言是如何工作的,知道java能干什么不能干什么,如何才能写出更好的代码,如何提高效率。本系列文章为《深入理解Java虚拟机》笔记,以备以后深入学习。一、JVM之内存模型二、JVM之GC三、JVM之类文件四、JVM之类加载五、JVM之字节码执行引擎六、JVM之编译于代码优化七、JVM之并发1.JVM简介JVM是JavaVirtualMachine(Java虚拟机)
CY_Frank
·
2017-12-03 23:48
jvm 学习
jvm学习
以前看过,基本做过一点实践,不过,还是老问题,一直不会对这类问题进行记忆.某些时候.有些头疼,所以.还是总结一下.对新手.还是没什么用.好像我写的.都是没什么用的.干脆叫没什么用处系列好了….
dreamCrie
·
2017-11-29 16:34
没什么用系列
JVM学习
(一)——JAVA与JVM
JVM学习
(一)——JAVA与JVM关于JVM的学习,一直拖拖拉拉,拖了好久,连一些基本的理念都不清楚,身为一个JAVA开发这真的很不应该。
Keozzz
·
2017-11-25 13:33
JVM
jvm学习
记录--10 虚拟机类加载机制
类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑
jiuxiao199132
·
2017-11-21 17:44
java虚拟机
JVM学习
笔记(二)——对象之生
1.对象的创建1.1当虚拟机遇到一条new指令时a.判断该指令参数能否在常量池定位到一个类的符号引用;b.符号引用代表的类是否已被加载解析和初始化过。如果没有则执行类加载。c.内存分配,对象所需的内存在类加载后就完全确定进行内存分配;指针碰撞:java堆内存完全规整。java堆为一块内存,中间一个指针作为分界点指示器,分配内存时将指针向空闲的内存那边挪动一段与对象大小相等的距离。空闲列表:java
virgosnails
·
2017-11-19 16:45
jvm
对象
内存分配
JVM
jvm学习
记录--09 Class文件结构
不仅跨平台,还能跨语言Java能够跨平台在window,linux,mac等不同平台的操作系统上运行是因为Java虚拟机的存在,Javac把Java代码编译成class文件,Java虚拟机执行class文件,由于Java虚拟机在多个不同操作系统平台都有实现。所有Java语音才能跨平台执行。但时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上运行的语言,如Clojur
jiuxiao199132
·
2017-11-16 11:21
java虚拟机
JVM学习
笔记(五)——垃圾收集器
虚拟机之Server/ClientServer1.启动时较慢。因为此模式下会收集较多的系统性能信息,使用更加复杂的优化算法对程序进行优化;2.程序启动并进入运行稳定期后,执行速度显著提高;3.适用于后台长期运行的程序。Client1.启动时较快。因为此模式下只会收集较少的系统性能信息;2.适用于桌面应用程序。Serial收集器(新生代)1.单线程收集器,工作时停止其他线程(StopTheWorld
virgosnails
·
2017-11-16 11:38
JVM
JVM学习
笔记(三)—— 对象之死
1.浅谈引用引用分为四种:强引用,软引用,弱引用,虚引用。这四种引用强度依次减弱。强引用:类似于“Objectobj=newObject()”这类引用,只要强引用还存在,引用的对象就永远不会被回收。软引用:描述一些还有用但并非必需的对象。在将要发生内存溢出异常之前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足够的内存,才会抛出内存溢出异常。弱引用:描述非必需对象,强度比软引用更
virgosnails
·
2017-11-15 17:09
JVM
jvm学习
记录--08 性能监控Java工具篇
前言在jdk中提供了一些工具帮助开发人员解决一些问题。上一篇中提到的jps,jstack就是出自jdk。jdk/bin目录下提供了很多exe文件其实都是jar文件的包装,真正的实现在jdk/lib/tools.jar中jps–查看Java进程jps命令可以查看所有的Java进程jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path。[no1@l
jiuxiao199132
·
2017-11-14 16:17
java虚拟机
jvm学习
记录--07 性能监控操作系统篇
linux系统监控工具top命令top命令可以从宏观上观察操作系统的cpu,内存使用情况,以及每个进程的使用cpu情况,内存情况。参数说明-b:批处理-c:显示完整的命令-I:忽略失效过程-s:保密模式-S:累积模式-i:设置间隔时间-u:指定用户名-p:指定进程-n:循环显示的次数top命令的输出可以分为两个部分:前半部分是系统统计信息,后半部分是进程信息。统计信息第1行是任务队列信息,它的结果
jiuxiao199132
·
2017-11-13 11:15
java虚拟机
JVM学习
----查看堆栈信息
JPS查看当前运行java进程JVMProcessStatusTool,显示指定系统内所有的HotSpot虚拟机进程。jps-lvm用于查看当前机器上运行的java进程。命令格式jps[options][hostid]注:如果不指定hostid就默认为当前主机或服务器。命令行参数选项说明如下:-q不输出类名、Jar名和传入main方法的参数-m输出传入main方法的参数-l输出main类或Jar的
eos2009
·
2017-11-13 00:00
JVM学习
jvm学习
记录--05 垃圾收集器分类
前言垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法等)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别,本文主要介绍HotSpot虚拟机中的垃圾收集器。不同的垃圾收集器有不同的特性,适用于不同的场景。没有最好的收集器,更没有万能的收集;选择的只能是适合具体应用场景的收集器。垃圾收集器的组合图中展示了7种不同分代的收集器:Serial、ParNew、Par
jiuxiao199132
·
2017-11-10 10:47
jvm
java虚拟机
jvm学习
笔记
java内存分为:方法区,堆,本地方法栈,虚拟机栈,程序计数器虚拟机栈中的局部变量表存储的都是基本类型还有对象的应用,局部变量表在编译结束后就确定大小了。本地方法栈中的语言,使用方式和数据结构没有明确规定。其他和虚拟机栈并无二致java堆,分代收集。方法区,存储已被虚拟机加载的类信息,常量,静态变量。运行时常量池是方法区一部分,Class文件中有一项信息是常量池存放各种字面量和符号的引用,这部分将
csdn_liugd
·
2017-11-04 14:36
jvm学习
jvm学习
笔记
java内存分为:方法区,堆,本地方法栈,虚拟机栈,程序计数器虚拟机栈中的局部变量表存储的都是基本类型还有对象的应用,局部变量表在编译结束后就确定大小了。本地方法栈中的语言,使用方式和数据结构没有明确规定。其他和虚拟机栈并无二致java堆,分代收集。方法区,存储已被虚拟机加载的类信息,常量,静态变量。运行时常量池是方法区一部分,Class文件中有一项信息是常量池存放各种字面量和符号的引用,这部分将
csdn_liugd
·
2017-11-04 14:36
jvm学习
JVM学习
笔记- 3 垃圾收集器与内存分配策略
JVM学习
笔记-3垃圾收集器与内存分配策略1对象存活判定算法在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”
刘越洋子
·
2017-11-02 11:37
JVM虚拟机
JVM学习
笔记(2)------JVM的内存结构
JVM内存结构方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。Java堆(Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。方法区(MethodArea)方法区(MethodArea)与Java堆一样,是各个线
IsWuqiongqiong
·
2017-10-14 19:22
jvm
JVM学习
笔记(1)----Java类的加载机制
什么是类的加载?类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类的生命周期?类的生命周期包括这几个部分,加载、连接、
IsWuqiongqiong
·
2017-10-14 16:57
jvm
JVM学习
笔记一 之 GC
一、GC分类串行、并行、并发二、判断对象是否存活一般有两种方式:引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。可达性分析(ReachabilityAnalysis):从GCRoots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GCRoots没有任何引用链相连时,则证明此对象是不可用的。不可
一洛
·
2017-09-27 14:11
JAVA
JVM
JVM学习
笔记一 之 内存结构
jvm内存结构:堆、方法区、Java栈(虚拟机栈)、本地栈、PC寄存器堆:线程共享。存放对象实例(new、数组)。堆耗尽的时候,JVM会抛出java.lang.OutOfMemoryError异常。堆的大小可以通过JVM选项-Xms和-Xmx来进行调整。分为:新生代、老年代、持久代.注意:持久代-JDK1.8将换成元空间新生代:Eden区、fromSurvivor区、toSurvivor区Eden
一洛
·
2017-09-27 13:49
JVM
JVM学习
笔记- 5 类加载机制
JVM学习
笔记-5类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。
刘越洋子
·
2017-09-25 21:24
JVM虚拟机
JVM学习
笔记-1 运行时内存区域
JVM运行时,首先需要类加载器(ClassLoader)加载所需类的字节码,加载完毕交由执行引擎执行,执行过程中需要一段空间来存储数据(类比CPU与主存)。这段内存空间的分配和释放过程正是我们所关心的,称为运行时数据区。JVM运行时内存区域主要分为程序计数器,虚拟机栈,本地方法栈,虚拟机堆,方法区五个主要区域。(Java内存模型和JVM内存区域是两个概念不要混淆)1.程序计数器程序计数器(Prog
刘越洋子
·
2017-09-22 22:35
JVM虚拟机
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他