每天进步一点点! 上一篇写的数据类型的范围,相信大家还记得吧,每一种类型对应不同的数据范围和精度。 有的时候,我们需要对数据类型进行转换,既涉及到从范围较小的数据类型向范围较大的数据类型来转换,也涉及到从范围较大的数据类…
标签:java虚拟机
深入理解JAVA虚拟机学习笔记13——字节码指令4(其他指令)
每天进步一点点! 指令这块的相关信息我们在前几篇的文章中已经有了基本了解,这一篇不过多解释了,将剩下的指令列出来,作为记录(节选自《深入理解JAVA虚拟机》)。 1、对象创建与访问指令 JVM对类实例和数组创建和操作使…
深入理解JAVA虚拟机学习笔记14——类加载的准备和解析
每天进步一点点! 今天我们一起看一下类加载的准备阶段和解析阶段。 先看一下准备阶段:主要任务是在方法区中为类变量(仅static修饰变量,不包含实例变量)分配内存并设置类变量初始化的阶段。 这里面的区别,我们通过下面的代…
深入理解JAVA虚拟机学习笔记15——字节码执行引擎(方法调用)
每天进步一点点! 这里说的方法调用阶段的任务并不是执行过程,而是确定方法运行时的入口地址。 前面我们已经学习过,在Class文件的常量池中,类型为CONSTANT_Methodref_info的,存储的就是方法信息,并最…
深入理解JAVA虚拟机学习笔记16——Javac编译器
由于笔者最近几天小病了一场,几天没有更新了,对朋友们说一声抱歉,同时也提醒亲爱的朋友们,身体是革命的本钱,一点也不假啊! 不过笔者现在好了,还能大跳了!还是那句话,每天天进步一点点! 在上一篇中,我们讨论编译执行和解释执…
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》学习笔记
2.2 运行时数据区
深入理解java虚拟机—编译
java的编译器有三种,有前端编译器:就是前期将java文件编译成class文件的过程;还有后端编译器:就是在运行时期将字节码转变为机器码的过程;还有可能是静态提前编译器:直接把java文件编译成本地机器代码。 前端编译…
深入java虚拟机(二)——类的生命周期(上)类的加载和连接
类加载器,顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Ja…
深入java虚拟机(五)——java本地接口JNI详解 .
对于java程序员来说,java语言的好处和优点,我想不用我说了,大家自然会说出很多一套套的。但虽然我们作为java程序员,但我们不得不承认java语言也有一些它本身的缺点。比如在性能、和底层打交道方面都有它的缺点。所以…
《深入理解java虚拟机》学习阶段总结(一)
第一章 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 如果线程正在执行的是一个Java方法,这个计数器记录的是正在…
《深入理解Java虚拟机》读书笔记——内存分配与回收策略
概述 JVM采用分代的垃圾回收策略:不同对象的生命周期是不一样的。目前JVM分代主要是分三个年代: 新生代:所有新创建的对象都首先在新生代进行内存分配。新生代具体又分为3个区,一个Eden区、一个From Survivo…
深入拆解java虚拟机-笔记整理
java代码为何在虚拟机中运行及如何运行 1. 为何在虚拟机中运行 1-1.提供了可移植性; 1-2.java代码被编译成java字节码后,可以在不同平台上的java虚拟机上运行; 1-3.提供了一个代码托管的环境,代替…