首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Jdk
订阅
阿光老师
更多收藏集
微信扫码分享
微信
新浪微博
QQ
27篇文章 · 0订阅
ReentrantLock源码解析
CANCELLED:值为1,在同步队列中等待的线程等待超时或被中断,需要从同步队列中取消该Node的结点,其结点的waitStatus为CANCELLED,即结束状态,进入该状态后的结点将不会再变化。 SIGNAL:值为-1,被标识为该等待唤醒状态的后继结点,当其前继结点的线程…
Java程序员应该知道的20个有用的库
一个优秀且经验丰富的Java开发人员的特点之一是对API的广泛了解,包括JDK和第三方库。我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua Bloch建议如何使用现有的API进行开发,而不是为常用的东西写新的代码。 在…
徒手撸一个简单的IOC
Spring框架中最经典的两个就是IOC和AOP,其中IOC(Inversion of Control)是什么呢?控制反转,简单来说就是将控制实体Bean的动作交给了Spring容器进行管理。再简单点来说就是例如之前想用一个类,必须new一个,但是使用了Spring那么直接用@…
面试官问我同步容器(如Vector)的所有操作一定是线程安全的吗?我懵了!
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列等。 这个问题不知道你有没有想过,本文就来深入分析一下这个问题,一个很容易被忽略的问题。 可以看到,Vector这样的同步容器的所有公有方法全都是synchronized…
再有人问你Java内存模型是什么,就把这篇文章发给他
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。 网上有很多关于Java内存模型的文章,在《深…
阿里面试题BIO和NIO数量问题附答案和代码
答案: 因为传统的 IO 也就是 BIO 是同步线程堵塞的,所以每个连接都要分配一个专用线程来处理请求,这样 10 个连接就会创建 10 个线程去处理。而 NIO 是一种同步非阻塞的 I/O 模型,它的核心技术是多路复用,可以使用一个链接上的不同通道来处理不同的请求,所以即使有…
并发编程前传
以前在学习 C++ 关键字 volatile 的时候,看过阿里数据库大牛何登成关于 volatile 的文章《C/C++ volatile关键词深度剖析》,看的云里雾里。主要是当时没理解什么是可见性、原子性和有序性;没有理解什么是内存模型及一些规范。相信很多初学者和我一样,在学…
JAVA 拾遗 — CPU Cache 与缓存行
最近的两篇文章,介绍了我参加的中间件比赛中一些相对重要的优化,但实际上还存在很多细节优化,出于篇幅限制并未提及,在最近的博文中,我会将他们整理成独立的知识点,并归类到我的系列文章「JAVA 拾遗」中。 这问题问的和中小学试卷中的:“它们之间有区别吗?如有,请说出区别。”一样没有…
走进 JDK 之 String
今天来说说 String。 贯穿全文,你需要始终记住这句话,String 是不可变类 。其实前面说过的所有基本数据类型包装类都是不可变类,但是在 String 的源码中,不可变类 的概念体现的更加淋漓尽致。所以,在阅读 String 源码的同时,抽丝剥茧,你会对不可变类有更深的…