java
文章平均质量分 51
架构师狂飙
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap设计思路解析
A hash table supporting full concurrency of retrievals and high expected concurrency for updates. This class obeys the same functional specification as Hashtable, and includes versions of methods corresponding to each method of Hashtable. However, even tho原创 2022-05-16 16:20:58 · 221 阅读 · 0 评论 -
java char[] string[] string转换
String转String[]String s = "abc edf ";String[] str = s.split(" ");String[]转StringString[] newStrArray = new String() {"abc", "edf"};String.join("", newStrArray);char[]转Stringchar[] c = new char[](){'a', 'b', 'c'};String s = new String(c)原创 2022-05-05 16:12:57 · 559 阅读 · 0 评论 -
一行一行源码分析清楚 AbstractQueuedSynchronizer (三)
这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。这篇,我们的关注点是 AQS 最后的部分,AQS 共享模式的使用。有前两篇文章的铺垫,剩下的源码分析将会简单很多。本文先用 CountDownLatch 将共享模式说清楚,然后顺着把其他 AQS 相关...转载 2019-08-14 15:26:47 · 100 阅读 · 0 评论 -
解读 java 并发队列 BlockingQueue
最近得空,想写篇文章好好说说 java 线程池问题,我相信很多人都一知半解的,包括我自己在仔仔细细看源码之前,也有许多的不解,甚至有些地方我一直都没有理解到位。说到线程池实现,那么就不得不涉及到各种 BlockingQueue 的实现,那么我想就 BlockingQueue 的问题和大家分享分享我了解的一些知识。本文没有像之前分析 AQS 那样一行一行源码分析了,不过还是把其中最重要和最难...转载 2019-08-14 15:30:46 · 84 阅读 · 0 评论 -
深入分析 java 8 编程语言规范:Threads and Locks
在 java 并发编程中,线程和锁永远是最重要的概念。语言规范虽然是规范描述,但是其中也有非常多的知识和最佳实践是值得学习的,相信这篇文章还是可以给很多读者提供学习参考的。本文主要是翻译 + 解释Oracle《The Java Language Specification, Java SE 8 Edition》的第17章《Threads and Locks》,原文大概30页pdf,我加入了很...转载 2019-08-14 16:07:24 · 153 阅读 · 0 评论 -
深度解读 java 线程池设计思想及源码实现
我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。本文一大重点是源码解析,同时会有少量篇幅介绍线程池设计思想以及作者 Doug Lea 实现过程中的一些巧妙用法。本文还是会一行行关键代码进行分析,目的是为了让那些自己看源码不是很理解的同学可以得到参考。线程池是非常重要的工具,如果...转载 2019-08-14 19:13:38 · 90 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不...转载 2019-08-20 20:21:13 · 126 阅读 · 0 评论 -
短链接服务系统开发
最近上了一个比较大的系统,基于消息推送的需要,花了点时间做了一个短链服务,实现思路其实很简单,这里简单介绍下实现细节,以及一些优化过程。目录:功能简单描述功能很简单,实现将长网址缩短的功能,如:为什么要转短链?因为要控制每条短信的字数,对于公司来说,短信里面的字可都是钱呀。为什么不用 t.cn,url.cn 等短链服务呢,它们生成的链接不是更短吗?是的,它们确实能实现更短的...转载 2019-08-20 21:02:41 · 146 阅读 · 0 评论 -
一行一行源码分析清楚 AbstractQueuedSynchronizer (二)
文章比较长,信息量比较大,建议在 pc 上阅读。文章标题是为了呼应前文,其实可以单独成文的,主要是希望读者看文章能系统看。本文关注以下几点内容:深入理解 ReentrantLock 公平锁和非公平锁的区别 深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 深入理解 Java 线程中断和 InterruptedException 异常...转载 2019-08-14 14:52:26 · 86 阅读 · 0 评论 -
一行一行源码分析清楚AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynch...转载 2019-08-14 14:47:10 · 119 阅读 · 0 评论 -
面试题-java语言知识
基础equals及hashcode作用、联系ThreadLocal使用场景及实现原理集合相关java中的map知识hashmap、hashtable区别。Thread-safe的hashmap有哪些。Concurrent hashmap原理。并发相关AtomicInteger, CAS, ABACAP BASE理论...原创 2019-06-03 11:51:40 · 356 阅读 · 0 评论 -
Java中类的加载顺序介绍(ClassLoader)
Java中类的加载顺序介绍(ClassLoader)1、ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异常,今天我就来总结一下这个问题。对于这个异常,它实质涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然它和我们直接打交道不多,但是对其背后的机理有一定理解...转载 2019-06-03 18:39:02 · 253 阅读 · 0 评论 -
强软弱虚---强引用、软引用、弱引用、虚引用
1、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食之...转载 2019-06-03 19:01:55 · 402 阅读 · 0 评论 -
面试题汇总
字符串倒转,时间复杂度和空间复杂度?https://leetcode.com/problemset/all/ 344题class Solution { public void reverseString(char[] c) { for (int i = 0; i < c.length / 2; i++) { c[i] = (char)...原创 2019-06-16 12:50:24 · 295 阅读 · 0 评论 -
面试题-spring
文章目录spring申明式事务实现原理是什么?spring aop的实现原理是什么?spring事务管理器实现原理,如何实现嵌套事务?spring申明式事务实现原理是什么?动态代理、PlatformTransactionManager设计逻辑spring aop的实现原理是什么?jdk动态代理、cglib两种方式的区别及原理spring事务管理器实现原理,如何实现嵌套事务?aop、通过...原创 2019-06-04 19:32:18 · 112 阅读 · 0 评论 -
面试题-网络http、https
文章目录http https的区别和原理状态码DNS缓存相关headertcp三次握手四次挥手http https的区别和原理状态码DNS缓存相关headercache-controltcp三次握手四次挥手参考资料:https://blog.csdn.net/xiaoming100001/article/details/81109617...原创 2019-06-04 20:12:02 · 528 阅读 · 0 评论 -
面试题-redis
redis 作为mysql 的缓存,mysql主从复制延长1 s ,如果保证 redis 缓存的实时性redis 有哪些集群模式?redis 哨兵模式中,哨兵有什么作用redis 如何实现主从复制?主从实现原理?redis分块分表?redis支持的数据结构?redis 的rehash?redis在项目中的实际应用?...原创 2019-06-27 15:41:41 · 560 阅读 · 0 评论 -
分布式理论学习资料
架构师需要了解的Paxos原理、历程及实战分布式理论(七)—— 一致性协议之 ZABRaft Understandable Distributed Consensus原创 2019-06-28 15:08:53 · 191 阅读 · 0 评论 -
HashMap java8源码详解
数据结构数组+链表/红黑树,红黑树是java8的改进。常量含义// 默认初始容量 16,2的4次方static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16// 最大容量,2的30次方static final int MAXIMUM_CAPACITY = 1 << 30;...原创 2019-05-23 15:32:02 · 444 阅读 · 0 评论