首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java
卡白
创建于2024-04-25
订阅专栏
Java细节
等 3 人订阅
共39篇文章
创建于2024-04-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
🚀💥最新对线面试官,线下试一试,干!!!
现场面试提问记录 static关键字? 单例模式懒加载?会有什么问题?为什么要static修饰成员变量和方法?如何控制并发?为什么要二次判断是否创建成功了?锁定的粒度?锁是重量级操作,使用锁合理吗?
🚀💥最新面试题,JVM突然崩溃了,线程池队列的任务会丢失,设计持久化方案
周一闲来无事,如期接到了面试电话,面试官小哥哥收了收困意,试探性地确定了下,是否是要面试的我。我言辞犀利,准确肯定地回答,确保了本次面试没有什么差错。 面试官: 看你说你对JAVA很熟悉,常规基础问题
探索Java与Spring生态的进化:JDK、Spring Boot、Spring Cloud版本全揭秘
本文将深入对比JDK、Spring Boot和Spring Cloud的主要版本变化,解析每个版本中的新增功能、特性和移除功能,辅以真实的代码示例,带您全面了解Java与Spring生态系统的演进。
kotlin 基本api
关键字 fun:定义函数。 val:定义只读变量,相当于 Java 中的 final。 var:定义可变变量。 if、else:条件语句。 when:类似于 Java 中的 switch,但更强大。
spring的生命周期是怎么样的
Spring框架的生命周期主要围绕Bean的管理展开,涉及Bean的创建、初始化、使用和销毁。以下是Spring Bean的详细生命周期: 1. **Bean定义**: - 在配置文件(如X
Parallel GC 垃圾回收器配置
在4核8GB的机器上,使用并行垃圾收集器(Parallel GC),并固定年轻代大小,同时预留一部分内存给操作系统,可以通过设置以下JVM启动参数来实现。 假设预留2GB内存给操作系统,那么JVM可以
Serial GC垃圾回收器配置
在2核4GB的机器上,使用串行垃圾回收器(Serial GC)进行配置,可以通过设置JVM启动参数来实现。串行垃圾收集器适用于单线程环境或资源受限的环境,因为它使用单个线程进行GC操作,适合简单的应用
parnew +cms的垃圾收集器的组合
在4核8GB的机器上,使用ParNew和CMS(Concurrent Mark-Sweep)垃圾收集器组合,并固定年轻代大小,同时考虑预留部分内存给操作系统,可以通过设置以下JVM启动参数来实现。 假
JVM类加载
Java虚拟机(JVM)的类加载过程是将类文件(.class)加载到内存中,并将其转化为Class对象的过程。这个过程由类加载器(ClassLoader)负责,分为以下几个阶段: 加载(Loading
GC Roots 可达性分析法
可达性分析法的数据结构通常采用图(Graph)的数据结构表示对象之间的引用关系。在这个图中,对象表示为节点,引用关系表示为边。 可达性分析法的数据结构 以下是简要描述: 对象节点(Object Nod
OOM的可能导致情况
1. 对象大量创建且无法被回收 场景:程序在短时间内大量创建对象,但这些对象无法及时被垃圾回收器回收,最终导致堆内存耗尽。 原因: 大量对象创建。 对象被某些集合(如List、Map)持有强引用,无法
GC频率
在传统的垃圾回收算法中,年轻代的大小通常是固定的,或者由特定参数配置,并且垃圾回收频率直接受到年轻代大小和对象分配速率的影响。以下是对几种传统垃圾回收算法及其对年轻代大小和GC频率影响的说明: 1.
java服务内,哪种情况会导致内存泄漏
内存泄漏(Memory Leak)指的是程序中存在的一些对象无法被垃圾回收器回收,从而占用内存空间,导致内存使用量不断增加,最终可能导致内存不足或程序崩溃。在Java中,虽然有垃圾回收机制,但内存泄漏
Guava的限流类使用
Guava提供了一个简单的限流工具类RateLimiter,可以用来实现令牌桶算法。下面是一个使用Guava RateLimiter实现的简单示例: 在这个示例中,RateLimiter.create
限流算法实现
限流算法用于控制系统的访问速率,以保护系统免受过载或恶意攻击的影响。以下是一些常见的限流算法: 固定窗口计数器(Fixed Window Counter):将请求按固定时间窗口进行计数,当请求超过阈值
空间换时间,预分配相比动态分配,提高了性能吗
预分配相比动态分配内存通常可以提高性能,但也取决于具体的情况和应用场景。 1. **空间和时间开销**:预分配内存可以减少动态分配内存时的空间和时间开销。动态分配内存可能需要搜索合适的空闲内存块并进
可以用连续内存实现链表吗
虽然链表的常见实现方式是通过动态分配内存来创建节点,并使用指针将这些节点连接起来,但理论上是可以使用连续的内存来实现链表的。 一种可能的方式是使用数组来模拟链表的结构。在这种实现中,可以预先申请一个
数组的实现是内存中申请的连续一块内存吗
是的,数组的实现通常是在内存中申请一块连续的内存空间来存储元素。数组中的每个元素都存储在内存中相邻的位置上,可以通过索引来访问每个元素。由于内存中的地址是连续的,因此数组具有随机访问元素的特性,可以在
二叉树实现的容器如何扩容
对于基于二叉树实现的容器,通常并不会显式地进行扩容操作,因为二叉树的节点是根据需要动态创建的,而不是预先分配的一定数量。当向二叉树插入新元素时,树的节点会根据需要动态增长以适应新元素的加入。 在二叉
链表实现的容器怎么扩容
链表实现的容器在扩容时不需要像数组一样重新分配内存空间。链表的特点是动态分配节点,因此它的扩容过程通常涉及以下步骤: 1. **遍历到链表尾部**:首先,需要遍历整个链表,直到找到链表的尾部节点。
下一页