jvm简单笔记(3)

1、jvm,java virtual Machine其实就是虚拟在计算机上的一个计算机,但是他和vmware又不一样,后者是能看到的,而jvm 是看不到的,他是在内存中。

2、jvm有个部分叫做class loader,把类加载到虚拟机中执行就靠他。其实对class文件的格式jvm是有判断的。但是判断的工作并不是这个class loader,而是jvm的另一部分解释器 execution engine。

3、jvm有个部分叫做栈,遵循先进后出的原则,保存的是基本数据类型,他的工作模式可以这里来理解,比如最开始调用方法A,A就被压缩在栈的底部,但是A方法又调用了B方法,再执行到B方法的时候B方法又被压缩进了栈内在栈顶,所以B是后进但是会等B方法执行完成后跳出栈,先出来,出来后继续轮到A方法执行完,之后A执行完就线程结束栈也释放。

4、jvm有一个部分叫堆,堆内存分为三个部分,第一个是永久存储区其实就是上次说的持久代,新生区就是上次说的年轻代,养老区其实就是上次说的年老区。新生区又分伊甸区Eden Space和幸存者区 survivor Space,对象都是在伊甸区这里创建的,这个区满了就会放到幸存者0区,0区满了就会放到幸存者1区,1区还满了的话就会被放到年老区就是养老区,垃圾回收也是这样的流程。

5、持久区也叫永久存储区,他存放的东西就是像java class,还有类变量就是静态变量,不是静态变量的叫做实例变量。

时间: 2024-10-08 10:44:28

jvm简单笔记(3)的相关文章

java之jvm学习笔记十三(jvm基本结构)

java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信.当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多.在你看完本节之后,后续我们还会来学jvm的细节,但是如果你在学习完本节的前提下去学习,再学习其他jvm的细节会事半功倍. 为了让你每一个知识点都有迹

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

JVM学习笔记(四)------内存调优【转】

转自:http://blog.csdn.net/cutesource/article/details/5907418 版权声明:本文为博主原创文章,未经博主允许不得转载. 首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM. 对JVM内存的系统级的调优主要的目的是减少GC的频率和Fu

applicationContext.xml简单笔记

applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://

JVM学习笔记(一)------基本结构

从Java平台的逻辑结构上来看,我们能够从下图来了解JVM: 从上图能清晰看到Java平台包括的各个逻辑模块,也能了解到JDK与JRE的差别 对于JVM自身的物理结构,我们能够从下图俯视一下: 对于JVM的学习,在我看来这么几个部分最重要: Java代码编译和运行的整个过程 JVM内存管理及垃圾回收机制 以下将这两个部分进行具体学习 JVM学习笔记(一)------基本结构,布布扣,bubuko.com

mybatis-config.xml简单笔记

mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <

jQuery的简单笔记

html css javaScript Ajax jQuery Java servlet jsp jdbc mysql oracle struts spring hibernate jdpm tomcat jUnit Ant Hadoop linux unix android sql server jQuery的简单笔记//使用JQuery输出    /*     * jquery对象:需要用"$"来修饰     *      * jquery获取页面标签:$()来包裹,通过"

JVM 学习笔记

JVM  ----Java  Virtual Machine   (熟称:JAVA虚拟机),JVM 在执行JAVA程序的过程中将内容划分为若干个区域,其有各自的用途和管理机制.如下图: 1.  程序计算器(Program Counter Register)  --  是当前线程所执行字节码的行号指示器,通过改变其值来实现执行不同的代码指令.内存占用小,线程私有,支持多线程处理(多线程时,每个线程有一个独立程序计算器,已达到各自互不影响), 也正是由于这些特点,该区域是JVM规范中唯一没有规定任何

Unity3d中SendMessage 用法简单笔记

Unity3d中SendMessage 用法简单笔记 Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自