
目
录
JVM
与性能优化知识点...................................................................................................................22
一
、JVM 内
存区
域划
分
...........................................................................................................22
1.
程序计数器(线程私有)............................................................................................22
2.Java
栈(线程私有)....................................................................................................23
3.
本地方法栈(线程私有)............................................................................................24
4.
堆(线程共享)............................................................................................................25
1
Java
架构进阶核心知识点笔记(笔记+面试专题java 程序基础试题+导图学习方向)V1.0
版

5.
方法区(线程共享)....................................................................................................25
6.
直接内存(线程共享)................................................................................................26
二
、JVM
执
行子
系统
...............................................................................................................29
1.Class
类文件结构...........................................................................................................29
1.1
Java 跨平台的基础.............................................................................................30
1.2
Class
类的本质....................................................................................................30
2.
字节码指令....................................................................................................................32
2.1
加载和存储指令.................................................................................................32
2.2
运算或算术指令.................................................................................................32
2.3
类型转换指令.....................................................................................................32
2.4
创建类实例的指令............................................................................................ 33
2.5
创建数组的指令.................................................................................................33
2.6
访问字段指令.....................................................................................................33
2.7
数组存取相关指令............................................................................................ 33
2.8
检查类实例类型的指令.................................................................................... 33
2.9
操作数栈管理指令............................................................................................ 33
2.10
控制转移指令...................................................................................................33
2.11
方法调用指令...................................................................................................34
2.12
方法返回指令...................................................................................................34
2.13
异常处理指令...................................................................................................34
2.14
同步指令...........................................................................................................34
3.
类加载机制....................................................................................................................34
4.
类加载器........................................................................................................................36
4.1
系统的类加载器.................................................................................................36
4.2
双亲委派模型.....................................................................................................37
5.Tomcat
类加载机制...................................................................................................... 37
6.
方法调用详解................................................................................................................38
6.1
解析.....................................................................................................................38
6.2
静态分派.............................................................................................................38
6.3
动态分派.............................................................................................................39
6.4
基于栈的字节码解释执行引擎........................................................................ 40
三
.垃
圾回
收器
和内
存分
配策
略
..............................................................................................41
1.Java
中是值传递还是引用传递?................................................................................41
2.
引用类型........................................................................................................................41
3.
基本垃圾回收算法........................................................................................................41
3.1
按照基本回收策略分........................................................................................ 42
3.2
按分区对待的方式分........................................................................................ 43
3.3
按系统线程分.....................................................................................................43
4.
分代处理垃圾................................................................................................................44
5.JAVA
中垃圾回收 GC 的类型........................................................................................ 45
四
、
编
写高
效
优
雅
Java 程
序
..................................................................................................45
2

1.
面向对象........................................................................................................................45
1.1
构造器参数太多怎么办?................................................................................ 45
1.2
不需要实例化的类应该构造器私有................................................................ 46
1.3
不要创建不必要的对象.................................................................................... 46
1.4
避免使用终结方法............................................................................................ 47
1.5
使类和成员的可访问性最小化........................................................................ 47
1.6
使可变性最小化.................................................................................................47
1.7
复合优先于继承.................................................................................................47
1.8
接口优于抽象类.................................................................................................47
2.
方法................................................................................................................................ 47
2.1
可变参数要谨慎使用........................................................................................ 48
2.2
返回零长度的数组或集合,不要返回 null..................................................... 48
2.3
优先使用标准的异常........................................................................................ 48
3.
通用程序设计................................................................................................................48
五
、性
能
优
化
...........................................................................................................................49
1.
常用的性能评价/测试指标.......................................................................................... 49
1.1
响应时间............................................................................................................49
1.2
并发数.................................................................................................................49
1.3
吞吐量.................................................................................................................49
1.4
关系.....................................................................................................................50
2.
常用的性能优化手段....................................................................................................50
2.1
避免过早优化.....................................................................................................50
2.2
进行系统性能测试............................................................................................ 50
2.3
寻找系统瓶颈,分而治之,逐步优化............................................................ 50
2.4
前端优化常用手段............................................................................................ 51
2.4.1
浏览器/App............................................................................................. 51
2.4.2
CDN
加速................................................................................................. 51
2.4.3
反向代理缓存......................................................................................... 51
2.4.4
WEB
组件分离.........................................................................................51
3
应用服务性能优化........................................................................................................51
3.1
缓存.....................................................................................................................51
3.1.1
缓存的基本原理和本质......................................................................... 52
3.1.2
合理使用缓冲的准则............................................................................. 52
3.1.3
分布式缓存与一致性哈希..................................................................... 52
3.2
异步.....................................................................................................................53
3.2.1
同步和异步,阻塞和非阻塞................................................................. 53
3.2.2
常见异步的手段..................................................................................... 53
3.3
集群.....................................................................................................................53
3.4
应用相关.............................................................................................................54
3.4.1
代码级别..................................................................................................54
3.4.2
并发编程..................................................................................................54
3.4.3
资源的复用............................................................................................. 55
3

3.4.4
JVM...........................................................................................................55
3.4.5
GC
调优.................................................................................................... 56
3.4.6
调优实战..................................................................................................59
3.4.7
存储性能优化......................................................................................... 59
六
、 JVM 与
性能
优化
学
习
笔
记.Xmind................................................................................. 60
JVM
常问高频题解析.......................................................................................................................61
1.Java
类加载过程?...............................................................................................................
62
2.
描述一下 JVM
加
载 Class
文件的原理机制?.................................................................. 64
3.
Java 内存分配。.................................................................................................................. 65
4.GC
是什么
?
为什么要有 GC
?..........................................................................................
67
5.
简
述
Java 垃圾回收机制。...............................................................................................67
6.
如何判断一个对象是否存活?(或者 GC
对象的判定方法).................................... 67
7.
垃圾回收的优点和原理。并考
虑 2
种回收机制。....................................................... 69
8.
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主
动
通
知虚
拟机
进行
垃圾
回收?
...................................................................................................70
9.
Java 中会存在内存泄漏吗,请简单描述。......................................................................70
11.
深拷贝和浅拷贝。............................................................................................................76
12.
System.gc()
和 Runtime.gc() 会做什么事情?............................................................... 77
13.
finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?................77
14.
如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?.......78
15.
什么是分布式垃圾回收(DGC)?它是如何工作的?................................................
78
16.
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?....................78
17.
在 Java
中,对象什么时候可以被垃圾回收?............................................................
78
18.
简述 Java
内存分配与回收策率以及 Minor GC 和 Major GC。...............................
79
19.
JVM
的永久代中会发生垃圾回收么?...........................................................................
79
20.
Java
中垃圾收集的方法有哪些?....................................................................................80
21.
什么是类加载器,类加载器有哪些?........................................................................... 81
22.
类加载器双亲委派模型机制?.......................................................................................
82
Java
基础知识点汇总.......................................................................................................................
83
Object
....................................................................................................................................... 83
equals
方法.....................................................................................................................
83
hashCode
方法...............................................................................................................
83
static
..........................................................................................................................................84
final
............................................................................................................................................85
String
、StringBuffer
、StringBuilder
.....................................................................................85
异
常
处
理
................................................................................................................................... 86
内
部
类....................................................................................................................................... 87
匿
名内
部
类.......................................................................................................................87
多
态
........................................................................................................................................... 87
抽
象和
接口
............................................................................................................................... 88
集
合框
架
................................................................................................................................... 88
HashMap
.......................................................................................................................... 89
4

结
构图
.......................................................................................................................89
HashMap
的工作原理............................................................................................91
HashMap
与
HashTable 对比..............................................................................92
ConcurrentHashMap
...................................................................................................... 94
Base
1.7....................................................................................................................
94
Base
1.8....................................................................................................................
96
ArrayList
............................................................................................................................99
LinkedList
....................................................................................................................... 101
CopyOnWriteArrayList
................................................................................................. 104
反
射
......................................................................................................................................... 106
单
例
......................................................................................................................................... 108
饿
汉
式............................................................................................................................. 108
双
重
检查模
式
.................................................................................................................108
静
态内
部
类
模式
.............................................................................................................109
线
程
......................................................................................................................................... 110
状
态
................................................................................................................................. 110
状
态控
制
.........................................................................................................................112
volatile
.................................................................................................................................... 113
synchronized
..........................................................................................................................115
根
据
获
取的
锁分
类
.........................................................................................................115
原
理
................................................................................................................................. 116
Lock
......................................................................................................................................... 116
锁
的分类
.........................................................................................................................117
悲
观锁、乐观锁.....................................................................................................118
自
旋
锁
、适
应性
自旋
锁
........................................................................................ 119
死
锁
.........................................................................................................................119
引
用
类
型
................................................................................................................................. 120
动
态
代理................................................................................................................................. 120
元
注解
..................................................................................................................................... 127
Java
集合面试题解析..................................................................................................................... 128
1.
ArrayList 和 Vector 的区别。.................................................................................. 128
2.
说说 ArrayList,Vector, LinkedList 的存储性能和特性。.................................. 129
3.
快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?......................129
4.
hashmap 的数据结构。...................................................................................................130
5.
HashMap 的工作原理是什么?........................................................................................ 130
6.
Hashmap 什么时候进行扩容呢?.................................................................................. 130
7.
List、Map、Set
三个接口,存取元素时,各有什么特点?.................................... 131
8.
Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是
equals()?
它们有何区别?...................................................................................................132
9.
两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对
不
对
?....................................................................................................................................... 132
10.
heap
和 stack 有什么区别。.................................................................................... 132
5
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/114.html