首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java基础知识
订阅
贪吃的南瓜
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
HashSet 是如何保证元素不重复的?
HashSet 实现了 Set 接口,由哈希表(实际是 HashMap)提供支持。HashSet 不保证集合的迭代顺序,但允许插入 null 值。也就是说 HashSet 不能保证元素插入顺序和迭代顺
红黑树、B树、B+树各自适用的场景
1. 磁盘基础知识 分页: 现代操作系统都使用虚拟内存来印射到物理内存,内存大小有限且价格昂贵,所以数据的持久化是在磁盘上。虚拟内存、物理内存、磁盘都使用页作为内存读取的最小单位。一般一页为4KB(8
线程池的拒绝策略以及拒绝策略的重写
Java线程池,是典型的池化思想的产物,类似的还有数据库的连接池、redis的连接池等。池化思想,就是在初始的时候去申请资源,创建一批可使用的连接,在处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其他线程执行完毕,再…
线程池的种类
一般创建简单的线程池都是通过Executors这个类的静态方法创建的,但是可能大公司要求根据ThreadPoolExecutor 去创建线程池:因为使用ThreadPoolExecutor 更加明确线程池的运行规则,规避资源耗尽的风险。线程池管理器(ThreadPoolManag...
类加载过程和对象创建过程
当Java程序需要使用某个类时,如果该类还未被加载到内存中,JVM会通过加载、链接(验证、准备、解析)、初始化三个步骤来对类进行初始化。 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2 )将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3 ) 将类的…
基础篇:详解锁原理,synchronized、volatile+cas底层实现
悲观锁,每次去请求数据的时候,都认为数据会被抢占更新(悲观的想法);所以每次操作数据时都要先加上锁,其他线程修改数据时就要等待获取锁。适用于写多读少的场景,synchronized就是一种悲观锁 在请求数据时,觉得无人抢占修改。等真正更新数据时,才判断此期间别人有没有修改过(预…
一篇文章搞懂GC垃圾回收
小伙伴好,我是 jack xu。我们知道 JVM 调优主要调的是垃圾收集器的选择和参数的设置,所以我们对垃圾回收的知识必须要掌握了解,不然怎么调优呢,那么什么是垃圾呢,我们类比生活中的垃圾,就是不要的东西,需要清除的东西,那么第一步就是要找到垃圾,在Java中我们有两种方式。 …
ConcurrentHashMap源码精讲
哈希表 哈希表也叫散列表,这种数据结构提供了键(Key)和值(Value)的映射关系。只要给出一个key,就可以高效查找到它所匹配的value,时间复杂度接近于O(1)。如下所示: 1.7和1.8的区
强引用和弱引用的Threadlocal
从SimpleDateFormat开始 首先看一个例子,创建20个线程,线程里就干一件事,就是转换时间 运行一下,报错了 原因是什么,原因就是SimpleDateFormat是非线程安全的,点进去看一
ThreadLocal的介绍+经典应用场景
什么是ThreadLocal ThreadLocal又叫做线程局部变量,全称thread local variable,它的使用场合主要是为了解决多线程中因为数据并发产生不一致的问题。ThreadLo