
java
文章平均质量分 65
老根儿
这个作者很懒,什么都没留下…
展开
-
java 实现自定义线程池
java 实现自定义线程池定义线程池接口public interface ThreadPool<Job extends Runnable> { // 执行一个Job void execute(Job job); // 关闭线程池 void shutdown(); // 添加工作者线程 void addWorkers(int ...原创 2018-06-05 16:39:37 · 1784 阅读 · 0 评论 -
java 内存模型 锁的理解
java 内存模型 锁的理解Java SE 1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”。 个人对锁的理解:偏向锁引入目的是消除在无竞争情况下的同步原语,进一步提高程序的运行性能。 在没有线程竞争同步代码块的时候,会在对象头和栈帧中的锁记录里存储偏向锁的线程ID,以后该线程在进入和退出同步块的时候不需要进行CAS操作来加锁解锁,只需简单地测试一下对象头...原创 2018-06-05 16:40:26 · 405 阅读 · 0 评论 -
Integer用==比较127相等128不相等的原因
前言这个几乎是Java 5引入自动装箱和自动拆箱后,很多人都会遇到(而且不止一次),而又完全摸不着头脑的坑。虽然已有很多文章分析了原因,但鉴于我这次还差点坑了同学,还是纪录下来长点记性。问题描述例一来个简单点的例子public static void main(String[] args) { for (int i = 0; i < 150; i++) {...转载 2018-07-23 19:18:16 · 4806 阅读 · 5 评论 -
Redis 分布式锁的正确实现方式( Java 版 )
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...转载 2018-07-23 20:05:00 · 228 阅读 · 0 评论 -
责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任我对于责任链的理解就是如果if else if else if … else 这样的逻辑代码写多了难以维护...转载 2018-07-23 20:48:24 · 297 阅读 · 0 评论 -
commons-lang3的tuple包介绍
问题有时候我们调用方法的时候返回值有可能不止1个,比如说我们返回name = "张三" age = 20这两个值,那么这个时候方法的返回值怎么写呢。在Scala和python中都有Tuple使用,在java中我们怎么办。很容易我们就想到了一个方式:可以构造一个User类来封装这两个属性。 但是如果返回的两个值并没有任何关联关系,或者说每一个方法返回的参数都不同,那么我们就得为每一个方法的返回...原创 2018-07-23 20:48:44 · 5420 阅读 · 0 评论