首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java
像素旋转
创建于2022-08-27
订阅专栏
太多了。。。
等 5 人订阅
共18篇文章
创建于2022-08-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
线程池及ThreadPoolExecutor源码分析
本篇我们从线程池出发,讲了线程池的基本实现原理和池化思想。接着我们详细分析了ThreadPoolExecutor包括它的部分源码,这个类是Java实现线程池的核心。
ThreadLocal及源码分析
本章我们介绍了ThreadLocal用于实现线程安全靠的是实现了访问变量之间的线程隔离,并且从源码角度分析了它是如何实现线程隔离的,最后我们还介绍了ThreadLocal的基本使用,和应用场景
CAS和Unsafe类
本章我们从乐观锁和悲观锁的介绍出发,然后概述了CAS,接着指出Unsafe类是Java的CAS操作实现的底层。最后我们还分析了Unsafe类的源码,知道了它确实是Java中不可或缺的底层类。
ReentrantLock及源码分析
本篇我们主要基于ReentrantLock的源码来分析了它是一个什么样的锁。并且在最后通过和synchronized加锁的例子进行类比,了解了ReentrantLock该如何使用。
绕不开的并发编程--volatile原理
本章我们详细的介绍了volatile关键字,这么一个开销小于synchronized却能为我们提供并发安全的可见性和有序性的关键字。相信学习了本篇文章后能对写出并发安全的程序有所帮助。
JITWatch很折腾?有这篇文章在可以放心
大多数情况下,通过诸如javap等反编译工具来查看源码的字节码已经能够满足我们的日常需求。 但是不排除在有些特定场景下,我们需要通过反汇编来查看相应的汇编指令。这里我们使用JITWatch工具。
绕不开的并发编程--synchronized锁优化
本篇我们针对synchronized关键字底层对锁的优化,依次介绍了自旋锁优化,偏向锁,轻量级锁等等锁优化机制。相信通过本篇的学习大家可以对并发编程中的锁有一个比较全面的了解。
绕不过的并发编程--synchronized原理
本篇文章我们介绍了synchronized的使用,并且重点的解释了synchronized加锁和释放锁的原理,并且从monitor源码分析了线程获取对象锁的过程。
绕不过的并发编程--Java线程API
本篇文章我们会结合「鱼鱼」和「摸摸」上班摸鱼的例子讲解Java线程相关 API。相信通过本章的学习大家可以对线程 API 形成足够的印象。
从零开始的JVM学习--类加载机制
Class文件需要加载到JVM中之后才能运行和使用。而「类加载机制」就是虚拟机加载Class文件的方式。 JVM的启动是通过引导类加载器创建一个初始类来完成的。
从零开始的JVM学习--Java运行时数据区域
Java内存区域也可以叫做Java运行时数据区域是指 JVM 运行时会把它管理的内存划分成若干个不同的数据区域 ,简单的说就是不同的数据放在不同的地方。
从零开始的JVM学习--GC
Java语言的一个显著的特点就是引入了「垃圾回收机制」,使C++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。
从零开始的JVM学习--垃圾收集器
如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现或者说是内存回收的执行者。 垃圾收集器本身并没有优劣之分,我们需要做的是根据具体场景选择合适的垃圾收集器!
从零开始的JVM学习--类文件结构
JVM 可以理解的代码就叫「字节码」(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。 通过「字节码」的方式,在一定程度上解决了传统解释型语言执行效率低的问题。
从零开始的JVM学习--Java内存模型(JMM)
JMM(Java Memory Model)是Java内存模型,用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。
必须要学习的源码2--ArrayList
ArrayList 实现了 List 接口,是一种变长的集合类,基于定长数组实现,它允许所有元素,包括null。本文将重点分析ArrayList的源码,并且对比Vector,LinkedList
必须要学习的源码--HashMap
HashMap 是Java日常开发常用的一个集合类。Map集合即Key-Value的集合,前面加个Hash,即散列,无序的。所以HashMap是一个用于存储Key-Value键值对的无序集合。
带你从零手写线程池
自定义线程池 为什么要用到线程池? 线程是一种系统资源,如果是高并发的情况下,一下子来了很多的任务,我为每个任务都创建一个新的线程,那这样压力是很大的。 并且降低我们的性能。所以使用线程池吧!!