1.1 tomcat类加载机制 1.1.1 概览 Bootstrap | System | Common / \ Webapp1 Webapp2 ... 备注:这里的加载模型和jvm的三层classloader有区别。总体思想类似。 1.1.2 各层加载器 1.1.2.1 Bootstrap 此类加 ...
分类:
其他好文 时间:
2018-12-24 20:59:29
阅读次数:
144
在面向对象编程实践中,我们通过众多的类来组织一个复杂的系统,这些类之间相互关联、调用使他们的关系形成了一个复杂紧密的网络。当系统启动时,出于性能、资源利用多方面的考虑,我们不可能要求 JVM 一次性将全部的类都加载完成,而是只加载能够支持系统顺利启动和运行的类和资源即可。那么在系统运行过程中如果需要 ...
分类:
其他好文 时间:
2018-12-20 20:31:27
阅读次数:
196
title: 双亲委派模型 date: 2018 10 24 15:05:54 tags: categories: 双亲委派模型 本来应该是jvm类加载机制的内容,但这个太重要了,我就单独写了一篇。jvm虚拟机有一个重要的判断(之一)两个类是否相等的依据,就是是否是同一个类加载器加载的类,首先要保证 ...
分类:
其他好文 时间:
2018-12-19 17:54:24
阅读次数:
180
Tomcat类加载分为四部分(不是步骤):1.BootStrap 启动类加载2.System 系统类加载 CATALINA_HOME/conf3.Common 通用类加载 CATALINA_HOME/lib4.Webapp 应用类加载 WEB-INF/lib和WEB-INF/classes当Tomc ...
分类:
其他好文 时间:
2018-12-18 14:41:28
阅读次数:
233
一、基本类加载机制介绍 大体引用一下《深入理解Java虚拟机》一书中对类加载的定义:虚拟机将描述类的二进制字节流(即Class文件)加载到内存中,并对其进行验证、准备、解析、初始化,最终 生成可以直接被虚拟机使用的Java类型(即已经校验合格且有clinit执行完clinit方法的Class对象), ...
分类:
其他好文 时间:
2018-12-16 21:33:27
阅读次数:
126
1.访问类的编译期静态常量时,不会触发类的初始化行为。类的初始化行为是指在类被加载之后(也就是类的Class对象被创建之后),为类的静态成员变量分配存储空间。 2.编译期静态常量会在编译阶段被存储到NonInitialization类的常量池中,在以后对编译期静态常量的引用都实际上被替换为对NonI ...
分类:
其他好文 时间:
2018-12-07 20:55:57
阅读次数:
190
一 JVM和类: 运行Java: java 或空格带有main方法的类名 目的:启动JVM,并加载字节码. 当调用java命令来运行某个Java程序时,该命令将会启动一个JVM进程.同一个JVM中的所有线程,变量都处于同一个进程中,共享该JVM的内存区域. 当出现以下情况是,JVM会退出: 1):程 ...
分类:
编程语言 时间:
2018-12-06 00:09:49
阅读次数:
194
JAVA源码编译由三个过程组成: 1、源码编译机制。 2、类加载机制 3、类执行机制 我们这里主要介绍编译和类加载这两种机制。 一、源码编译 代码编译由JAVA源码编译器来完成。主要是将源码编译成字节码文件(class文件)。字节码文件格式主要分为两部分:常量池和方法字节码。 二、类加载 类的生命周 ...
分类:
编程语言 时间:
2018-11-26 15:05:12
阅读次数:
204
类加载机制主要分3块:类加载器(ClassLoader)、类加载过程和双亲委托(破坏双亲委托) 类加载器:是Java运行时环境(Java Runtime Environment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。jdk自带了三种类加载器,分别是引导类加载器(Bootstr ...
分类:
编程语言 时间:
2018-11-16 00:32:32
阅读次数:
251
简介 在java中,类的声明周期总共分为以下几种: 加载(Loading),验证(Verification),准备(Preparation),解析(Analysis), 初始化(Initialization),使用(Using),卸载(Unloading)。其中,验证,准备,解析统称为连接(Link ...
分类:
其他好文 时间:
2018-11-15 13:49:38
阅读次数:
189