自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

转载 HashMap与ConcurrentHashMap

扩容 HashMap 底层新生成一个数组,然后拷贝旧数组里每一个Node链表到新数组,在多线程下有问题,问题在于基于头插法的数据迁移,会有几率造成链表倒置,引发链表循环导致死循环,并吃满CPU。 JDK8里HashMap的底层数据结构变为数组+链表+红黑树,因为在hash冲突严重时链表查询效率是O(n),所以JDK8做了优化,对于单个链表的个数大于8的链表,会直接转为红黑树算是以空间换时间,这样...

2019-02-26 15:47:08 120

原创 AQS解析

AbstractQueuedSynchronizer即抽象队列同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch。 它维护了一个volatile int state(代表共享资源)和一个FIFO双端队列(多线程争用阻塞时线程进入此队列尾部,队列头节点是成功获取锁的线程,当头节点释放...

2019-02-22 21:46:51 134

原创 JAVA基础试题集合1

1.解释"static"和&

2019-02-21 21:56:08 716

原创 数据结构与算法相关

原子类 Hbase:Hbase中HLog使用AtomicLong作为日志序列号,因为一个RS的多个region会并发写入HLog,使用AtomicLong保证线程安全。 Kafka:生产者消息分发Partition—如果消息有key,使用key的哈希值与分区个数取模;如果没有key,使用AtomicInteger累加的counter与分区个数取模获取要发送的分区。(负载均衡) 特殊数据结构 Mys...

2019-02-21 17:26:23 98

原创 Kafka相关

消息发送 producer 采用 push 模式将消息发布到 broker,每条消息都被 append 到 patition 中,属于顺序写磁盘(保障吞吐率)。 日志文件的删除策略:启动一个后台线程定期扫描log file列表,把保存时间超过阀值的文件删除,为避免删除文件时仍然有read操作(consumer消费),采取copy-on-write方式。 producer 发送消息到 brok...

2019-02-19 18:01:12 156

原创 JAVA编程问题总结

加密算法打包时出错 Cipher.getInstance(“DES/ECB/NoPadding”); 编码算法选择问题 error_prone_core扫描出来 java.security.InvalidKeyException: Parameters missing Cipher.init(Cipher.DECRYPT_MODE, deskey); 改为 byte[] iv = new sun....

2019-02-19 15:58:57 419

原创 git-maven

maven按需打包 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin&am

2019-02-18 21:32:52 86

原创 Jedis代码走读

核心类:redis.clients.jedis.Jedis (以set为例) Jedis#set(String, String, SetParams) Client#set(String,String,SetParams) BinaryClient#set(byte[], byte[], redis.clients.jedis.params.set.SetParams) Connection#...

2019-02-13 17:58:31 160

原创 Spring--官方文档部分翻译(第六章 AOP)

6.1 切点API 6.11 概念 核心接口:org.springframework.aop.Pointcut public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher(); } 两个子对象都有matches方法,用于测试切点是否匹配特定的类或方法。这种测...

2019-02-13 17:58:04 136

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除