File tree Expand file tree Collapse file tree 5 files changed +85
-11
lines changed
Expand file tree Collapse file tree 5 files changed +85
-11
lines changed Original file line number Diff line number Diff line change @@ -301,7 +301,7 @@ new运算符,new创建对象实例(对象实例在堆内存中),对象
301301
302302**equals ()** : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:
303303- 情况1:类没有覆盖 equals () 方法。则通过 equals () 比较该类的两个对象时,等价于通过“==”比较这两个对象。
304- - 情况2:类覆盖了 equals () 方法。一般,我们都覆盖 equals () 方法来两个对象的内容相等 ;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
304+ - 情况2:类覆盖了 equals () 方法。一般,我们都覆盖 equals () 方法来比较两个对象的内容是否相等 ;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
305305
306306
307307**举个例子:**
Original file line number Diff line number Diff line change 1+ <!-- TOC -->
2+
3+ - [ 回顾一下类加载过程] ( #回顾一下类加载过程 )
4+ - [ 类加载器总结] ( #类加载器总结 )
5+ - [ 双亲委派模型] ( #双亲委派模型 )
6+ - [ 双亲委派模型介绍] ( #双亲委派模型介绍 )
7+ - [ 双亲委派模型实现源码分析] ( #双亲委派模型实现源码分析 )
8+ - [ 双亲委派模型的好处] ( #双亲委派模型的好处 )
9+ - [ 如果我们不想要双亲委派模型怎么办?] ( #如果我们不想要双亲委派模型怎么办 )
10+ - [ 自定义类加载器] ( #自定义类加载器 )
11+ - [ 推荐] ( #推荐 )
12+
13+ <!-- /TOC -->
14+
15+ > 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
16+
117## 回顾一下类加载过程
218
319类加载过程:** 加载->连接->初始化** 。连接过程又可分为三步:** 验证->准备->解析** 。
1228
1329JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自` java.lang.ClassLoader ` :
1430
15- 1 . ** BootstrapClassLoader(启动类加载器)** :最顶层的加载类,由C++实现,负责加载 ` %JAVA_HOME%/li ` 目录下的jar包和类或者或被 ` -Xbootclasspath ` 参数指定的路径中的所有类。
31+ 1 . ** BootstrapClassLoader(启动类加载器)** :最顶层的加载类,由C++实现,负责加载 ` %JAVA_HOME%/lib ` 目录下的jar包和类或者或被 ` -Xbootclasspath ` 参数指定的路径中的所有类。
16322 . ** ExtensionClassLoader(扩展类加载器)** :主要负责加载目录 ` %JRE_HOME%/lib/ext ` 目录下的jar包和类,或被 ` java.ext.dirs ` 系统变量所指定的路径下的jar包。
17333 . ** AppClassLoader(应用程序类加载器)** :面向我们用户的加载器,负责加载当前应用classpath下的所有jar包和类。
1834
@@ -112,3 +128,13 @@ protected Class<?> loadClass(String name, boolean resolve)
112128- < https://juejin.im/post/5c04892351882516e70dcc9b >
113129- < http://gityuan.com/2016/01/24/java-classloader/ >
114130
131+ ### 公众号
132+
133+ 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
134+
135+ ** 《Java面试突击》:** 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本[ 公众号] ( #公众号 ) 后台回复 ** "Java面试突击"** 即可免费领取!
136+
137+ ** Java工程师必备学习资源:** 一些Java工程师常用学习资源[ 公众号] ( #公众号 ) 后台回复关键字 ** “1”** 即可免费无套路获取。
138+
139+ ![ 我的公众号] ( https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334 )
140+
Original file line number Diff line number Diff line change 1- # 类加载过程
1+ <!-- TOC -->
22
3- Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
3+ - [ 类加载过程] ( #类加载过程 )
4+ - [ 加载] ( #加载 )
5+ - [ 验证] ( #验证 )
6+ - [ 准备] ( #准备 )
7+ - [ 解析] ( #解析 )
8+ - [ 初始化] ( #初始化 )
49
5- 系统加载 Class 类型的文件主要三步: ** 加载->连接->初始化 ** 。连接过程又可分为三步: ** 验证->准备->解析 ** 。
10+ <!-- /TOC -->
611
12+ > 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
713
14+ # 类加载过程
815
9- ![ 类加载过程 ] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png )
16+ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
1017
18+ 系统加载 Class 类型的文件主要三步:** 加载->连接->初始化** 。连接过程又可分为三步:** 验证->准备->解析** 。
1119
20+ ![ 类加载过程] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png )
1221
1322## 加载
1423
@@ -67,4 +76,14 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚
6776
6877- 《深入理解Java虚拟机》
6978- 《实战Java虚拟机》
70- - < https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html >
79+ - < https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html >
80+
81+ ### 公众号
82+
83+ 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
84+
85+ ** 《Java面试突击》:** 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本[ 公众号] ( #公众号 ) 后台回复 ** "Java面试突击"** 即可免费领取!
86+
87+ ** Java工程师必备学习资源:** 一些Java工程师常用学习资源[ 公众号] ( #公众号 ) 后台回复关键字 ** “1”** 即可免费无套路获取。
88+
89+ ![ 我的公众号] ( https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334 )
Original file line number Diff line number Diff line change 1+ <!-- TOC -->
2+
3+ - [ 类文件结构] ( #类文件结构 )
4+ - [ 一 概述] ( #一-概述 )
5+ - [ 二 Class 文件结构总结] ( #二-class-文件结构总结 )
6+ - [ 2.1 魔数] ( #21-魔数 )
7+ - [ 2.2 Class 文件版本] ( #22-class-文件版本 )
8+ - [ 2.3 常量池] ( #23-常量池 )
9+ - [ 2.4 访问标志] ( #24-访问标志 )
10+ - [ 2.5 当前类索引,父类索引与接口索引集合] ( #25-当前类索引父类索引与接口索引集合 )
11+ - [ 2.6 字段表集合] ( #26-字段表集合 )
12+ - [ 2.7 方法表集合] ( #27-方法表集合 )
13+ - [ 2.8 属性表集合] ( #28-属性表集合 )
14+ - [ 参考] ( #参考 )
15+
16+ <!-- /TOC -->
17+
18+ > 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
19+
120# 类文件结构
221
322## 一 概述
@@ -157,7 +176,7 @@ public class Employee {
157176
158177![ ] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/字段的access_flags的取值.png )
159178
160- ### 方法表集合
179+ ### 2.7 方法表集合
161180
162181``` java
163182 u2 methods_count;// Class 文件的方法的数量
@@ -178,7 +197,7 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
178197
179198注意:因为` volatile ` 修饰符和` transient ` 修饰符不可以修饰方法,所以方法表的访问标志中没有这两个对应的标志,但是增加了` synchronized ` 、` native ` 、` abstract ` 等关键字修饰方法,所以也就多了这些关键字对应的标志。
180199
181- ### 属性表集合
200+ ### 2.8 属性表集合
182201
183202``` java
184203 u2 attributes_count;// 此类的属性表中的属性数
@@ -192,4 +211,14 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
192211- < https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html >
193212- < https://coolshell.cn/articles/9229.html >
194213- < https://blog.csdn.net/luanlouis/article/details/39960815 >
195- - 《实战 Java 虚拟机》
214+ - 《实战 Java 虚拟机》
215+
216+ ### 公众号
217+
218+ 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
219+
220+ ** 《Java面试突击》:** 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本[ 公众号] ( #公众号 ) 后台回复 ** "Java面试突击"** 即可免费领取!
221+
222+ ** Java工程师必备学习资源:** 一些Java工程师常用学习资源[ 公众号] ( #公众号 ) 后台回复关键字 ** “1”** 即可免费无套路获取。
223+
224+ ![ 我的公众号] ( https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334 )
Original file line number Diff line number Diff line change 2121- [ 网易云课堂——58集精通java教程Spring框架开发] ( http://study.163.com/course/courseMain.htm?courseId=1004475015#/courseDetail?tab=1&35 )
2222- [ 慕课网相关视频] ( https://www.imooc.com/ )
2323
24- - ** 黑马视频和尚硅谷视频(非常推荐):** 微信公众号:“** JavaGui ** ”后台回复关键字 “** 1** ” 免费领取。
24+ - ** 黑马视频和尚硅谷视频(非常推荐):** 微信公众号:“** JavaGuide ** ”后台回复关键字 “** 1** ” 免费领取。
2525
2626
2727## 面试必备知识点
You can’t perform that action at this time.
0 commit comments