`
jiangwenfeng762
  • 浏览: 285975 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jvm连接模型

 
阅读更多

1 java虚拟机构成

类加载系统 执行引擎 运行时数据区

运行时数据区包括 堆、栈、方法区、本地方法区、pc寄存器。其中堆、方法区是多线程共享的,其它的是线程安全的。

2 java虚拟机链接模型

装载 连接 初始化

装载的产物:

一个堆上的class实例:是连接类实例与方法区数据结构的桥梁,通过class实例,类的实例能够知道类本身的详细构成信息

方法区上的一个数据结构:用来描述一个类的的构成信息。包括:

所有方法的描述(参数,返回类型等等);所有超类的描述(如果有的话);所有实现了的接口列表(如果有的话);所有属性的描述;类加载器的索引。

 

虚拟机中的类,全路径构成是:类加载器名称+类的全路径

类加载器分为
启动类加载器:java核心api
系统类加载器:classpath下寻址
用户自定义类加载器:

类加载器可以用来区分类,比如经常出现这种情况:在WEB-INF/lib下有两个jar包a.jar和b.jar,两个jar包中都包含com.baidu.test.A.class,加载后就不知道虚拟接加载的是哪个类,这说明tomcat设置者用同一个类加载器来管理WEB-INF/lib下的class

 

连接:

分为验证、准备和解析。连接后,常量池中符号引用已经被替换为直接引用,每个属性已经被分配了内存,整个类的信息已经被验证是合法的。

初始化:

只有类被主动使用时,才会触发初始化。主动使用的场景包括:

调用了类的main方法

通过反射构建了类的对象

调用了类的静态方法

访问了类的静态属性:如果直接访问父类的静态属性,那么只能导致父类被初始化,子类不会被初始化。

通过new关键字直接构建对象

还有一个忘了。

其它情况都是被动调用,不会触发类的初始化。

 

分享到:
评论

相关推荐

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第94节双亲委派模型00:17:03分钟 | 第95节运行时栈帧结构00:08:46分钟 | 第96节局部变量表00:20:48分钟 | 第97节操作数栈00:08:36分钟 | 第98节动态连接00:02:56分钟 | 第99节方法返回地址和附加信息00:03:24...

    深入理解JVM内存结构及运行原理全套视频加资料.txt

     第94讲 双亲委派模型 00:17:03  第95讲 运行时栈帧结构 00:08:46  第96讲 局部变量表 00:20:48  第97讲 操作数栈 00:08:36  第98讲 动态连接 00:02:56  第99讲 方法返回地址和附加信息 00:03:24  第...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 112 5.2.5 服务器JVM进程崩溃 / 113 5.3 实战:Eclipse运行速度调优 / 114 5.3.1 调优前的程序运行状态 / 114 5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117 5.3.3 编译时间和类加载时间的优化 / 122 5.3.4 ...

    Java类加载原理解析

    Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性...

    《深入JAVA虚拟机》

    JAVA虚拟机是JAVA开发中的重要一环,学好JAVA当然要学好JAVA虚拟机。...这包括Java虚拟机的栈、堆、方法区、执行引以及垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等。

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中等6章和附录a-c完全可以作为class文件和指令含集的参考手册。本书还附带...

    节点:GraphQL JVM客户端-Java,Kotlin,Scala等

    使该库适合希望以熟悉的方式与GraphQL服务连接的任何JVM应用程序-每个人都可以使用的简单,灵活,兼容,可采用,可理解的库! 旨在以与其他流行的API接口类似的方式使用Nodes库,以便无论与REST,SOAP,GraphQL或...

    ThingModel:跨多个设备同步数据和模型

    您可以即时构建模型,连接的应用程序可以在执行过程中学习它。 如果您正在寻找有关模型的创新产品,您还应该看看或 。 该模型 轻网同步 基于 WebSocket 的客户端和服务器 使用 Protocol Buffers 进行轻序列化 Diff...

    leetcode题库-Blog:Fashion'sBlog个人学习笔记,涵盖JVM、数据结构、算法、设计模式、中间件、数据库、缓存、分布式微服

    全手写基于Netty的RPC框架自定义协议,连接池 全手写基于Netty的RPC框架 协议编解码问题 粘包拆包与内核关系 ... Elasticsearch 分布式架构原理 写入数据的原理 查询效率优化 Spring Boot Spring Cloud 概述 独立...

    深入理解ClassLoader工作机制.docx

    JVM内存模型,类加载模式工作机制详细,内存屏障,类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三...

    涵盖了90%以上的面试题

    Java的内存模型(JVM的内存划分) JVM内存模型1.7和1.8的区别 如何判断一个对象是否是垃圾对象 垃圾回收算法 Minor GC和Full GC 垃圾收集器 集合的继承体系 Collection 和 Collections的区别。 如何通过jdbc访问...

    深入java虚拟机中文第2版

    第5-20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A-C安全可以作为class文件和指令集的参考手册。 前言 第1章 ...

    Java 并发编程原理与实战视频

    第15节synchronized保证线程安全的原理(jvm层面)00:25:03分钟 | 第16节单例问题与线程安全性深入解析00:27:15分钟 | 第17节理解自旋锁,死锁与重入锁00:24:58分钟 | 第18节深入理解volatile原理与使用00:28:30...

    深入Java虚拟机(原书第2版)及书中源代码

    第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12章 整数运算 第13章 逻辑运算 第14章 浮点运算 第15章 对象和数组 第16章 控制流 第17章 异常 第18章 finally子句 第19章 方法的调用与...

    Socket.txt

    我们使用的编程模型是一个文件的模型;事实上,网络连接(一个“套接字”)已被封装到系统对象里,所以可象对其他数据流那样采用同样的方法调用。除此以外,在我们处理另一个连网问题——同时控制多个网络连接——的...

    j2me复习要点,十分详细

    这种模块化和可伸缩性是通过一个分层软件模型来实现的,这个分层软件模型是构建于设备本地操作系统之上。(结构为:厂商可选择包,简表,配置(JVM,类库),本地操作系统)。 2.CDC(连接设备配置): CDC为消费电子...

    深入Java虚拟机(原书第二版清晰版)

    第5-20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A-C安全可以作为class文件和指令集的参考手册。本书还附带光盘...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【JVM】jvm内存模型 45 主内存与工作内存 45 内存间交互操作 46 重排序 48 【JVM】内存泄漏 49 【JVM】java虚拟机的区域如何划分,每一个区的动能? 49 程序计数器(Program Counter Register) 49 java虚拟机栈 50 ...

    【BD高清版】深入Java虚拟机.7z

    第5-20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A-C安全可以作为class文件和指令集的参考手册。本书还附带光盘...

Global site tag (gtag.js) - Google Analytics