Yourbatman的博客

一个可以沉迷于技术的程序猿

排序:
默认
按更新时间
按访问量

【小家java】AtomicLong可以抛弃了,请使用LongAdder代替(或使用LongAccumulator)

每篇一句 传播正能量——做一个快乐的程序员 前言 如题,如果你对AtomicLong的使用、运行机制还不了解的话,请移步我上一篇博文:上一片博文 如果你现在是用的JDK还是停留在JDK7及以下,对JDK8没有太多的了解,那么本文的讲述获取能让你又多一个赶紧升级的理由。 LongAdder这个类...

2018-12-10 00:09:29

阅读数:221

评论数:0

【小家java】原子操作你还在用Synchronized?Atomic、LongAdder你真有必要了解一下了

每篇一句 战略上蔑视敌人,但战术上一定要重视敌人 前言 写这篇博文的原因,是因为我今天在看阿里的规范手册的时候(记录在了这里:【小家java】《阿里巴巴 Java开发手册》读后感—拥抱规范,远离伤害),发现了有一句规范是这么写的: 如果是count++操作,使用如下类实现: AtomicIn...

2018-12-09 23:17:50

阅读数:16

评论数:0

【小家java】《阿里巴巴 Java开发手册》读后感---拥抱规范,远离伤害

每篇一句 无规矩不成方圆 无规范不能协作 拥抱规范,远离伤害 前言 对于编码规范,本人一直是公司里的大力推崇者。其实不乏发现有很多人并不注重编码的规范性,觉得只要功能实现了就ok了,其实这种认识是非常初级的。 了解了规范,可以提前避免一些开发盲区,大大提高团队协作的效率。规范的编程习惯,...

2018-12-09 18:16:53

阅读数:8

评论数:0

【小家Spring】RedisTemplate的序列化方式大解读,含FastJsonRedisSerializer、Genericjackson2jsonredisserializer序列化的坑

前言 最近在做一个项目,由于并发量大,大量使用到了RedisTemplate来操作Redis。但使用过程中,遇到了不少的坑,各种翻看源码来跟踪,也总结出了不少的经验。 因此今天专门做一篇专文来记录这些坑,也具体说说RedisTemplate的各种序列化方式的差异性。希望对大家也能有所帮助,帮助大家...

2018-12-01 22:40:43

阅读数:126

评论数:0

【小家Spring】Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入失败的问题

前言 Spring为了简化我们对持久化层的操作,针对各种持久化方案提供了统一的Template进行操作。比如我们的熟悉的JdbcTemplate就是让我们方便的操作的关系型数据库的。 它有个Spring-Data的子项目,提供了各种SQL、NOSql的便捷操作。比如Redis、MongoDB、ES...

2018-12-01 22:05:28

阅读数:103

评论数:0

【小家Spring】Spring中读取配置的方式,@Value、@PropertySource、@ConfigurationProperties使用详解

每篇一句: 世界很公平,你有多努力,就有多特殊。你必须很努力,才能看起来毫不费力 前言 Spring (Boot)获取参数的方式有很多,其中最被我们熟知的为@Value了,它不可谓不强大。 今天就针对我们平时最长使用的@Value,以及可能很少人使用的@PropertySource、@Conf...

2018-11-24 19:57:39

阅读数:73

评论数:0

【小家Spring】一篇文章彻底搞懂Spring Boot配置文件的加载顺序(项目内部配置和外部配置)

每篇一句 天上非的理念,必定有落地的实现,而且一般都不止一个 说在前面 Spring这么流星很重要的一个思想是:配置化思想。从而达到解耦的目的,很多都不需要硬编码,配置一下即可完成,可谓大大提高了编码的效率。 Spring支持的配置文件加载的方式繁多,一方面是扩大了灵活性,另一方面其实也带来了...

2018-11-23 18:05:05

阅读数:195

评论数:0

【小家java】Java中二进制与位运算(“^,&,>>,>>>”),使用移位算法写一个流水号生成器(订单号生成器)

二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现 如: 求 1011(2)+11(2) 的和? 结果为:1110(...

2018-11-20 18:43:29

阅读数:82

评论数:0

【小家java】Java之Apache Commons-IO使用精讲(FileUtils、IOUtils、FileFilter全覆盖)

概述 Commons IO是针对开发IO流功能的工具类库。 主要包括六个区域: 工具类——使用静态方法执行共同任务 输入——用于InputStream和Reader实现 输出——用于OutputStream和Writer实现 过滤器——各种文件过滤器实现 比较器——各种文件的java.util....

2018-11-18 11:30:21

阅读数:29

评论数:0

【小家java】Java之Apache Commons-Collections4使用精讲(Bag、Map、List、Set全覆盖)

前言 虽然JDK提供给我们的集合框架已经足够强大,基本能解决我们平时的绝大所述问题,并且效率还挺高。 本文针对于Apache提供的Collections4组件提供的一些特殊数据结构,通过例子解决一些实际问题的讲解。 ® bag接口 ® 固定大小的map、lru (最近最少使用算法)map和双重(d...

2018-11-15 18:45:00

阅读数:38

评论数:0

【小家java】一个基于POI的Excel导入、导出工具处理类(支持xls,xlsx格式),另有SpringMVC的导入、导出案例讲解

前言 表格的导入、导出可谓开发过程中经常会碰到的功能。然后这种模版化的东西并不需要每次都去编码一次,因此我就整理了一个Excel的万能处理类。能够实现兼容2003、2007的各种Excel格式的导入导出功能,使用起来也非常的方面,适用于所有业务场景,下面会有案例讲解 Excel导入、导出工具类源码...

2018-11-14 15:40:24

阅读数:147

评论数:0

【小家Spring】借助Springfox整合SpringBoot和Swagger(API接口神器)

背景 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。 前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你更好的书写API文档的框...

2018-11-14 11:51:08

阅读数:47

评论数:0

【小家SQL】MySql数据类型---日期时间类型的使用(含datetime和timestamp的区别)

说在前面 在这一路学习过来,每次不管看书还是网上看的资料,对于MySQL数据类型中的时间日期类型总是一扫而过,不曾停下来认认真真的研究学习。最近看了一本关于MySql的书籍,打算全面的学习研究一遍。 虽然每次都没有怎么注意,但是使用起来确实非常的糟糕。每次都转换起来非常不便。比如明明我只需要日期,...

2018-11-13 17:06:24

阅读数:724

评论数:2

【小家java】SortedMap和NavigableMap的使用介绍---TreeMap的源码简单分析

TreeMap 简介 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。 // Red-black mechanics private static final boolean RED = false; private static final boolean BLAC...

2018-11-12 19:16:58

阅读数:31

评论数:0

【小家思想】通俗易懂版讲解JWT和OAuth2,以及他俩的区别和联系(Token鉴权解决方案)

什么是OAuth OAuth是一个关于授权(authorization)的开放网络协议,在全世界得到广泛应用,目前的版本是2.0版。 OAuth是一种安全的授权框架,提供了一套详细的授权机制。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。它详细描述了系统中不同角色、用户、服务前...

2018-11-10 16:36:17

阅读数:202

评论数:0

【小家java】Java中主线程(父线程)与子线程的通信和联系

进程和线程(和协程) 通俗的讲, 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位(比如QQ是个进程、微信是个进程) 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,...

2018-11-05 18:47:22

阅读数:18

评论数:0

【小家java】Java线程池之---ForkJoinPool线程池的使用以及原理

Java 7 引入了一种新的并发框架—— Fork/Join Framework。同时引入了一种新的线程池:ForkJoinPool(ForkJoinPool.coomonPool) @sun.misc.Contended public class ForkJoinPool extends Abs...

2018-11-05 15:00:33

阅读数:15

评论数:0

【小家java】Java定时任务ScheduledThreadPoolExecutor详解以及与Timer、TimerTask的区别

定时任务就是在指定时间执行程序,或周期性执行计划任务。Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求。 Timer和TimerTask 本文先介绍Java最原始的解决方案:Timer和TimerTask Timer和TimerTask可以作为线程实现的第三种方...

2018-11-04 17:12:09

阅读数:16

评论数:0

【小家java】Java中的线程池,你真的用对了吗?(教你用正确的姿势使用线程池,Executors使用中的坑)

在【小家java】用 ThreadPoolExecutor/ThreadPoolTaskExecutor 线程池技术提高系统吞吐量(附带线程池参数详解和使用注意事项)这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。 在文中末尾有这样一句描述: 可以通过Executors静态工厂构...

2018-11-04 11:16:12

阅读数:87

评论数:0

【小家java】BlockingQueue阻塞队列详解以及5大实现(ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue...)

前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。 ...

2018-11-03 21:43:20

阅读数:191

评论数:0

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