深入拆解Java虚拟机视频教程】的更多相关文章

目录: 第1节说在前面的话   00:05:07分钟   | 第3节环境搭建以及jdk,jre,jvm的关系   00:20:48分钟   | 第5节jvm再体验-jvm可视化监控工具   00:21:17分钟   | 第7节Java的发展历史00:27:24分钟   | 第9节Java技术体系00:08:46分钟   | 第11节lanmbda表达式简介00:07:02分钟   | 第13节Java虚拟机-ExactVM00:03:35分钟   | 第15节Java虚拟机-kvm00:03:0…
为什么要学习java虚拟机 1.学习java虚拟机的本质,是了解java程序是如何被执行且优化的.这样一来,才可以从内部入手,达到高效编程的目的.与此同时,你也可以为学习更深层级.更为核心的java技术打好基础. 2.学习java虚拟机的好处 (一)可以针对自己的应用,最优化匹配运行参数. (二)可以更好地规避虚拟机在使用中的bug,也可以更快地识别出java虚拟机中的错误. (三)学习最前沿.最成熟的垃圾回收算法实现以及及时编译器的实现,对以后学习其他的代码托管技术很有帮助. (四)虚拟机也可…
java虚拟机中类的加载 (JVM的大致结构图) 从发class文件到内存中的类,按先后顺序,需要经过加载,链接以及初始化三大步骤. java语言的类型可分为两大类:基本类型(primitive type)和引用类型(references type) 基本类型:是由java虚拟机预先定义好的. 引用类型:Java将其细分为四种,类.接口.数组类和泛型参数. 由于泛型参数会在编译过程中被擦除(泛型类型在逻辑上可以看成是多个不同的类型,实际上都是相同的基本类型.),因此Java虚拟机实际上只有前三种…
java 中的 synchronized 运行 在 Java 中,我们经常用 synchronized 关键字对程序进行加锁.无论是一个代码块还是静态方法或者实例方法,都可以直接用 synchronized 声明. 当声明 synchronized 代码块时,编译的字节码将包含 monitorenter 和 monitorexit 指令.这两种指令均会消耗操作数栈上的一个引用类型的元素,作为所要加锁解锁的锁对象. public void foo(Object lock) { synchroniz…
Java 引用类型 Java 中的引用类型细分为四种:类,接口,数组类和泛型参数. 因为泛型参数会在编译过程中被擦除,所以 Java 虚拟机实际上只有前三种.数组类是由 Java 虚拟机直接生成的,其他两种则有对应的字节流. 无论是数组类还是其他两种类型,Java 虚拟机都需要对其进行链接和初始化. 加载 加载就是查找字节流,然后据此创建类的过程.数组类由 Java 虚拟机直接生成,其他类则需要 Java 虚拟机借助类加载器来完成查找字节流的过程. 类加载器有很多种,除了启动类加载器以外,其他的…
大家好,我是极客时间<深入拆解Java虚拟机>作者.Oracle Labs高级研究员郑雨迪.有幸借这个专题的机会,能和大家分享为何Java工程师要学Java虚拟机?如何掌握Java虚拟机? 工欲善其事,必先利其器 "为什么学Java虚拟机"这个问题,就和"为什么要学习数据结构和算法"是一个道理:工欲善其事,必先利其器. 我总结了三点必须要学好Java虚拟机的理由: Java已然是一门主流的工程语言,拥有大量的应用.作为Java语言的执行引擎,Java虚拟…
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的生命周期. 由此可见,一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期. 引用关系 加载器和Class对象: 在类加载器的内部实现中,用一个Java集合来存放所加载类的引用. 另一方面,一个Clas…
Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用. 自定义类加载器的例子 代码: package com.mengdd.classloader; import java.io.ByteArrayOutputStream; import…
Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap) 扩展类加载器(Extension) 系统类加载器(System) 2.用户自定义的类加载器: java.lang.ClassLoader的子类,用户可以定制类的加载方式. JVM自带的加载器 Java虚拟机自带了以下几种加载器. 1.根(Bootstrap)类加载器: 该加载器没有父加载器. 它…
Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始化: 2.在静态代码块中进行初始化. 没有经过显式初始化的静态变量将原有的值. 一个比较奇怪的例子: package com.mengdd.classloader; class Singleton { // private static Singleton mInstance = new Singl…