首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
TimberLiu
掘友等级
developer
Java
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
19
文章 16
沸点 3
赞
19
返回
|
搜索文章
最新
热门
深入理解 ReentrantLock
ReentrantLock 是一种可重入锁,它指的是一个线程能够对资源重复加锁。ReentrantLock 与 synchronized 类似,能够保证解决线程安全问题,但是却提供了比 synchronized 更强大、灵活的机制,例如可中断式的获取锁、可定时的获取锁等。 另外…
Lock 接口与 AQS 同步器
在 Java5 之前,只能使用 synchronized 关键字来实现锁。它使用起来比较简单,但是有一些局限性: 无法在请求获取一个锁时等待一段时间。 而在 Java5 中,并发包中增加了 Lock 接口及其实现类,它的功能与 synchronized 类似,需要进行显示地获取…
深入分析 synchronized 关键字
synchronized 关键字提供了一种独占式的加锁方式,用来控制多个线程对共享资源的互斥访问。它可以保证在同一时刻只有一个线程在执行该段代码,同时它还可以保证共享变量的内存可见性。 互斥性:同一时刻只允许一个线程持有某个对象锁,一次实现对共享资源的互斥访问。 可见性:确保在…
Java 内存模型
编译器优化指令执行次序,使得缓存能得到更加充分的利用。 虽然高速缓存很好地解决了处理器与内存的速度矛盾,但是又出现了一个新的问题。在多核处理机中,每个处理器都有自己的高速缓存,它们共享同一主内存。当多个处理器的任务涉及到同一块主内存区域时,可能导致缓存的数据不一致的情况,这就是…
深入理解 JVM 之 垃圾收集器
上一篇文章中学习了 JVM 的垃圾回收机制,和内存分配和回收策略。不过这都是一些理论知识,这篇文章中会学习一下 HotSpot 虚拟机中的垃圾收集器,这都是垃圾回收理论的具体实现。 HotSpot 虚拟机中有多种收集器,不同的收集器特点也不同,各年代使用的收集器也可以根据应用的…
深入理解 JVM 之 垃圾回收机制
虽然内存的分配和回收技术已相当成熟,但如果需要排查内存溢出、内存泄露问题,或者要求高并发、高性能时,就需要对垃圾的回收进行监控和调节,以更好优化系统提高性能。 Java 内存结构中,程序计数器、虚拟机栈、本地方法栈等随着线程而生,随线程而灭,不需要考虑内存回收问题。而 Java…
深入理解 JVM 之 JVM 内存结构
Java 虚拟机在运行 Java 程序 时,把它所管理的内存划分为若干个不同的数据区域,主要包括以下五个部分:程序计数器、Java 堆、Java 虚拟机栈、方法区和本地方法栈。 程序计数器是当前线程所执行的字节码的行号指示器,它会指出下一条将要执行的指令的地址,字节码解释器就是…
Java集合(6)之 HashMap 源码解析
HashMap 在日常开发中非常常用,它基于哈希表实现,以 key-value 形式存储。本文通过 JDK1.8 的源码,分析一下 HashMap 的内部结构和实现原理。 在 JDK1.7 之前,HashMap 底层由数组 + 链表实现,也就是链表散列。当向 HashMap 中…
Java集合(5)之 List 总结
前面两篇文章对 ArrayList、LinkedList 的源码进行了分析,这篇文章对 List 做个简单的总结。 List 以线性方式存储元素,其中允许存放重复元素,元素有序。主要有以下几个实现类: 数组可以存储基本类型和对象;而 ArrayList 只能存储对象,需要进行拆…
Java集合(4)之 LinkedList 源码解析
LinkedList 与 ArrayList 同样实现了 List 接口,但它基于双向链表实现,插入和删除操作效率较高,而随机访问效率较低。本文通过源码来分析一下 LinkedList 的实现原理,注意事项,使用场景等,以便能更好地使用它(JDK 版本为 1.8)。 由 ite…
下一页
个人成就
文章被点赞
167
文章被阅读
45,890
掘力值
1,628
关注了
9
关注者
145
收藏集
0
关注标签
16
加入于
2018-11-01