网易首页 > 网易号 > 正文 申请入驻

隔离居家学习使我快乐,备战2020跳槽季,Java核心知识点干货分享

0
分享至

前言:

居家隔离不要忘了学习呀,在家没上没下的时候学习是让自己充实起来的好方法哦,相信很多人都在准备着年后或者是金三银四面试跳槽,上班的时候说忙没有时间学习,不敢跳槽因为毫无准备,现在趁着有点时间可以学习充实下自己哦。

今天给大家整理分享一份Java核心面试知识点整理,希望可以帮助到大家,由于篇幅限制不能全部分享出来,需要完整的这份文档资料,关注我的供种号【Java周某人】即可

包含内容:

26个知识点

  • Java基础,集合,并发,多线程,JVM,设计模式
  • Java算法,数据结构
  • Spring,MyBatis,MVC,netty,tomcat
  • 架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡
  • SpringBoot,SpringCloud,Dubbo,Docker

适用人群:

个人觉得都适用,不管是小白还是大牛,查漏补缺发现更厉害的你

由于篇幅限制笔者选择一个知识点给大家着重介绍,需要完整文档资料的私信我哦

JVM

基本概念:

JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。

运行过程:

我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。

也就是如下:

① Java 源文件—->编译器—->字节码文件

② 字节码文件—->JVM—->机器码

每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,多个虚拟机实例之间数据不能共享

线程

这里所说的线程指程序执行过程中的一个线程实体。JVM 允许一个应用并发执行多个线程。Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。Java 线程结束,原生线程随之被回收。操作系统负责调度所有线程,并把它们分配到任何可用的 CPU 上。当原生线程初始化完毕,就会调用 Java 线程的 run() 方法。当线程结束时,会释放原生线程和 Java 线程的所有资源.

Hotspot JVM 后台运行的系统线程主要有下面几个:

JVM 内存区域

JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。

线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 HotspotVM 内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死对应)

线程共享区域随虚拟机的启动/关闭而创建/销毁。

直接内存并不是 JVM 运行时数据区的一部分, 但也会被频繁的使用: 在 JDK 1.4 引入的 NIO 提供了基于 Channel 与 Buffer 的 IO 方式, 它可以使用 Native 函数库直接分配堆外内存, 然后使用DirectByteBuffer 对象作为这块内存的引用进行操作(详见: Java I/O 扩展), 这样就避免了在 Java堆和 Native 堆中来回复制数据, 因此在一些场景中可以显著提高性能。

本地方法区(线程私有)

本地方法区和 Java Stack 作用类似, 区别是虚拟机栈为执行 Java 方法服务, 而本地方法栈则为Native 方法服务, 如果一个 VM 实现使用 C-linkage 模型来支持 Native 调用, 那么该栈将会是一个C 栈,但 HotSpot VM 直接就把本地方法栈和虚拟机栈合二为一。

堆(Heap-线程共享)-运行时数据区

是被线程共享的一块内存区域,创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行垃圾收集的最重要的内存区域。由于现代 VM 采用分代收集算法, 因此 Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。

方法区/永久代(线程共享)

即我们常说的永久代(Permanent Generation), 用于存储被 JVM 加载的类信息常量静态变量即时编译器编译后的代码等数据. HotSpot VM把GC分代收集扩展至方法区, 即使用Java堆的永久代来实现方法区, 这样 HotSpot 的垃圾收集器就可以像管理 Java 堆一样管理这部分内存,而不必为方法区开发专门的内存管理器(永久带的内存回收的主要目标是针对常量池的回收类型的卸载, 因此收益一般很小)。运行时常量池(Runtime Constant Pool)是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池

(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。 Java 虚拟机对 Class 文件的每一部分(自然也包括常量池)的格式都有严格的规定,每一个字节用于存储哪种数据都必须符合规范上的要求,这样才会被虚拟机认可、装载和执行。

垃圾回收与算法

如何确定垃圾

引用计数法

在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。

可达性分析

为了解决引用计数法的循环引用问题,Java 使用了可达性分析的方法。通过一系列的“GC roots”对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对象是不可达的要注意的是,不可达对象不等价于可回收对象,不可达对象变为可回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收。

标记清除算法(Mark-Sweep)

复制算法(copying)

为了解决 Mark-Sweep 算法内存碎片化的缺陷而被提出的算法。按内存容量将内存划分为等大小的两块。每次只使用其中一块,当这一块内存满后将尚存活的对象复制到另一块上去,把已使用的内存清掉,如图:

这种算法虽然实现简单,内存效率高,不易产生碎片,但是最大的问题是可用内存被压缩到了原本的一半。且存活对象增多的话,Copying 算法的效率会大大降低。

标记整理算法(Mark-Compact)

结合了以上两个算法,为了避免缺陷而提出。标记阶段和 Mark-Sweep 算法相同,标记后不是清理对象,而是将存活对象移向内存的一端。然后清除端边界外的对象。如图:

分代收集算法

分代收集法是目前大部分 JVM 所采用的方法,其核心思想是根据对象存活的不同生命周期将内存划分为不同的域,一般情况下将 GC 堆划分为老生代(Tenured/Old Generation)和新生代(YoungGeneration)。老生代的特点是每次垃圾回收时只有少量对象需要被回收,新生代的特点是每次垃圾回收时都有大量垃圾需要被回收,因此可以根据不同区域选择不同的算法。

总结:

今天的jvm知识点就分享到这里,还有一些内容没有详细的分享出来,文章前面提到的知识点内容都有详细的解析分析,需要整个pdf文档资料的,关注我的供种号【Java周某人】即可

全文共485页这份PDF可是帮了我很大的忙哦

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
首次突破首轮场均数据:乔丹45.2分5.4板4.8助 华子31分8板6.3助

首次突破首轮场均数据:乔丹45.2分5.4板4.8助 华子31分8板6.3助

直播吧
2024-05-01 23:38:13
上海街头惊现新能源车大碰撞!问界M7 VS 特斯拉,结局让人意外

上海街头惊现新能源车大碰撞!问界M7 VS 特斯拉,结局让人意外

户外小阿隋
2024-05-02 11:22:44
妈妈晒女儿“袜子破洞”,引来3000条说教,拿不出手的爱就别拿了

妈妈晒女儿“袜子破洞”,引来3000条说教,拿不出手的爱就别拿了

熙熙说教
2024-05-02 10:00:10
媒体人:如果让谢晖把这个赛季带完,亚泰基本会锁定一个降级名额

媒体人:如果让谢晖把这个赛季带完,亚泰基本会锁定一个降级名额

直播吧
2024-05-01 18:18:11
大S给儿女改姓!把财产留给儿女疑回击张兰:汪家的财产我们不要

大S给儿女改姓!把财产留给儿女疑回击张兰:汪家的财产我们不要

八卦王者
2024-05-01 18:22:54
特斯拉:卖不动就降价,降到销量暴涨为止!

特斯拉:卖不动就降价,降到销量暴涨为止!

汽车扒壹扒
2024-04-30 21:50:34
欧冠最新夺冠赔率:皇马断层领跑!拜仁被看衰,多特赢巴黎仍垫底

欧冠最新夺冠赔率:皇马断层领跑!拜仁被看衰,多特赢巴黎仍垫底

我爱英超
2024-05-02 07:37:03
布林肯在华称高校抗议是美国“民主的标志”,被X平台网友质疑:为什么在大学安插狙击手?

布林肯在华称高校抗议是美国“民主的标志”,被X平台网友质疑:为什么在大学安插狙击手?

环球网资讯
2024-04-27 14:45:16
证券市场再出重大消息,透露必有大事发生,下周A股或将大变天!

证券市场再出重大消息,透露必有大事发生,下周A股或将大变天!

彩云的夕阳
2024-05-02 05:50:03
上映成五一档票房冠军?但事实证明,“主旋律电影”已成了臭抹布

上映成五一档票房冠军?但事实证明,“主旋律电影”已成了臭抹布

阿芒娱乐说
2024-05-02 01:35:19
市委常委、组织部长,出任大学党委书记

市委常委、组织部长,出任大学党委书记

双一流高校
2024-04-30 17:44:07
解密黄家驹的真正死因:不是意外,前世是金丝猴,最终死于降头术

解密黄家驹的真正死因:不是意外,前世是金丝猴,最终死于降头术

洞鉴历史
2024-04-29 16:50:12
2005年,傅冬菊在北京医院悄然离世,作为北平起义功臣却一生低调

2005年,傅冬菊在北京医院悄然离世,作为北平起义功臣却一生低调

静霞历史说
2024-04-05 20:50:04
太惨了!梅州高速塌方已致24死,30伤!现场图片曝光,触目惊心…

太惨了!梅州高速塌方已致24死,30伤!现场图片曝光,触目惊心…

火山诗话
2024-05-01 17:14:59
男演员骗88人到柬埔寨进行电信诈骗,上诉后,法院维持原判

男演员骗88人到柬埔寨进行电信诈骗,上诉后,法院维持原判

红星新闻
2024-05-01 14:06:08
上任200天,刘小涛马不停蹄跑遍苏州,只为这些事

上任200天,刘小涛马不停蹄跑遍苏州,只为这些事

创客公社-江苏第一创投媒体
2024-05-02 09:51:41
1990年,利比里亚总统多伊浑身赤裸地瘫坐在地上,他的十指被砍掉

1990年,利比里亚总统多伊浑身赤裸地瘫坐在地上,他的十指被砍掉

回京历史梦
2024-04-23 16:52:51
五一小长假人满为患!看了这组实景照片,不信你还敢出去

五一小长假人满为患!看了这组实景照片,不信你还敢出去

飞哥AI矩阵
2024-05-01 14:12:14
布林肯的愤怒 美国战胜苏联的三大法宝 被以色列干掉了两个

布林肯的愤怒 美国战胜苏联的三大法宝 被以色列干掉了两个

月满大江流
2024-05-01 12:08:01
河南正厅级女干部走红,容貌端庄气质不凡,学历优秀晋升速度很快

河南正厅级女干部走红,容貌端庄气质不凡,学历优秀晋升速度很快

华庭讲美食
2024-05-02 07:50:26
2024-05-02 13:40:49
JAVA周某人
JAVA周某人
致敬大师,致敬未来的你。
137文章数 1513关注度
往期回顾 全部

科技要闻

4月交付量理想超问界,小米首月交付超七千

头条要闻

990万拍下迈巴赫还没付全款 二手车商"三戏"周鸿祎

头条要闻

990万拍下迈巴赫还没付全款 二手车商"三戏"周鸿祎

体育要闻

这场欧冠,多特的他诠释了什么叫"台柱子"

娱乐要闻

黄子韬被曝求婚徐艺洋 大量亲密照曝光

财经要闻

日元如此疯狂波动,背后谁在收割?

汽车要闻

预售2.89-3.49万 奔腾小马正式开启预售

态度原创

时尚
家居
游戏
本地
健康

终于找到中年女人的标杆了,剪短发、穿衣简单,时髦不显老

家居要闻

心之所栖 黑白灰色系打造设计专属感

5月港服PS+会免公布:《幽灵行者2》《FC 24》等

本地新闻

食味印象 | 潍坊:碳水脑袋的人间乐园

春天野菜不知不识莫乱吃

无障碍浏览 进入关怀版