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创建对象实例(对象实例在堆内存中),对象
301
301
302
302
**equals ()** : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:
303
303
- 情况1:类没有覆盖 equals () 方法。则通过 equals () 比较该类的两个对象时,等价于通过“==”比较这两个对象。
304
- - 情况2:类覆盖了 equals () 方法。一般,我们都覆盖 equals () 方法来两个对象的内容相等 ;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
304
+ - 情况2:类覆盖了 equals () 方法。一般,我们都覆盖 equals () 方法来比较两个对象的内容是否相等 ;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
305
305
306
306
307
307
**举个例子:**
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
+
1
17
## 回顾一下类加载过程
2
18
3
19
类加载过程:** 加载->连接->初始化** 。连接过程又可分为三步:** 验证->准备->解析** 。
12
28
13
29
JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自` java.lang.ClassLoader ` :
14
30
15
- 1 . ** BootstrapClassLoader(启动类加载器)** :最顶层的加载类,由C++实现,负责加载 ` %JAVA_HOME%/li ` 目录下的jar包和类或者或被 ` -Xbootclasspath ` 参数指定的路径中的所有类。
31
+ 1 . ** BootstrapClassLoader(启动类加载器)** :最顶层的加载类,由C++实现,负责加载 ` %JAVA_HOME%/lib ` 目录下的jar包和类或者或被 ` -Xbootclasspath ` 参数指定的路径中的所有类。
16
32
2 . ** ExtensionClassLoader(扩展类加载器)** :主要负责加载目录 ` %JRE_HOME%/lib/ext ` 目录下的jar包和类,或被 ` java.ext.dirs ` 系统变量所指定的路径下的jar包。
17
33
3 . ** AppClassLoader(应用程序类加载器)** :面向我们用户的加载器,负责加载当前应用classpath下的所有jar包和类。
18
34
@@ -112,3 +128,13 @@ protected Class<?> loadClass(String name, boolean resolve)
112
128
- < https://juejin.im/post/5c04892351882516e70dcc9b >
113
129
- < http://gityuan.com/2016/01/24/java-classloader/ >
114
130
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 -->
2
2
3
- Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
3
+ - [ 类加载过程] ( #类加载过程 )
4
+ - [ 加载] ( #加载 )
5
+ - [ 验证] ( #验证 )
6
+ - [ 准备] ( #准备 )
7
+ - [ 解析] ( #解析 )
8
+ - [ 初始化] ( #初始化 )
4
9
5
- 系统加载 Class 类型的文件主要三步: ** 加载->连接->初始化 ** 。连接过程又可分为三步: ** 验证->准备->解析 ** 。
10
+ <!-- /TOC -->
6
11
12
+ > 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
7
13
14
+ # 类加载过程
8
15
9
- ![ 类加载过程 ] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png )
16
+ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
10
17
18
+ 系统加载 Class 类型的文件主要三步:** 加载->连接->初始化** 。连接过程又可分为三步:** 验证->准备->解析** 。
11
19
20
+ ![ 类加载过程] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png )
12
21
13
22
## 加载
14
23
@@ -67,4 +76,14 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚
67
76
68
77
- 《深入理解Java虚拟机》
69
78
- 《实战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
+
1
20
# 类文件结构
2
21
3
22
## 一 概述
@@ -157,7 +176,7 @@ public class Employee {
157
176
158
177
![ ] ( http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/字段的access_flags的取值.png )
159
178
160
- ### 方法表集合
179
+ ### 2.7 方法表集合
161
180
162
181
``` java
163
182
u2 methods_count;// Class 文件的方法的数量
@@ -178,7 +197,7 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
178
197
179
198
注意:因为` volatile ` 修饰符和` transient ` 修饰符不可以修饰方法,所以方法表的访问标志中没有这两个对应的标志,但是增加了` synchronized ` 、` native ` 、` abstract ` 等关键字修饰方法,所以也就多了这些关键字对应的标志。
180
199
181
- ### 属性表集合
200
+ ### 2.8 属性表集合
182
201
183
202
``` java
184
203
u2 attributes_count;// 此类的属性表中的属性数
@@ -192,4 +211,14 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
192
211
- < https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html >
193
212
- < https://coolshell.cn/articles/9229.html >
194
213
- < 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 21
21
- [ 网易云课堂——58集精通java教程Spring框架开发] ( http://study.163.com/course/courseMain.htm?courseId=1004475015#/courseDetail?tab=1&35 )
22
22
- [ 慕课网相关视频] ( https://www.imooc.com/ )
23
23
24
- - ** 黑马视频和尚硅谷视频(非常推荐):** 微信公众号:“** JavaGui ** ”后台回复关键字 “** 1** ” 免费领取。
24
+ - ** 黑马视频和尚硅谷视频(非常推荐):** 微信公众号:“** JavaGuide ** ”后台回复关键字 “** 1** ” 免费领取。
25
25
26
26
27
27
## 面试必备知识点
You can’t perform that action at this time.
0 commit comments