没有合适的资源?快使用搜索试试~ 我知道了~
首页Java核心笔记:深入理解JVM内存与垃圾回收机制
Java核心笔记:深入理解JVM内存与垃圾回收机制
需积分: 15 0 下载量 108 浏览量
更新于2024-07-09
1
收藏 12.85MB PDF 举报
"Java核心笔记.pdf"是一份详尽的Java编程指南,涵盖了Java虚拟机(JVM)的基础概念和内存管理机制。这份文档首先介绍了JVM的关键组成部分,包括线程、内存区域,如程序计数器、虚拟机栈、本地方法区、堆和方法区/永久代。对于JVM运行时内存,它详细剖析了新生代和老年代的区别,以及它们各自的子区域(如Eden、Survivor和Tenured)。
在垃圾回收方面,笔记解释了如何通过引用计数法和可达性分析来确定对象是否成为垃圾。随后,讲解了四种类型的Java引用,即强引用、软引用、弱引用和虚引用,以及它们在垃圾回收中的作用。垃圾回收算法部分,文档列举了标记清除、复制、标记整理等经典算法,并特别强调了分代收集算法的应用,区分了新生代的复制算法和老年代的标记整理策略。
此外,文档还深入讨论了不同的GC收集器,如Serial、ParNew、ParallelScavenge和SerialOld,这些收集器各自的特点和应用场景,如单线程的Serial和多线程的ParNew,以及专为年轻代优化的ParallelScavenge。通过比较分代收集算法和分区收集算法,读者可以更好地理解垃圾回收的策略和优化方向。
这份笔记提供了Java程序员必备的底层知识,有助于理解Java程序的执行过程和内存管理,是深入学习和调试Java应用的重要参考资料。
13/04/2018
Page 16 of 283
24. 分布式缓存 ...................................................................................................................................... 257
24.1.1.
缓存雪崩
.................................................................................................................................... 257
24.1.2.
缓存穿透
.................................................................................................................................... 257
24.1.3.
缓存预热
.................................................................................................................................... 257
24.1.4.
缓存更新
.................................................................................................................................... 257
24.1.5.
缓存降级
.................................................................................................................................... 257
25. HADOOP ........................................................................................................................................ 259
25.1.1.
概念
............................................................................................................................................ 259
25.1.2. HDFS ......................................................................................................................................... 259
25.1.2.1. Client .................................................................................................................................................. 259
25.1.2.2. NameNode ........................................................................................................................................ 259
25.1.2.3. Secondary NameNode ................................................................................................................. 259
25.1.2.4. DataNode......................................................................................................................................... 259
25.1.3. MapReduce ............................................................................................................................... 260
25.1.3.1. Client ................................................................................................................................................. 260
25.1.3.2. JobTracker ....................................................................................................................................... 260
25.1.3.3. TaskTracker ...................................................................................................................................... 261
25.1.3.4. Task ................................................................................................................................................... 261
25.1.3.5. Reduce Task 执行过程 ................................................................................................................... 261
25.1.4. Hadoop MapReduce
作业的生命周期
................................................................................... 262
1.作业提交与初始化........................................................................................................................................... 262
2.任务调度与监控。........................................................................................................................................... 262
3.任务运行环境准备........................................................................................................................................... 262
4.任务执行 .......................................................................................................................................................... 262
5.作业完成。 ...................................................................................................................................................... 262
26. SPARK ............................................................................................................................................ 263
26.1.1.
概念
............................................................................................................................................ 263
26.1.2.
核心架构
.................................................................................................................................... 263
Spark Core ......................................................................................................................................................... 263
Spark SQL .......................................................................................................................................................... 263
Spark Streaming ................................................................................................................................................ 263
Mllib ..................................................................................................................................................................... 263
GraphX ................................................................................................................................................................ 263
26.1.3.
核心组件
.................................................................................................................................... 264
Cluster Manager-制整个集群,监控 worker ................................................................................................. 264
Worker 节点-负责控制计算节点 ....................................................................................................................... 264
Driver: 运行 Application 的 main()函数......................................................................................................... 264
Executor:执行器,是为某个 Application 运行在 worker node 上的一个进程 .......................................... 264
26.1.4. SPARK
编程模型
...................................................................................................................... 264
26.1.5. SPARK
计算模型
...................................................................................................................... 265
26.1.6. SPARK
运行流程
...................................................................................................................... 266
1. 构建 Spark Application 的运行环境,启动 SparkContext .................................................................... 267
2. SparkContext 向资源管理器(可以是 Standalone,Mesos,Yarn)申请运行 Executor 资源,并启
动 StandaloneExecutorbackend, .................................................................................................................. 267
3. Executor 向 SparkContext 申请 Task ..................................................................................................... 267
4. SparkContext 将应用程序分发给 Executor ............................................................................................ 267
5. SparkContext 构建成 DAG 图,将 DAG 图分解成 Stage、将 Taskset 发送给 Task Scheduler,最
后由 Task Scheduler 将 Task 发送给 Executor 运行 ..................................................................................... 267
6. Task 在 Executor 上运行,运行完释放所有资源................................................................................... 267
26.1.7. SPARK RDD
流程
.................................................................................................................... 267
26.1.8. SPARK RDD ............................................................................................................................. 267
(1)RDD 的创建方式........................................................................................................................................... 267
(2)RDD 的两种操作算子(转换(Transformation)与行动(Action)) .............................................. 268
27. STORM ........................................................................................................................................... 269
13/04/2018
Page 17 of 283
27.1.1.
概念
............................................................................................................................................ 269
27.1.1.
集群架构
.................................................................................................................................... 269
27.1.1.1. Nimbus(master-代码分发给 Supervisor) ................................................................................ 269
27.1.1.2. Supervisor(slave-管理 Worker 进程的启动和终止) ............................................................... 269
27.1.1.3. Worker(具体处理组件逻辑的进程) ............................................................................................ 269
27.1.1.4. Task ................................................................................................................................................... 270
27.1.1.5. ZooKeeper ........................................................................................................................................ 270
27.1.2.
编程模型(spout->tuple->bolt)
....................................................................................... 270
27.1.2.1. Topology ............................................................................................................................................ 270
27.1.2.2. Spout.................................................................................................................................................. 270
27.1.2.3. Bolt ..................................................................................................................................................... 270
27.1.2.4. Tuple .................................................................................................................................................. 270
27.1.2.5. Stream ............................................................................................................................................... 271
27.1.3. Topology
运行
........................................................................................................................... 271
(1). Worker(进程) (2). Executor(线程) (3). Task .................................................................................. 271
27.1.3.1. Worker(1 个 worker 进程执行的是 1 个 topology 的子集) ....................................................... 271
27.1.3.2. Executor(executor 是 1 个被 worker 进程启动的单独线程) ...................................................... 271
27.1.3.3. Task(最终运行 spout 或 bolt 中代码的单元) ............................................................................... 272
27.1.4. Storm Streaming Grouping ..................................................................................................... 272
27.1.4.1. huffle Grouping ................................................................................................................................. 273
27.1.4.2. Fields Grouping ................................................................................................................................ 273
27.1.4.3. All grouping :广播 .......................................................................................................................... 273
27.1.4.4. Global grouping ................................................................................................................................ 274
27.1.4.5. None grouping :不分组 ................................................................................................................. 274
27.1.4.6. Direct grouping :直接分组 指定分组 ........................................................................................... 274
28. YARN .............................................................................................................................................. 275
28.1.1.
概念
............................................................................................................................................ 275
28.1.2. ResourceManager ................................................................................................................... 275
28.1.3. NodeManager ........................................................................................................................... 275
28.1.4.
ApplicationMaster
................................................................................................................. 276
28.1.5.
YARN 运行流程
.................................................................................................................... 277
29. 机器学习 .......................................................................................................................................... 278
29.1.1.
决策树
........................................................................................................................................ 278
29.1.2.
随机森林算法
............................................................................................................................ 278
29.1.3.
逻辑回归
.................................................................................................................................... 278
29.1.4. SVM............................................................................................................................................ 278
29.1.5.
朴素贝叶斯
................................................................................................................................ 278
29.1.6. K
最近邻算法
............................................................................................................................. 278
29.1.7. K
均值算法
................................................................................................................................. 278
29.1.8. Adaboost
算法
.......................................................................................................................... 278
29.1.9.
神经网络
.................................................................................................................................... 278
29.1.10.
马尔可夫
................................................................................................................................ 278
30. 云计算 ............................................................................................................................................. 279
30.1.1. SaaS .......................................................................................................................................... 279
30.1.2. PaaS .......................................................................................................................................... 279
30.1.3. IaaS ............................................................................................................................................ 279
30.1.4. Docker ........................................................................................................................................ 279
30.1.4.1. 概念 .................................................................................................................................................... 279
30.1.4.2. Namespaces ..................................................................................................................................... 280
30.1.4.3. 进程(CLONE_NEWPID 实现的进程隔离)...................................................................................... 281
30.1.4.4. Libnetwork 与网络隔离 .................................................................................................................... 281
30.1.4.5. 资源隔离与 CGroups ....................................................................................................................... 282
30.1.4.6. 镜像与 UnionFS ................................................................................................................................ 282
30.1.4.7. 存储驱动 ............................................................................................................................................ 282
13/04/2018
Page 19 of 283
2. JVM
(1) 基本概念:
JVM 是可运行 Java代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、
一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接
的交互。
(2) 运行过程:
13/04/2018
Page 20 of 283
我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,
而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。
也就是如下:
① Java 源文件—->编译器—->字节码文件
② 字节码文件—->JVM—->机器码
每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够
跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会
存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,多个虚拟机实例之间数据不
能共享。
2.1. 线程
这里所说的线程指程序执行过程中的一个线程实体。JVM 允许一个应用并发执行多个线程。
Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓
冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。
Java 线程结束,原生线程随之被回收。操作系统负责调度所有线程,并把它们分配到任何可
用的 CPU 上。当原生线程初始化完毕,就会调用 Java 线程的 run() 方法。当线程结束时,
剩余282页未读,继续阅读
2020-09-06 上传
2023-12-11 上传
2023-09-08 上传
2023-09-19 上传
2023-04-28 上传
2023-07-05 上传
2023-12-16 上传
turmasor
- 粉丝: 64
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功