自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(277)
  • 收藏
  • 关注

原创 28、不再卡顿!实时分析引擎面对海量数据引发频繁Full GC的背后原因

这篇文章继续以实际案例为基础,深入探讨了在处理1亿数据量级的系统时,当系统部署在配置为4核8GB内存的机上,为何频繁出现Full GC(全垃圾回收)现象,以及我们应如何进行优化。接着,文章进一步分析了在处理10亿数据量级的系统时,同样部署在4核8GB的机器上,Full GC的出现将会有多么严重,并探讨了如何通过提升机器配置来进行优化。通过仔细阅读这个案例,我们可以深入理解Full GC问题。一旦我们彻底理解了这一点,就能够有效解决频繁发生的Full GC问题。

2024-05-24 07:15:00 3

原创 27、技术深挖:优化BI系统以稳定支撑每秒10万请求量,解决Young GC难题

本文通过一个实际案例,旨在阐述一个观点:通常来说,即便Young GC(年轻代垃圾回收)发生得较为频繁,对系统的运行影响也相对有限。然而,当计算机的内存规模特别大时,需要注意的是,Young GC可能会引发较长时间的系统停顿。在这种情况下,对于大内存机器,我们通常建议采用G1垃圾回收器。G1垃圾回收器是一种面向大内存机器的垃圾回收器,它能够有效地减少系统停顿时间,提高系统性能。在处理大内存机器时,G1垃圾回收器可以更好地平衡垃圾回收的负载,避免出现长时间的停顿,从而确保系统的稳定运行。

2024-05-23 07:15:00 5

原创 26、面试热点解码:精准掌握Young GC与Full GC的触发机制,助你通关大厂!

因此,我们只能大致地说,当上述条件满足时,系统会触发Full GC,而在Full GC过程中,一般会伴随着一次Young GC来回收新生代的垃圾对象,同时也会对老年代和永久代进行垃圾回收。现在,大家应该已经明白,如果我们用一个明确的方法来定义这些术语,那么Young GC可以被视为年轻代的垃圾回收(GC),Old GC则是老年代的垃圾回收,而Full GC则是对年轻代、老年代和永久代进行的整体垃圾回收。另外,有一种常见的说法是,在执行Old GC的时候,通常会伴随着一次Young GC。

2024-05-22 07:15:00 7

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-05-21 08:01:22 379

原创 25、Java高手面试技巧:从容应对Young GC和Full GC提问

之前我们提到,当老年代被填满后,会触发针对老年代的垃圾回收,这种垃圾回收被称为Full GC。在阅读之前的文章时,大家可能会注意到,文章中出现了很多名词:Minor GC、Young GC、Full GC、Old CG、Major GC和Mixed GC。但是,有可能会出现你的理解和面试官的理解存在差异,所以在面试的时候回答此类问题,一定要对一个名词可能有的多种不同的理解都给出说明,避免双方理解的歧义。当新生代的Eden区域被填满时,就会触发针对该代的垃圾回收,即所谓的Minor GC或Young GC。

2024-05-21 07:15:00 5

原创 24、系统无响应?直击JVM GC如何成为线上服务的致命弱点!

如果在一次新生代GC之后,发现Survivor区域中不同年龄的对象的总大小超过了该区域的50%,例如年龄为1、2和3的对象的大小总和超过了Survivor区域的50%,那么年龄为3及以上的对象将被移动到老年代。基于G1的Region内存划分原理,运行一段时间后,例如,可以对2G内存的Region进行垃圾回收,此时,系统只会停顿20毫秒,然后清除2G的内存空间,释放部分内存,之后,系统还可以继续运行。在这种情况下,为了腾出空间,我们需要清理年轻代中的垃圾对象,即那些没有被GC Roots引用的对象。

2024-05-20 07:15:00 343

原创 23、案例解析:教育平台如何利用G1垃圾回收器实现性能的巨幅飞跃?

这可能会让人疑惑,是否意味着我们需要不断地为新生代分配更多的Region,直到新生代占据了60%的Region,无法再分配更多的Region,然后才会触发新生代的GC?然而,大家需要知道的是,G1垃圾收集器的运行原理就是这样的。在当前的情境下,G1垃圾回收器可能会这样考虑:如果我现在触发一次新生代的垃圾回收,那么仅仅需要几十毫秒就能回收200MB的内存,这最多只会让系统暂停几十毫秒,远远低于我的主人设定的"-XX:MaxGCPauseMills"参数限制的200毫秒的停顿时间。以及动态年龄判定规则。

2024-05-17 07:15:00 7

原创 22、掌握G1垃圾回收器,让你的在线服务飞起来!

默认值是8次,意味着最后一个阶段,先停止系统运行,混合回收一些Region,再恢复系统运行,接着再次禁止系统运行,混合回收一些Region,反复8次。例如,先停止工作,执行一次混合回收回收掉一些Region,接着恢复系统运行,然后再次停止系统运行,再执行一次混合回收回收掉一些Region。在新生代的垃圾回收过程中,我们采用了复制算法。这是因为,如果我们停止系统一段时间,回收一部分Region,然后让系统运行一段时间,再次停止系统,再回收一部分Region,这样可以有效地避免系统的停顿时间过长。

2024-05-16 07:15:00 7

原创 21、G1分代回收究竟如何让传统方法黯然失色?

在G1垃圾收集器中,尽管内存被划分为多个Region,但实际上仍然存在新生代和老年代的区分。在新生代中,还进一步分为Eden区和Survivor区。因此,我们会发现之前学到的许多技术原理在G1时代仍然适用。大家可能还记得之前提到过的一个关于新生代的参数:“-XX:SurvivorRatio=8”。这意味着我们仍然可以区分出属于新生代的Region中哪些是Eden区,哪些是Survivor区。

2024-05-15 07:15:00 12

原创 Mybatis中collection和association的区别

在MyBatis中,如果我们想对一对一或者一对多的多表进行查询,该如何处理呢?处理一对一、多对一处理一对多。

2024-05-14 07:59:15 140

原创 20、深入G1垃圾回收器,Java高效内存清理技巧大公开!

本文将为您详细介绍G1垃圾回收器的设计思想。G1垃圾回收器是一种基于分代的垃场回收器,它的核心设计思想是将Java堆划分为多个独立的Region(区域)。首先,G1垃圾回收器将Java堆分为多个大小相等的Region,每个Region都可以独立地进行垃圾回收。这些Region被进一步划分为两个类型:新生代和老年代。新生代用于存储新生成的对象,而老年代用于存储长时间存活的对象。在G1垃圾回收器的运行过程中,Region会根据需要动态地从新生代转移到老年代。

2024-05-14 07:58:18 14

原创 19、案例实战:上亿请求轻松应对,老年代垃圾回收参数调整技巧大公开

另外,当执行Minor GC后,可能会有一部分对象存活下来,如果这些对象的总大小超过200MB,无法放入Survivor区,或者一次性占用超过Survivor区的50%,那么这些对象就会进入老年代。因此,通过优化新生代的内存管理,我们可以推断出,在大型促销活动的高峰期内,可能每小时只会触发一次Full GC,而在高峰期过后,随着订单系统的稳定运行,可能需要几个小时才会触发一次Full GC。然而,我们面临着一个显著的问题,那就是在CMS垃圾回收过程中,尤其是在并发清理阶段,系统程序可以同时运行。

2024-05-13 07:55:36 23

原创 18、案例实战:上亿请求轻松应对,看年轻代垃圾回收如何助力电商性能飞跃!

但是问题就在于需要对JVM有限的内存资源进行合理的分配和优化,包括对垃圾回收进行合理的优化,让JVM的GC次数尽可能最少,而且尽量避免Full GC,这样可以尽可能减少JVM的GC对高峰期的系统性能的影响。在Minor GC执行之后,那些仍然存活的对象,其大小约在100MB左右,会被移动到S1区域,如下图。此外,即使在Minor GC后的对象少于150MB,但如果是100MB的对象进入Survivor区,由于这是一批同龄的对象,它们会直接超过Survivor区空间的50%,这也可能导致对象进入老年代。

2024-05-13 07:55:15 752

原创 17、线上系统中垃圾回收参数的精准调校指南

在JDK 1.6中,该参数的默认值是92%,即当老年代使用了92%的空间时,会自动触发CMS垃圾回收,保留8%的空间供并发回收期间新对象的分配。尽管这些对象已经变成了垃圾,但CMS垃圾回收器只能回收之前标记过的对象,而不会立即回收这些“浮动垃圾”,它们将在下一次GC时被处理。尽管它能够在进行垃圾回收的同时,让系统继续执行其他任务,但在并发标记和并发清理这两个最耗费时间的阶段,垃圾回收线程与系统工作线程的并行运行,可能会导致有限的CPU资源被垃圾回收线程占用一部分。然而,这种方法会导致大量的内存碎片产生。

2024-05-10 08:04:19 21

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-05-09 08:10:55 289

原创 16、CMS垃圾回收器的秘密工作流程

在这个过程中,可能会产生新的存活对象,也可能会导致一些原本的存活对象失去引用,从而成为垃圾对象。总之就是要进行Full GC了,此时所谓的标记-清理算法,其实就是我们之前给大家讲过的一个算法,先通过追踪GC Roots的方法,看看各个对象是否被GC Roots给引用了,如果是的话,那就是存活对象,否则就是垃圾对象。一般老年代我们选择的垃圾回收器是CMS,它采用的是标记清理算法,其实非常简单,就是先用之前文章里讲过的标记方法去标记出哪些对象是垃圾对象,然后就把这些垃圾对象清理掉,如下图所示。

2024-05-09 08:10:27 426

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-05-08 08:24:45 250

原创 15、详解ParNew垃圾回收器的工作原理

这篇文章篇幅不长,主要介绍一下ParNew垃圾回收器,其实垃圾回收器的工作原理之前上周就全部介绍过了,本文主要就是对ParNew垃圾回收器本身的多线程原理和相关的参数做一些说明。

2024-05-08 08:24:18 104

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-05-07 08:13:46 248

原创 14、深入探讨JVM中令人头痛的‘Stop the World’难题

这样的话,就可以让我们的系统暂停运行,然后不再创建新的对象,同时让垃圾回收线程尽快完成垃圾回收的工作,就是标记和转移Eden以及Survivor2的存活对象到Survivor1中去,然后尽快一次性回收掉Eden和Survivor2中的垃圾对象,如下图。在这其中,Serial垃圾回收器是一种使用单个线程进行垃圾回收的方式,它会导致系统工作线程在回收过程中暂停,因此,在服务器程序中,我们很少采用这种方式。其中,之前提到的CMS垃圾回收器专门负责老年代的垃圾回收,它拥有一套独特的机制和原理,相对复杂。

2024-05-07 08:13:22 21

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-05-06 08:22:52 225

原创 13、揭秘JVM垃圾回收器:面试必备知识,你掌握了吗?

让我们首先简要概述这个系统的案例背景。这是一个数据计算系统,它具备处理上亿条数据的强大能力。为了帮助大家更好地集中注意力理解这个系统在生产环境中与JVM相关的部分,我们会对系统本身的描述进行简化。简而言之,这个系统的主要功能是不断地从MySQL数据库以及其他数据源中提取大量数据,然后加载到其自身的JVM内存中进行计算处理,如下图所示。这个数据计算系统会持续地通过SQL语句和其他方式从各种数据存储中提取数据到内存中进行计算。在生产环境中,每分钟大约需要执行500次数据提取和计算的任务。

2024-05-06 08:22:23 451 1

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-04-30 08:11:29 233

原创 12、揭秘大厂面试秘籍:掌握年轻代与老年代的垃圾回收策略!

简单来说,触发老年代垃圾回收的时机通常有两个:一个是在Minor GC之前,通过一系列检查发现在Minor GC之后可能有大量的对象需要进入老年代,而老年代的空间无法容纳,此时需要提前触发Full GC,然后再进行Minor GC;然而,如果在执行Minor GC之前,我们发现老年代的可用内存已经小于新生代的全部对象大小,那么在Minor GC之后,新生代的对象全部存活并需要转移到老年代时,老年代的可用空间可能会不足。假设在图中的Survivor2区有两个对象,这两个对象的年岑相同,均为2岁。

2024-04-30 08:10:54 119

原创 11、垃圾回收哪家强?揭秘JVM中的核心回收算法与性能之争!

首先,它会导致内存浪费。然而,如果这个区域的内存碎片过多,你可能会发现,虽然这些碎片的总和可能足够大,但是由于它们都是分散的,你找不到一块完整且足够大的内存空间来分配给新的对象。因此,大家可以想象,在一次新生代垃圾回收之后,可能有99%的对象都被清理掉了,只有1%的对象存活下来,这些可能是长期存活的对象,或者是还未使用完的对象。请大家不要着急,我们将在接下来的文章中分析这些新生代可能出现的各种“万一”情况,以及新生代的对象是如何转移到老年代的,然后探讨老年代是如何触发垃圾回收的,以及垃圾回收的具体算法。

2024-04-29 09:14:28 87

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-04-26 08:09:10 334

原创 10、了解JVM判断对象可回收的神秘法则!

然而,如果你在执行垃圾回收后发现可用的内存空间仍然不足以存放新的对象,并且内存几乎要溢出时,垃圾回收器将会选择回收这些被软引用关联的对象。这个方法会在垃圾收集器准备回收对象的内存之前被调用,如果在这个最后机会中,对象能够重新获得GC Roots的引用,那么它就可以避免被回收。在Java中,当一个对象被标记为垃圾回收时,如果该对象重写了Object类中的finalize()方法,那么在垃圾回收之前,会先尝试调用这个对象的finalize()方法。这个机制的作用是回收那些不再被引用的对象,从而释放内存空间。

2024-04-26 08:08:36 19

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-04-25 08:02:24 212

原创 9、案例实战【处理百万级交易无压力】:JVM栈内存与永久代大小又该如何设置?

本文通过一个支付系统的案例来阐述,当系统内存设置过小,遭遇突发的巨大流量压力时,可能会引发性能抖动,甚至导致严重的系统问题。在这个案例中,由于支付系统的内存设置过小,当系统突然遭遇巨大的流量压力时,会引发性能抖动。这种性能抖动会导致大量的对象在新生代被引用,但却无法被及时回收。这些对象会持续进入老年代,导致老年代的内存频繁被占满。当老年代的内存频繁被占满时,垃圾回收机制就会被频繁触发。这不仅会消耗大量的系统资源,还可能导致系统性能下降,甚至引发系统崩溃。

2024-04-25 08:01:34 25

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-04-24 07:28:12 269

原创 8、案例实战【处理百万级交易无压力】:支付系统JVM调优实战指南

本文从支付系统的实际案例入手,详细分析了在日百万交易压力下,部署3台机器时的性能表现。我们计算了每台机器每秒需要处理的订单数量,每笔订单的处理时间,以及每秒钟JVM所需的内存空间。通过横向扩展,我们可以预估整个系统每秒所需的内存空间。进一步地,我们根据数据模型推算出,在不同机器配置下,新生代的内存空间大小。接着,我们分析在不同新生代大小下,触发Minor GC的频率。

2024-04-24 07:27:39 21

原创 小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地的管理你的设备!

2024-04-23 08:00:22 402

原创 7、线上系统部署时如何设置JVM内存大小?

这其中,大部分对象都是一些短生命周期的对象,它们在被使用一段时间后,便不再被任何其他对象引用,因此这些对象实际上变成了垃圾对象。然而,由于内存资源是有限的,当新生代区的可用内存不足时,就会触发一次名为Minor GC的垃圾回收机制。这两个参数,是用来限定Java堆内存的总大小的,如下图。首先右击你写好的一个带main()方法的类,他有一个菜单栏,里面有一个“Debug as”选项,鼠标移动进入,会看到一个“Debug Configuration”选项,接着会看到下面的面板。

2024-04-23 07:45:00 32

原创 6、掌握对象在内存中的分配与变迁

比如上图中,那个“UserManager”实例对象,其实就是没有人引用的垃圾对象,此时就会当机立断,把“UserManager”实例对象给回收掉,腾出更多的内存空间,然后放一个新的对象到新生代里去。垃圾回收的过程就是扫描并识别出那些不再被引用,即已经变为“垃圾”的对象,然后进行回收,从而腾出大量的内存空间,以供后续的对象分配。在这个阶段,如果我们事先为新生代分配的内存空间几乎被全部对象占据,那么当我们的代码需要继续运行并在新生代中分配一个新的对象时,我们将面临一个问题:新生代的内存空间不足。

2024-04-22 08:06:10 99

原创 5、分代模型中的年轻代、老年代和永久代

在JVM中,有一个区域被称为永久代,它实际上是我们之前提到过的方法区。简单来说,方法区就是用于存储类信息的地方,而这个永久代正是指的就是这个方法区。对于这个概念,现在无需过于深入地理解,因为当我们在后续的讨论中涉及到相关的内容时,会再进行详细的解释。所以,现在你只需要知道,永久代,或者方法区,是用于存储类信息的即可。

2024-04-22 08:05:57 21

原创 4、深入理解JVM的垃圾回收原理

我们需要明白,内存资源是有限的。我们在JVM的Java堆内存中创建的对象,实际上也会占用JVM的内存资源,比如“UserManager”实例对象,它会占用500字节的内存。如果一个实例对象没有被任何方法的局部变量引用,也没有被任何类的静态变量(包括常量等)引用,那么垃圾回收线程会将其视为不再需要的“UserManager”实例对象,并将其从内存中清除,释放其所占用的内存资源。总结来说,JVM中的“垃圾”指的是无用的对象,而“垃圾回收”则是JVM自动清理这些无用对象,释放内存资源的机制。

2024-04-22 08:05:43 127

原创 3、探索JVM内存区域的神秘用途

在深入了解了JVM的类加载机制之后,我们来探讨一下JVM的内存区域划分。这一主题是互联网公司面试中常会涉及到的知识点,因此对求职者来说,掌握其细节显得尤为重要。

2024-04-22 08:05:26 796

原创 2、JVM 类加载机制深度剖析

除了上面那几种之外,还可以自定义类加载器,去根据你自己的需求加载你的类。

2024-04-22 08:05:09 16

原创 1、揭开程序运行的神秘面纱

首先,假设我们已经编写了一些Java代码,这些代码通常会包含许多以“.java”为后缀的源文件,例如Hello.java,Test.java等。在我们编写好的“.java”代码进行打包的过程中,通常会将代码编译成以“.class”为后缀的字节码文件,例如“Hello.class”,“Test.class”。首先,JVM需要将这些“.class”文件中包含的各种类加载进来,这些“.class”文件实际上是我们编写的每一个类。接下来,JVM将利用其内置的字节码执行引擎来运行已经加载到内存中的我们编写的类。

2024-04-22 08:04:51 138

原创 Java工程师常见面试题:Java基础(二)

当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去的对象的hashcode值,如果table中没有改hashcode值,则直接存入,如果有,就调用equals方法与新元素进行比较,相同就不存了,不同就存入。这意味着你不能创建String类的子类。由于 new String(“i”) 会在堆内存中创建新的对象,这可能会导致内存使用的增加,并且在某些情况下可能会降低性能(例如,当大量创建相同的字符串对象时)。

2024-04-17 08:16:18 588

MySQL高频面试题及答案

MySQL高频面试题,适用于将要参加软件开发相关岗位面试的同学,在掌握MySQL相关知识的同时,能够更好的应对面试,获取更好的机会

2024-02-23

Mybatis常见面试题

Mybatis常见面试题,适用于将要参加Java开发工程师相关岗位的同学,在巩固Mybatis相关基础知识的同时,能够更好的应对面试,获取更好的机会

2024-02-23

Java集合、JVM面试题

Java集合、JVM面试题,包括Java集合、JVM内存模型、垃圾回收机制、JVM调优、异常处理等相关面试题 适用于Java编程的初学者,加强自身对于Java集合、JVM、异常处理等方面的知识储备,更好的应对面试机会

2024-02-22

Java基础常见面试题

Java基础常见面试题,包含Java概述、基本语法、面向对象、IO流、反射、常见API等方面的常见面试题。 适用于Java编程的初学者,能够更好的掌握Java编程的基础知识,在提高自身技术水平的同时,也能更好的准备面试,获得更好的机会

2024-02-22

Java并发编程最全面试题

Java并发编程最全面试题,包括并发编程基础知识、并发理论、线程池、并发容器、并发队列、并发工具类等方面的常见面试题。例如线程池的概念、优缺点、创建方式、线程池原理等等。 本文档适用于将要参加Java开发相关岗位面试、或者想要提高Java并发编程相关技能的同学,更好的理解和掌握Java并发编程的相关知识,更好的应对面试机会和挑战

2024-02-22

Java 工程师成神之路

Java 工程师成神之路,包括Java相关的基础知识及思维导图 适用于想要学习Java编程语言或者想要提升自身技术水平的同学,更好的掌握Java相关基础知识,不断的提升自己,应对未来更好的挑战

2024-02-22

Git基础知识及面试题

包括Git相关的基础知识、代码托管、Git相关命令、如何在IDEA中使用Git、以及相关面试题 适用于将要参加Java开发工程师相关岗位的同学,熟悉相关知识点、更好的应对相关面试、获得更好的机会

2024-02-22

ElasticSearch面试题

ElasticSearch面试题,包括ElasticSearch基础知识、调优、倒排索引、集群选举、 索引文档的过程、lucence 内部结构、更新和删除文档的过程、电商搜索的整体技术架构等相关知识点。 适用于将要参加Java开发工程师相关岗位的同学,提前熟悉ElasticSearch相关知识点,更好的应对面试,获得更好的机会

2024-02-22

Dubbo知识及面试题

包含Dubbo相关的基础知识、架构设计、分布式框架、通信协议、SPI以及相关面试题 适用于将要参加Java开发工程师相关岗位的同学,熟悉相关知识点、更好的应对面试

2024-02-22

BIO,NIO,AIO,Netty面试题

包含BIO、NIO、AIO及Netty等知识点的面试题及答案 适合将要参加Java开发工程师岗位面试的同学,熟悉相关知识点,更好的应对面试

2024-02-22

300页的Java核心面试知识整理(带答案,超全)

包含Java面试核心知识点,包括Java基础、JVM、spring、数据库、微服务、中间件等相关知识。 适用于要参加Java软件开发岗位面试的同学,在面试之前熟悉相关知识点,更好的应对面试

2024-02-22

Java并发编程学些手册

Java并发编程学些手册,包括并发编程基础、volatile关键字、synchronized关键字、final关键字、对象的共享、同步工具类、线程池、锁、多线程实战等部分的详细介绍和解读。 无论你是面试,还是进阶,这些文章的内容绝对不会让你失望!

2024-01-31

Java集合框架面试必备八股文

Java集合框架面试必备八股文,包括List、Map、Set等集合框架必备知识点及面试题。 适用于初级开发工程师,更好的掌握集合相关的知识点,顺利通过面试

2024-01-30

Java JVM面试必备八股文

Java JVM面试必备八股文,包括JVM相关基础知识、垃圾回收、类加载机制等相关知识点以及面试题。 适用于接下来要参加Java开发工程师岗位面试的同学,更好的掌握JVM相关知识点,顺利通过面试

2024-01-30

MySQL面试题必备八股文

MySQL面试题必备八股文,包括MySQL基础知识,存储引擎、日志、索引、事务、高可用等相关知识点的基本介绍和高级用法。 适用于接下来要参加软件开发岗位面试的同学,更好的掌握MySQL相关的知识点以及常见的面试题,从而更好的应对面试。

2024-01-30

Java并发编程面试题八股文

Java并发编程面试题八股文,包括并发编程基本概念、锁、并发工具类、线程池等基本概念和高级用法。同时也介绍了上述知识点在面试过程中常见的问题及答案。 本材料适用于接下来要参加Java开发工程师岗位的面试同学,可以帮助更好的掌握并发编程相关的知识点,从而更加顺利的通过面试

2024-01-30

Spring面试必备八股文

Spring面试必备八股文,包含Spring相关基础知识以及高级用法,适用于要面试Java开发岗位的同学,可以在面试前复习一下Spring相关的知识点

2024-01-30

RocketMQ面试必须会的八股文

RocketMQ面试必须会的八股文,包括为什么要用MQ、如何选型、RocketMQ使用过程中遇到的问题,例如顺序消息、延迟消息、消息可靠性、消息堆积等问题

2024-01-30

Java最新面试题详解

本资源包含Java面试题及详解,包含Java基础、JVM、多线程&并发、Spring、MyBatis、SpringBoot、MySQL、Spring Cloud、Dubbo、Nginx、MQ、Linux、ZooKeeper、Redis、分布式、网络、设计模式、ES等相关技术的常见面试题和答案

2024-01-30

Redis必备基础知识

本资源包含redis的学习笔记,详细记录了学习和使用Redis必须要了解的各种知识点,包括redis的安装、数据类型、持久化、主从复制、集群搭建、如何整合redis,以及redis应用的各种问题的解决方案等等

2024-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除