JAVA
hc_xyz
曾经在XX做了半年JAVA后台开发后,转到杭州XX公司做区块链底层开发。在和同事聊天的时候,偶然发现自己对技术上已经失去了热爱和追求,希望能做一些更实际的事情
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CyclicBarrier的使用方式
文章目录CyclicBarrier介绍CyclicBarrier介绍CyclicBarrier也是JAVA同步包中重要的一个工具类,英文原文介绍如下:A synchronization aid that allows a set of threads to all wait foreach other to reach a common barrier point. CyclicBarr...原创 2019-10-28 17:27:25 · 266 阅读 · 0 评论 -
CountDownLatch使用初窥
文章目录1. 背景2. 使用方式3. 业务核心代码4. 程序人生&一点感想1. 背景最近,在做大数据方面的开发工作,对JAVA中线程之间的竞争和先后执行顺序产生了疑问,因此学习一下并发编程的高级写法,这边主要讲解一下CountDownLatch的使用方式。2. 使用方式我们在进行大数据操作的时候,需要分阶段分步骤进行数据操作,比如,在大数据分析中,我们首先要对数据进行去重,并进行数...原创 2019-10-28 12:14:33 · 214 阅读 · 0 评论 -
AutoCloseable的使用与代码优化
占坑转载 2019-07-15 19:38:49 · 200 阅读 · 0 评论 -
JAVA中的读写锁与例子实现
文章目录读写锁代码读写锁代码 class CachedData { Object data; volatile boolean cacheValid; final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); void processCachedData() { rwl.readLock...翻译 2019-06-29 15:18:34 · 1022 阅读 · 0 评论 -
Java中高级API的ReentrantLock用法实现Buffer
文章目录copy&paste代码范式解读copy&paste代码下面的代码是我从Condition类中拷贝出来的,下面的代码可以说是很好的JAVA高级并发程序的范式了。代码如下: class BoundedBuffer { final Lock lock = new ReentrantLock(); final Condition notFull = lock....翻译 2019-06-29 15:10:50 · 241 阅读 · 0 评论 -
Java并发编程与消费者生产者模型
下面的代码是我从BlockingQueue这个Interface中拷贝出来的,可以说是实现了一个简单的消费者生产者模型。记下来给自己留个记录吧。/* * Note that a {@code BlockingQueue} can safely be used with multiple * producers and multiple consumers. */ class Produ...原创 2019-06-27 16:01:02 · 165 阅读 · 0 评论 -
装饰器模式和多线程
装饰器模式和多线程在HeadFirst中,有一个StuckBuzz的例子用来阐述装饰器模式,在这篇博文中,打算将同步编程和装饰器模式结合起来介绍一下。小记装饰器和多线程装饰器模式和多线程背景与多线程的关系背景想象一个咖啡后台计费系统,需要计算一杯咖啡的价格。(或者多杯的价格)另外,我们需要饮料的种类和添加的调料。需求要在原材料的价格经常变化的条件下,减少数据的改动。第一种写法使用继承...原创 2018-10-07 19:41:18 · 547 阅读 · 0 评论 -
多线程浅析1_ThreadLocal与Volatile用法
多线程浅析1.ThreadLocal通过get获取线程中的Map import java.util.concurrent.atomic.AtomicInteger; public class ThreadId { // Atomic integer containing the next thread ID to be assigned private ...原创 2018-06-07 19:29:03 · 699 阅读 · 0 评论 -
加密算法的研究与优惠券SN码的设计
加密算法的研究与优惠券的码的设计Background:之前在做优惠券管理的时候,需要大量的生成优惠券的信息,因此需要对优惠券的功能设计进行了解。为了防止优惠券被恶意破解和滥用,对加密算法进行了一定的研究。加密算法分类 单向加密(又称散列算法),双向加密单向加密,不可逆,只能加密,不能解密,常用的场景是加密密码存储进数据库,常用的是使用MD5加密和SHA加密。还有更加强的加密方式包...原创 2018-06-07 19:20:28 · 2609 阅读 · 0 评论 -
JAVA集合 效率问题探究
笔者最近做的一个批量发送短信的功能时,发现数据读取的速度很慢,由于短信的条数大概在6万多条,将最后一条发送时已经过去1个小时,因此需要对效率进行优化。采取的措施: 1. 采用Iterator的方式 2. 查看代码的时候,发现效率问题主要出现在大规模的数据库表的写入问题上,于是将单条数据的数据库插入改为多条合并插入,最大支持200条,这边取180条,防止生产者消费者模型出现问题导致的数据丢失...原创 2018-06-07 19:06:21 · 726 阅读 · 0 评论 -
Mac上新版本不同JAVA版本切换
Ref: https://stackoverflow.com/questions/26252591/mac-os-x-and-multiple-java-versions首先,路径不是直接指向目录,像之前的Macos一样。 弹出的错误如下:export JAVA_9_HOME=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home: No原创 2017-10-11 19:10:26 · 3476 阅读 · 0 评论 -
JAVA 用法陷阱
到时候再补上代码。Arrays.asList();的用法 用法见链接Java中数组Array的使用,其实和C语言中还是有很大不一样的地方的; 数组使用 In JAVA[来源于阿里JAVA手册]【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。反例:List<S原创 2017-08-27 17:59:23 · 368 阅读 · 1 评论 -
Java Character
Java CharacterASCII码的互相转换in Java空格等的char类型匹配int 和char类型互相转换 加上强制转换即可将(int)char转换成ASCII2.在学习JAVA的时候,我们更加重视String的使用,而忽略了Character的使用。今天,笔者在做剑指Offer编程题的时候,空格的char匹配着实让我有点不太明白。所以特来写写Character在Java中的使用原创 2017-08-27 18:02:55 · 341 阅读 · 0 评论 -
i = i++; in JAVA
i = 0;i = i++;在Java中暂存区和堆栈的区别在JAVA中,得到的结果为0; 而在C++中,得到的结果为1;具体的原因,等对JVM有深入的了解之后再传上来,现在很多博客给的解释对笔者不太有代入感,感觉需要对JVM有进一步理解之后才能更加理解。原创 2017-08-27 17:28:38 · 270 阅读 · 0 评论
分享