没有合适的资源?快使用搜索试试~ 我知道了~
首页Java JVM深度解析:面试必备知识精华
Java JVM深度解析:面试必备知识精华
需积分: 9 9 下载量 111 浏览量
更新于2024-07-16
1
收藏 14.84MB PDF 举报
"Java面试全解.pdf,涵盖了Java面试中重要的知识点,包括JVM内存管理、垃圾回收机制、各种垃圾收集算法以及引用类型等,旨在帮助求职者掌握月薪过万所需的Java技能。"
本文主要围绕Java虚拟机(JVM)及其相关概念进行深入探讨,以帮助Java开发者和面试者更好地理解和掌握这一核心知识领域。
首先,JVM是Java程序的运行环境,它分为多个内存区域,每个区域都有其特定的功能和生命周期。其中,程序计数器记录了当前线程的执行位置;虚拟机栈用于存储局部变量、方法返回地址等,每个线程都有自己独立的栈;本地方法区服务于JNI(Java Native Interface)调用的非Java方法;堆是所有线程共享的内存区域,用于存放对象实例;方法区(在Java 8之前被称为永久代,后来被元空间替代)则存储类的元数据,如类信息、常量、静态变量等。
JVM运行时内存主要分为新生代、老年代和永久代(在Java 8中是元空间)。新生代又细分为Eden区、Survivor From区和Survivor To区,主要用于存放新创建的对象。Minor GC主要在新生代进行,采用复制算法,通过Eden和Survivor区的交互来清理和存活对象。老年代则存放长期存在的对象,使用标记整理算法。永久代或元空间主要存储类的元数据。
垃圾回收(GC)是JVM自动管理内存的重要机制,通过可达性分析等方法判断哪些对象不再被引用,从而释放内存。常见的垃圾收集算法包括引用计数法、标记清除、复制、标记整理和分代收集。分代收集根据对象生命周期将其分配在不同内存区域,并选择合适的算法,比如新生代常用复制算法,老年代常用标记整理算法。
Java提供了四种引用类型:强引用、软引用、弱引用和虚引用,它们在内存管理和GC策略中扮演不同角色。强引用是最常见也是最稳固的引用,软引用常用于缓存,弱引用只在对象被GC时才失效,虚引用主要用于跟踪对象是否被GC。
在GC策略上,分代收集算法针对不同内存区域采用不同算法,而分区收集算法则将内存划分为更小的分区,提高GC效率。具体到垃圾收集器,例如Serial收集器适用于单线程环境,ParNew是Serial的多线程版本,ParallelScavenge则专注于吞吐量优化,SerialOld则是在老年代使用单线程标记整理算法的收集器。
这份资料详细阐述了Java面试中的JVM和垃圾回收相关知识点,对提升面试者的技术深度和理解有很大帮助。
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
关注微信公众号:Java面试手册,获取更多资讯!
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
关注微信公众号:Java面试手册,获取更多资讯!
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页未读,继续阅读
698 浏览量
Miki_souls
- 粉丝: 2164
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实战部署UC平台(OCS=VOIP GW=Exchange2007).pdf
- thinking in java
- 嵌入式Linux Framebuffer 驱动开发.pdf
- grails入门指南
- Apress.Pro.OGRE.3D.Programming.pdf
- Linux设备驱动开发详解讲座.pdf
- GoF+23种设计模式
- Wrox.Python.Create.Modify.Reuse.Jul.2008
- sd卡spi模式翻译资料
- 最新计算机考研专业课程大纲
- oracleproc编程
- Google-Guice-Agile-Lightweight-Dependency-Injection-Framework-Firstpress
- oracle工具TOAD快速入门
- Unix 操作命令大全
- ARM映象文件及执行机理
- rhce教材RH033 - Red Hat Linux Essentials
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功