首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java基础
订阅
_这样啊_
更多收藏集
微信扫码分享
微信
新浪微博
QQ
52篇文章 · 0订阅
搞懂Java反射和JDK里的动态代理
1. 每一个类对应的class放在哪里? 2. 这个class里面都保存了什么 3. 如何使用? 2. 动态代理模式
Java 200+ 面试题补充 ThreadLocal 模块
本文是前文《Java 最常见的 200+ 面试题》的第一个补充模块。 ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,适用于各个线程不共享变量值的操作。 …
难以理解的AQS(上)
在一篇博客中,我们看了下CopyOnWriteArrayList的源码,不是很难,里面用到了一个可重入的排他锁: ReentrantLock,这东西看上去和Synchronized差不多,但是和Synchronized是完全不同的东西。 Synchronized锁的特性是JVM…
回归Java基础:LinkedBlockingQueue阻塞队列解析
整理了阻塞队列LinkedBlockingQueue的学习笔记,希望对大家有帮助。有哪里不正确,欢迎指出,感谢。 我们先来看看LinkedBlockingQueue的继承体系。使用IntelliJ IDEA查看类的继承关系图形 LinkedBlockingQueue实现了序列化…
常见的集合容器应当避免的坑
前不久帮同事一起 review 一个 job 执行缓慢的问题时发现不少朋友在撸码实现功能时还是有需要细节不够注意,于是便有了这篇文章。 其实在大部分情况下这都是没啥问题,无非就是循环的往 ArrayList 中写入数据而已。 但在特殊情况下,比如这里的 getData() 返回…
Java多线程之ThreadPoolExecutor和ForkJoinPool的用法
在平时的工作中,当遇到数据量比较大、程序运行较慢,需要提升程序性能时,一般会涉及到多线程。有些小伙伴对多线程的用法不是很清楚,本文主要说明一下 ThreadPoolExecutor 和 ForkJoinPool 的用法。 首先我们假设这样一个场景,有一个接口,用来计算数组的和。…
CompletableFuture 的 20 个例子
这篇博客回顾JAVA8的CompletionStageAPI以及其在JAVA库中的标准实现CompletableFuture。将会通过几个例子来展示API的各种行为。 因为CompletableFuture是CompletionInterface接口的实现,所以我们首先要了解该…
Java 200+ 面试题补充② Netty 模块
本文是前文《Java 最常见的 200+ 面试题》的第二个补充模块,第一模块为:《Java 200+ 面试题补充 ThreadLocal 模块》。 Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking …
线程池没你想的那么简单(续)
线程池基本调度功能。 线程池自动扩容缩容。 队列缓存线程。 关闭线程池。 这些功能,最后也留下了三个待实现的 features 。 执行带有返回值的线程。 这次就实现这三个特性来看看 j.u.c 中的线程池是如何实现这些需求的。 线程池中的任务执行完毕后再通知主线程做其他事情,…
JDK1.8-Stream中常用的API(流操作)
Stream是一组用来处理数组,集合的API。 不是数据结构,没有内部存储。 不支持索引访问。 支持过滤,查找,转换,汇总,聚合等操作。 Stream分为源source,中间操作,终止操作。 流的源可以是一个数组,集合,生成器方法,I/O通道等等。 一个流可以有零个或多个中间操…