java类的加载机制

概念

类的加载指:
1、将类的.class文件中的二进制数据读到内存中
2、放在运行时数据区的方法区中,然后在堆区创建.class的对象
3、对外提供访问方法区的数据结构的接口
4、JVM规范允许类加载器预加载该类,预加载的过程遇到class文件缺失或错误,类加载器必须在程序被首次调用时才报告错误

类的生命周期

加载 验证 准备 解析  初始化  使用  卸载
    其中解析阶段不一定是这个顺序,可以在初始化之后开始解析,主要为了支持java的运行时绑定(动态绑定)。

 1、加载:  
   通过类的全限定名来获取定义的二进制字节流
   将这个字节流所代表的静态存储结构转化为方法区运行时数据结构
   在java堆中生成一个代表这个类的对象,作为访问入口 
2、验证
    确保被加载类的正确性
3、准备
      对类变量分配内存 以及初始化默认值
      注:初始化值通常情况下 数据类型默认零值
      1、对于基本数据类型来说,类变量和全局变量如果不显式的对其赋值而直接使用,则系统会默认零值
      2、局部变量来说,使用前必须显示赋值,否则编译不通过
      3、static和final修饰的常量,必须声明时显式赋值,否则编译不通过。并且常量在准备阶段就会被初始化为指定值。
      4、final修饰的常量则可以在声明时显式赋值,也可以在类初始化时显式赋值。总之必须使用前显式赋值,否则系统不会为其赋予零值
4、解析:把类中的符号引用转换为直接引用
5、初始化
      1、为类的静态变量赋正确的初始值(声明类变量指定初始值,静态代码块指定初始值)
       2、初始化时机:只有当类主动使用时,才会导致类初始化。
            创建类的实例
            访问类的静态变量,调用类的静态方法 ,反射,初始化子类会先初始化父类,启动类
6、结束生命周期
       执行system.exit()方法,程序正常结束,出现异常导致结束,操作系统错误导致jvm进程终止。

类加载器

 启动类加载器  java.开头的类
 扩展类加载器  javax.开头的类
应用程序类加载器 负载加载用户类路径所指定的类。开发者可以直接使用该类加载器,没有指定则默认

jvm类加载机制

1、全盘负责 :当一个类加载器负责某个类时,他所依赖的类也由他负责加载
2、父类委托:先让父类加载器试图加载。
3、缓存机制:保证所有加载过的class都会被缓存。所以修改了class后,必须重启jvm,程序修改才会 生效

类的加载方式

 1、命令行启动应用jvm初始化
 2、class.forName()动态加载 ,还会对类进行解释,执行static块
 3、classLoader.loadClass() 动态加载,只会干一件事,将.class文件加载到jvm中。 只有newinstance才会执行static块

双亲委派模式

    如果一个类加载器收到类加载请求,会依次向上交给父加载器。因此所有的类加载请求都会最终传递到顶层的启动类加载器。
    意义:防止内存中出现多份同样的字节码,保证程序安全稳定运行
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • 德艺茶庄 “说好茶的故事” 一片细嫩的树叶,在一个春光明媚的日子里被摘下枝头,曝晒、匀摇、晾干、细炒......
    笑曰阅读 526评论 0 2
  • 一种希望我靠近又不强求我靠近甚至随便准备接受我远离的小心翼翼的眼神
    一块瘦司阅读 396评论 11 0
  • 小二:我想做剑客,想做大英雄。 老板娘:去做不就好了。 小二:我不行的。 老板娘:能做的…… 老板娘:如果不行,就...
    VincentChou阅读 718评论 0 1
  • 闭口是如何形成和处理 1、如果你的闭口集中长在发际线位置,而你平时又有化妆习惯,那90%就是你卸妆不干净导致的。(...
    Ms小王子嘿阅读 154评论 0 0