![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
文章平均质量分 71
michaelgo
这个作者很懒,什么都没留下…
展开
-
ReentrantLock的lock(), tryLock(), tryLock(long timeout, TimeUnit unit), lockInterruptibly() 及使用场景示例
一直在用concurrent包里的东西,最近想研究一下个中细节,先从ReentrantLock提供的集中获取锁的方式开始吧。1.ReentrantLock简要介绍简单介绍一下ReentrantLock,可重入锁,互斥锁,提供了fair和unfair两种模式的锁。默认构造函数是unfair的锁,如果初始化时传入true的参数则会返回fair锁。所谓不公平就是在锁可获取时,不用考虑该锁队列是否...原创 2018-08-07 18:33:20 · 26287 阅读 · 2 评论 -
Java浮点数除法,整数除得小数,指定小数位数
在Java中如果除运算符“/”,在不加任何限制的情况下,两个整数相除,得到的是整数,小数点后的被舍弃。但是有些场景下我们需要拿到除得的小数,还要指定位数的小数。这时候有以下处理方法:1.使用DecimalFormat来限定得到的小数位数 int pcm = 98; int fcm = 11; DecimalForma...原创 2018-08-13 14:10:30 · 11757 阅读 · 0 评论 -
java.awt.headless模式
最近在看springboot源码的时候看到启动过程中有这么一句:configureHeadlessProperty();private void configureHeadlessProperty() { System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, System.getProperty( SYSTEM_PROPE...原创 2018-08-13 17:44:51 · 15867 阅读 · 3 评论 -
海量数据解决思路之Hash算法
一、概述 本文将粗略讲述一下Hash算法的概念特性,里边会结合分布式系统负载均衡实例对Hash的一致性做深入探讨。另外,探讨一下Hash算法在海量数据处理方案中的通用性。最后,从源代码出发,具体分析一下Hash算法在MapReduce框架的中的应用。二、Hash算法 Hash可以通过散列函数将任意长度的输入变成固定长度的输出,也可以将不同的输入映射成为相同的相同的输出,而且这些...转载 2018-08-22 19:09:37 · 4252 阅读 · 0 评论 -
谈谈JVM GC 收集器
前言:目前已经发展到jdk11了。很多资料上的垃圾收集器还停留在1.7以前。本文基于收集器的发展路线,从前到后汇总和简单分析一下JVM垃圾收集器的roadmap。本文暂且从对内存区管理和回收特色方面分为分代收集和非分代两个part。 Part I、分代收集阶段一、新生代收集器1.Serial New这是最早的新生代收集器,也是jdk1.5之前默认的收集器,在GC log里可...原创 2018-08-30 20:20:24 · 6459 阅读 · 3 评论 -
PriorityQueue是否真正有序
PriorityQueue是jdk1.5开始提供的优先队列,是一个优先“有序”的队列。通过其定义我们能得到如下特点:1.元素有序,默认自然序,也就是数字默认是小的在队列头,字符串则按字典序排列,可以自定义comparator来自定义优先级2.非线程安全,如果要并发修改要使用java.util.concurrent.PriorityBlockingQueue3.PriorityQu...原创 2018-08-23 16:57:06 · 1846 阅读 · 1 评论 -
java.util.ConcurrentModificationException 原因分析及解决方案
码代码的时候发现了这个异常,java.util.ConcurrentModificationException,倒是很熟悉,非线程安全的容器被非法修改了,具体什么原因呢,怎么避免呢,本文简单分析一下,这个小问题其实反映了对容器实现理解的不深刻。首先,本着从源头找问题的原则,贴一下错误代码:String str = "test";Iterator<Map.Entry<Stri...原创 2018-09-05 18:33:43 · 4488 阅读 · 0 评论 -
Java异常类型及处理
前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,代码中怎么处理的,应该怎么使用,底层怎么实现的等等,可能就会有些不是那么清晰。本文基于此详细捋一下异常类型,实现以及使用时应怎么注意。一、异常实现及分类1.先看下异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。上图已经足够帮我们解释和理解异常...原创 2018-09-21 10:54:18 · 126704 阅读 · 8 评论