![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK
不吃泡面
沉舟侧畔千帆竞发!
展开
-
JAVA比较器:Comparable<T>和Comparator
项目开发中,当我们遇到对象级别的数组或集合的排序或去重往往就会使用到比较器,java的比较器有两种:Comparable和Comparator。1).Comparable的使用使用comparable时在被比较对象所在类上直接去实现Comparable接口就可以了,泛型写类本身,此接口中只定义了一个抽象方法,用户使用此方法只需要返回3种结果:-1,0,1即可,如下图所示。输出结果为升序排列...原创 2019-02-19 13:33:29 · 379 阅读 · 0 评论 -
java浮点类型(float,double)运算精度问题原因附解决方案代码
在java中运行如下代码:public static void main(String[] args) { System.out.println("0.01 + 0.05 = " + (0.01+0.05)); System.out.println("0.1 + 0.2 = " + (0.1+0.2)); System.out.println("9948.5 + 1292.12 = ...原创 2019-07-17 18:16:16 · 522 阅读 · 0 评论 -
关于java.lang.NoClassDefFoundError: Could not initialize class xxx错误的原因和处理办法
关于NoClassDefFoundError错误出现的原因有多种,网上其他博主也给出各种答案,但说的都比较广泛。这里博主说一下由于初始化失败而造成的NoClassDefFoundError错误。博主在一个Test这个类中使用了静态代码块,类构造如下所示:public class Test { private static int i = 0; static { //放一个除0操作...原创 2019-07-20 11:23:36 · 10108 阅读 · 0 评论 -
5分钟入门java Stream流操作
Stream流是jdk1.8后增加的新特性,是一种函数式编程,使用stream流需要有jdk1.8的lambda表达式和方法引用的知识。Stream流基于流式思想,其核心需要一个数据源,数据源可以是数组或者集合,流中的一系列操作就是对数据源中数据的分析处理,但Stream流的使用不会改变数据源。Stream流对于数据的处理分析非常方便,他的链式代码风格使用起来很爽,代码精简度很高Stream...原创 2019-07-26 18:30:12 · 474 阅读 · 0 评论 -
JAVA设计模式之发布订阅模式Demo,支持同步和异步处理消息
发布订阅模式就是发布者发送消息,订阅者接收到消息后进行处理,降低了耦合度,很多业务场景都应用到了这样的场景,比如说下单完成后,可能要还有消息提醒,给予抽奖资格等后续功能,此时就可以使用发布订阅模式处理;目前对越发布订阅模式大多已经使用mq进行处理了,至于java应用内部的发布订阅模式使用的并不多,博主这最近因为工作需要,需要写一个发布订阅模式,现在完成了最基础的部分,支持同步异步推送消息。架构...原创 2019-08-21 11:43:26 · 2559 阅读 · 0 评论 -
JDBC结果集转实体对象 支持实体属性(驼峰命名法)到数据库列名转换
工作中有时候不得不使用JDBC进行查询,此时最麻烦的就是手工从结果集中获取数据的过程,这里博主写了一个简单的工具类去做JDBC结果集和对应实体之间的转换,代码如下: /** * 转换数据 JDBC结果集转实体 * * @param resultSet 结果集 * @param clazz 实体字节码文件对象 * @param <T> 实体类型 * @retur...原创 2019-08-16 17:57:38 · 1407 阅读 · 1 评论 -
JDK hashMap源码解读,看完明白如何实现一个map
看这个贴的盆友我认为是有一定工作经验,对于map肯定是较为熟悉的,这里博主就不介绍map的api了;首先对于map的一个基本概念就是map是通过数组+链表的形式存储数据的;第一步:我们看一下hashMap的核心属性:/** * The default initial capacity - MUST be a power of two. */ static fina...原创 2019-09-20 12:03:00 · 141 阅读 · 0 评论 -
一次对于synchronized和Lock两种锁的性能测试和比较
对于这两种锁,在jdk1.6之前synchronized的性能是远不如Lock的,因为synchronized需要调用操作系统的函数,操作内核来完成,比较费时,在JDK1.6以后Oracle公司对synchronized进行了大量优化,而synchronized也从重量级的锁采用了CAS的方式编程了JVM级别的锁,性能得到了大大的跃升,才普遍使用JDK1.8的现在,出于好奇,我简单测试了下sync...原创 2019-09-23 18:59:29 · 1046 阅读 · 1 评论