准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这个阶段中有两个容易产生混淆的概念需要强调一下,首先,这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配在Java堆中。其次,这... ...
分类:
其他好文 时间:
2018-09-22 23:14:59
阅读次数:
202
** 分布式 1、分布式架构及CAP理论 2、zookeeper 3、RPC框架(如Dubbo、Spring Cloud) 4、消息队列(Kafka),各种消息队列的优劣 一、Java虚拟机 1、内存架构 2、类加载机制(特别的,双亲委派模式及其反例) 3、主存及线程工作内存(volatile的两方 ...
分类:
其他好文 时间:
2018-09-21 19:45:21
阅读次数:
205
1. tomcat类加载机制? 参考: http://www.cnblogs.com/xing901022/p/4574961.html https://blog.csdn.net/liweisnake/article/details/8470285 ...
分类:
编程语言 时间:
2018-09-16 12:32:47
阅读次数:
122
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类加载的规则: 全盘负责,当一个类加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使 ...
分类:
其他好文 时间:
2018-09-11 21:04:28
阅读次数:
173
ExtensionLoader加载机制阅读: Dubbo的类加载机制是模仿jdk的spi加载机制; Jdk的SPI扩展加载机制:约定是当服务的提供者每增加一个接口的实现类时,需要在jar包的META-INF/service/目录下同时创建一个以服务接口命名的具体实现类,该文件里面就是保存的实现该接口 ...
分类:
其他好文 时间:
2018-09-09 15:13:11
阅读次数:
176
类加载机制 类是在运行期间第一次使用时动态加载的,而不是编译时期一次性加载。因为如果在编译时期一次性加载,那么会占用很多的内存。 1.1 类的生命周期 包括以下 7 个阶段: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始 ...
分类:
编程语言 时间:
2018-09-09 11:37:36
阅读次数:
183
1.类的生命周期 2.初始化被触发的情况 初始化前自然要完成加载、验证、准备这三个动作。 3.类加载过程 类加载全过程分为:加载、验证、准备、解析、初始化这5个阶段所执行的具体操作。 所以不触发初始化就不会进行类加载,懒加载也由此而来。 如 类文件中有个 a.f() 加载时把a放入方法区的常量池中, ...
分类:
其他好文 时间:
2018-09-08 22:45:28
阅读次数:
205
1. 概述 一个.java文件编译为.class文件后才可以被加载到虚拟机中运行和使用. 虚拟机把描述类的.class文件加载到内存, 并对class文件进行验证、准备、解析和初始化后, 最终形成可以被虚拟机直接使用的Java类型, 这就是虚拟机的类加载机制. 2. 类加载的时机 类从加载到虚拟机内 ...
分类:
其他好文 时间:
2018-09-08 15:20:59
阅读次数:
165
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 Java类型的加载、连接和初始化过程都是在程序运行期间完成的。这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java语言的动态扩 ...
分类:
其他好文 时间:
2018-09-05 19:46:57
阅读次数:
161
一、类的加载过程JVM将类的加载分为3个步骤: 1、装载(Load) 2、链接(Link) 3、初始化(Initialize) 其中 链接(Link)又分3个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据(查找和导入Class文件)加载是类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以 ...
分类:
编程语言 时间:
2018-09-03 02:35:47
阅读次数:
154