Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
清新范er
JavaGuide
提交
810243f4
J
JavaGuide
项目概览
清新范er
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
810243f4
编写于
5月 19, 2019
作者:
S
SnailClimb
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/Snailclimb/JavaGuide
上级
d8689a3f
72996ae5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
85 addition
and
13 deletion
+85
-13
docs/java/Java基础知识.md
docs/java/Java基础知识.md
+1
-1
docs/java/jvm/类加载器.md
docs/java/jvm/类加载器.md
+27
-1
docs/java/jvm/类加载过程.md
docs/java/jvm/类加载过程.md
+24
-6
docs/java/jvm/类文件结构.md
docs/java/jvm/类文件结构.md
+32
-4
docs/system-design/framework/Spring学习与面试.md
docs/system-design/framework/Spring学习与面试.md
+1
-1
未找到文件。
docs/java/Java基础知识.md
浏览文件 @
810243f4
...
...
@@ -301,7 +301,7 @@ new运算符,new创建对象实例(对象实例在堆内存中),对象
**equals()**
: 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:
-
情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。
-
情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来
两个对象的内容
相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
-
情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来
比较两个对象的内容是否
相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。
**举个例子:**
...
...
docs/java/jvm/类加载器.md
浏览文件 @
810243f4
<!-- TOC -->
-
[
回顾一下类加载过程
](
#回顾一下类加载过程
)
-
[
类加载器总结
](
#类加载器总结
)
-
[
双亲委派模型
](
#双亲委派模型
)
-
[
双亲委派模型介绍
](
#双亲委派模型介绍
)
-
[
双亲委派模型实现源码分析
](
#双亲委派模型实现源码分析
)
-
[
双亲委派模型的好处
](
#双亲委派模型的好处
)
-
[
如果我们不想要双亲委派模型怎么办?
](
#如果我们不想要双亲委派模型怎么办
)
-
[
自定义类加载器
](
#自定义类加载器
)
-
[
推荐
](
#推荐
)
<!-- /TOC -->
> 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
## 回顾一下类加载过程
类加载过程:
**加载->连接->初始化**
。连接过程又可分为三步:
**验证->准备->解析**
。
...
...
@@ -12,7 +28,7 @@
JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自
`java.lang.ClassLoader`
:
1.
**BootstrapClassLoader(启动类加载器)**
:最顶层的加载类,由C++实现,负责加载
`%JAVA_HOME%/li`
目录下的jar包和类或者或被
`-Xbootclasspath`
参数指定的路径中的所有类。
1.
**BootstrapClassLoader(启动类加载器)**
:最顶层的加载类,由C++实现,负责加载
`%JAVA_HOME%/li
b
`
目录下的jar包和类或者或被
`-Xbootclasspath`
参数指定的路径中的所有类。
2.
**ExtensionClassLoader(扩展类加载器)**
:主要负责加载目录
`%JRE_HOME%/lib/ext`
目录下的jar包和类,或被
`java.ext.dirs`
系统变量所指定的路径下的jar包。
3.
**AppClassLoader(应用程序类加载器)**
:面向我们用户的加载器,负责加载当前应用classpath下的所有jar包和类。
...
...
@@ -112,3 +128,13 @@ protected Class<?> loadClass(String name, boolean resolve)
-
<https://juejin.im/post/5c04892351882516e70dcc9b>
-
<http://gityuan.com/2016/01/24/java-classloader/>
### 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:**
由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java面试突击"**
即可免费领取!
**Java工程师必备学习资源:**
一些Java工程师常用学习资源
[
公众号
](
#公众号
)
后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334
)
docs/java/jvm/类加载过程.md
浏览文件 @
810243f4
# 类加载过程
<!-- TOC -->
Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
-
[
类加载过程
](
#类加载过程
)
-
[
加载
](
#加载
)
-
[
验证
](
#验证
)
-
[
准备
](
#准备
)
-
[
解析
](
#解析
)
-
[
初始化
](
#初始化
)
系统加载 Class 类型的文件主要三步:
**加载->连接->初始化**
。连接过程又可分为三步:
**验证->准备->解析**
。
<!-- /TOC -->
> 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
# 类加载过程
![
类加载过程
](
http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png
)
Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?
系统加载 Class 类型的文件主要三步:
**加载->连接->初始化**
。连接过程又可分为三步:
**验证->准备->解析**
。
![
类加载过程
](
http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/类加载过程.png
)
## 加载
...
...
@@ -67,4 +76,14 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚
-
《深入理解Java虚拟机》
-
《实战Java虚拟机》
-
<https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html>
\ No newline at end of file
-
<https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html>
### 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:**
由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java面试突击"**
即可免费领取!
**Java工程师必备学习资源:**
一些Java工程师常用学习资源
[
公众号
](
#公众号
)
后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334
)
docs/java/jvm/类文件结构.md
浏览文件 @
810243f4
<!-- TOC -->
-
[
类文件结构
](
#类文件结构
)
-
[
一 概述
](
#一-概述
)
-
[
二 Class 文件结构总结
](
#二-class-文件结构总结
)
-
[
2.1 魔数
](
#21-魔数
)
-
[
2.2 Class 文件版本
](
#22-class-文件版本
)
-
[
2.3 常量池
](
#23-常量池
)
-
[
2.4 访问标志
](
#24-访问标志
)
-
[
2.5 当前类索引,父类索引与接口索引集合
](
#25-当前类索引父类索引与接口索引集合
)
-
[
2.6 字段表集合
](
#26-字段表集合
)
-
[
2.7 方法表集合
](
#27-方法表集合
)
-
[
2.8 属性表集合
](
#28-属性表集合
)
-
[
参考
](
#参考
)
<!-- /TOC -->
> 公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。
# 类文件结构
## 一 概述
...
...
@@ -157,7 +176,7 @@ public class Employee {
![](
http://pqrlmrv7w.bkt.clouddn.com/img/2019-4/字段的access_flags的取值.png
)
### 方法表集合
###
2.7
方法表集合
```
java
u2
methods_count
;
//Class 文件的方法的数量
...
...
@@ -178,7 +197,7 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
注意:因为
`volatile`
修饰符和
`transient`
修饰符不可以修饰方法,所以方法表的访问标志中没有这两个对应的标志,但是增加了
`synchronized`
、
`native`
、
`abstract`
等关键字修饰方法,所以也就多了这些关键字对应的标志。
### 属性表集合
###
2.8
属性表集合
```
java
u2
attributes_count
;
//此类的属性表中的属性数
...
...
@@ -192,4 +211,14 @@ Class 文件存储格式中对方法的描述与对字段的描述几乎采用
-
<https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html>
-
<https://coolshell.cn/articles/9229.html>
-
<https://blog.csdn.net/luanlouis/article/details/39960815>
-
《实战 Java 虚拟机》
\ No newline at end of file
-
《实战 Java 虚拟机》
### 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:**
由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java面试突击"**
即可免费领取!
**Java工程师必备学习资源:**
一些Java工程师常用学习资源
[
公众号
](
#公众号
)
后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334
)
docs/system-design/framework/Spring学习与面试.md
浏览文件 @
810243f4
...
...
@@ -21,7 +21,7 @@
-
[
网易云课堂——58集精通java教程Spring框架开发
](
http://study.163.com/course/courseMain.htm?courseId=1004475015#/courseDetail?tab=1&35
)
-
[
慕课网相关视频
](
https://www.imooc.com/
)
-
**黑马视频和尚硅谷视频(非常推荐):**
微信公众号:“
**JavaGui**
”后台回复关键字 “
**1**
” 免费领取。
-
**黑马视频和尚硅谷视频(非常推荐):**
微信公众号:“
**JavaGui
de
**
”后台回复关键字 “
**1**
” 免费领取。
## 面试必备知识点
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录