Java虚拟机JVM学习02 类的加载概述

类的加载

类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。

加载.class文件的方式:

1.从本地系统中直接加载

2.通过网络下载.class文件

3.从zip,jar等归档文件中加载.class文件

4.从专有数据库中提取.class文件

5.将Java源文件动态编译为.class文件

类的加载的最终产品是位于堆区中的Class对象。

Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。

类加载器

加载器有两种类型:

1.Java虚拟器自带的加载器

根类加载器(Bootstrap)

扩展类加载器(Extension)

系统类加载器或称应用加载器(System)

后两种加载器是Java实现的,根类加载器是C++写的,程序员无法在Java代码中获得该类。

2.用户自定义的类加载器

java.lang.ClassLoader的子类

用户可以定制类的加载方式

类加载器并不需要等到某个类被首次主动使用时再加载它。

JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError)。如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。

参考资料

圣思园张龙老师Java SE系列视频教程。

Java虚拟机JVM学习07 类的卸载机制

Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...

Java虚拟机JVM学习04 类的初始化

Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

jvm学习:类的加载、连接、初始化、常量

类在jvm中有这几个过程类的加载.连接.初始化.使用.卸载 类的加载 类的加载是将class文件中的二进制数据加载到内存中,将其放在运行时的数据区:方法区内,然后在内存中创建一个 java.lang. ...

Java虚拟机JVM学习01 流程概述

Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

Java虚拟机JVM学习05 类加载器的父委托机制

Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

Java虚拟机JVM学习03 连接过程:验证、准备、解析

Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类 ...

jvm系列 (五) ---类的加载机制

类的加载机制 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 jvm系列(三):锁的优化 jvm系列 (四) ---强.软.弱.虚引用 我的博客目录 什么是类 ...

Java温故而知新(10)类的加载机制

类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行. 研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性 ...

随机推荐

iOS技术博客(文摘)链接地址

objc系列译文(5.1):认识 TextKit 手把手教你配置苹果APNS推送服务 如何使用iOS Addressbook UIApplication深入研究 GCD倒计时 那些不能错过的Xco ...

[No000056]你无法真正占有一个人,包括你的爱人,先生或太太、小孩,以及你自己....

从一出生,我们的双手就握的紧紧的,好像深知自己会失去什么 很多人迷信多子多孙才是福,老来才有依靠,但太多新闻告诉我们,很多人老了,子孙为了分家产,反而让他生不如死,死了还无法入土为安. 现实也告诉我们 ...

流媒体基础实践之——RTMP直播推流

一.RTMP推流:用户可将RTMP视频流推送到阿麦提供的打流地址.地址格式类似于: rtmp://livepush.myqcloud.com/live 现在可以支持哪些直播源?和那些直播软件?推流参数 ...

实体框架 (EF) 入门 => 六、性能注意事项

这个还真是复杂,看了看微软的文档,有些根本就看不懂,有些能看懂,但对我这种菜鸟也不会去用. 无从下手啊,前面放了几个链接,挨个试试吧. 一.显式打开连接 这个我测试过,有些时候,需要我们显示打开连接, ...

JDBC学习笔记(7)——事务的隔离级别&批量处理

数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 ...

【转】Spring+Hibernate+EHcache配置(一)

大量数据流动是web应用性能问题常见的原因,而缓存被广泛的用于优化数据库应用.cache被设计为通过保存从数据库里load的数据来减少应用和数据库之间的数据流动.数据库访问只有当检索的数据不在cach ...

ios中的界面跳转方式

ios中,两种界面跳转方式 1.NavgationController本身可以作为普通ViewController的容器,它有装Controller的栈,所以可以push和pop它们,实现你所说的跳转 ...

python对象(腌制)

python的内置对象类型主要有数字,字符串,列表,元祖,字典,集合等等,在python中,一切皆为对象 #腌制在python中如果我们有一些对象需要持久性存储,并且不丢失我们这个对象的类型与数据,我 ...

Angular4--提速--提升Angular项目的首页打开速度(包含微信登录优化)

Angular项目的首页打开速度很慢,有时候会有几秒的加载时间.如果在手机端访问的话,怕是要等待十多秒,这对用户体验很差.下面参考http://www.cnblogs.com/feiyu159/p/8 ...

html布局(盒子)

在body里面放置两个盒子,里面盒子设置margin-top,外层盒子生效?在里面盒子上面加一个块元素,设置高度 表单 form action="地址" method=" ...

java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述相关推荐

  1. java虚拟机加载类_java虚拟机之类加载机制(一)

    一.首先先说一下java虚拟机的生命周期: 1.执行了system.exit(): 2.程序正常执行结束: 3.程序在执行过程中遇到了异常或错误而终止: 4.由于操作系统出现错误而导致java虚拟机进 ...

  2. java 虚拟机内存类_java 虚拟机类加载 及内存结构

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World &q ...

  3. java 的方法是静态的类_Java中单例模式和静态方法类的区别

    最近翻看了一些资料,发现JAVA的单例模式并不简单:PHP并没有线程安全的问题,一个请求在结束后生命周期就结束了,PHP设计单例模式仅仅是为了如果在同一个页面多次处理,可以不用重复创建对象而已:JAV ...

  4. java json 工具类_Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java ...

  5. java异常类_java中常见的异常类

    展开全部 从异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException.RunntimeException 是较常用的两种. 习惯上将 Error 与 Excep ...

  6. java正则表达式类_java中正则表达式之Pattern类与Matcher类

    java中正则表达式之Pattern类与Matcher类 ======================================================================= ...

  7. java封装对象实体类_Java 接口自动化系列--实体类之entity封装

    实体包entity下面有4个类,主要存放java对象,每个类必须有私有属性,空参构造,get set方法 具体excel中数据信息见---工具类excel文章 1.API类 解析excel中接口信息的 ...

  8. java.lang中所有的类_java.lang中的数学类

    Math 类 Java 中,讲 Math 类定义为 final 类,不能再派生子类. Math 类中定义的常量和方法都用 static 修饰符来修饰,因此不必创建 Math 类的实例,可以通过类名直接 ...

  9. java多态可以传匿名对象吗_Java复习笔记2--匿名类和多态

    匿名类 Anonymous classes enable you to make your code more concise. They enable you to declare and inst ...

最新文章

  1. 2022-2028年中国特高压电网行业深度调研及投资前景预测报告
  2. Learning Perl学习笔记(1)第二章Scalar Data
  3. 计算机配置中无可移动设备访问,USB连接正常,但是我的电脑中不显示可移动 – 手机爱问...
  4. BTC:简单易懂比特币之比特币的神奇——区块链技术的体现
  5. 工信部制定VR行业标准-谋定研究:对话中国经济和信息化
  6. [渝粤教育] 中国地质大学 事故应急救援 复习题
  7. 排序算法Java代码实现(二)—— 冒泡排序
  8. java8的路径_什么是路径?
  9. python db文件_python中查看.db文件中表格的名字及表格中的字段操作
  10. kvmweb管理工具_KVM web管理工具——WebVirtMgr(一)
  11. java字符串的方法 1118
  12. 画质与性能双重加持,Unity超越游戏的“炫技”
  13. 简单web服务器的实现(C++)
  14. 反向题在测试问卷信效度_运动员积极心理品质结构模型与问卷信效度
  15. STM32超低功耗入门之睡眠模式
  16. 04-HTML标签:排版标签
  17. Python并行处理
  18. 统计软件是其他计算机软件吗,电脑统计软件,statistical computing software,音标,读音,翻译,英文例句,英语词典...
  19. Unreal Engine 4 渲染目标(Render Target)教程 之 实现雪地足迹(上)
  20. 目前主流手机操作系统介绍-手机平台

热门文章

  1. 计算机一级考试全部内容讲解,全国计算机等级考试一级教程讲解.doc
  2. 电机驱动芯片——TLE9183QK
  3. MBA/MEM 复试准备(03)面试礼仪
  4. 静电放电防护设计规范和指南
  5. 骁龙820 html5 dom,苹果iPhone 7 A10处理器探秘:这项性能 11倍于骁龙820!
  6. MySQL 数据类型(摘自菜鸟教程)
  7. 用dos命令行执行java程序的方法
  8. 赌徒谬误论,投掷硬币,连续5次都是正面朝上,第6次正面反面的概率?
  9. 强化学习PPO代码讲解
  10. CSS3制作摇晃的吊灯