9 日拱一兵

尚未进行身份认证

发现更多精彩,请访问:https://dayarch.top

等级
TA的排名 1w+

Lombok 使用详解,简化Java编程

前言在 Java 应用程序中存在许多重复相似的、生成之后几乎不对其做更改的代码,但是我们还不得不花费很多精力编写它们来满足 Java 的编译需求比如,在 Java 应用程序开发中,我们几乎要为所有 Bean 的成员变量添加 get() ,set() 等方法,这些相对固定但又不得不编写的代码浪费程序员很多精力,同时让类内容看着更杂乱,我们希望将有限的精力关注在更重要的地方。Lombok 已经诞...

2019-11-25 14:25:55

Java升级那么快,多个版本如何灵活切换和管理?

前言近两年,Java 版本升级频繁,感觉刚刚掌握 Java8,写本文时,已听到 java14 的消息,无论是尝鲜新特性(Java12 中 Collectors.teeing 超强功能使用),还是由于项目升级/兼容需要,我们可能都要面临管理多个 Java 版本的情另外 Oracle 自 Java11 开始,更改了用户协议,任何商用都会收费。在写本文时,得到消息「微软宣布加入 OpenJDK」,...

2019-11-18 08:40:29

手把手教你定制标准Spring Boot starter,真的很清晰

写在前面我们每次构建一个 Spring 应用程序时,我们都不希望从头开始实现具有「横切关注点」的内容;相反,我们希望一次性实现这些功能,并根据需要将它们包含到任何我们要构建的应用程序中横切关注点横切关注点: 指的是一些具有横越多个模块的行为 (来自维基百科的介绍)说白了就是多个项目或模块都可以用到的内容,比如一个 SDK在Spring Boot中,用于表示提供这种横切关注点的模块...

2019-11-11 11:03:53

手把手教你定制标准 Spring Boot starter

写在前面我们每次构建一个 Spring 应用程序时,我们都不希望从头开始实现具有「横切关注点」的内容;相反,我们希望一次性实现这些功能,并根据需要将它们包含到任何我们要构建的应用程序中横切关注点横切关注点: 指的是一些具有横越多个模块的行为 (来自维基百科的介绍)说白了就是多个项目或模块都可以用到的内容,比如一个 SDK在Spring Boot中,用于表示提供这种横切关注点的模块的术语是star...

2019-11-11 08:20:00

JDK12 Collectors.teeing 你真的需要了解一下

前言在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????):管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...

2019-11-07 08:20:00

Maven optional关键字透彻图解

写在前面本来想写一篇「如何自定义Spring Boot Starter」,但是为了更好理解 Starter 的一些设计理念和其中的关键点,所以提前将一些细节内容单独提取出来讲解说明在 Maven pom.xml 中,你经常会看到依赖项中有类似下面的代码:<dependency> <groupId>sample.ProjectA</groupId> ...

2019-11-05 08:34:35

如何避免死锁,我们有套路可循

写在前面单纯的用 synchronized 方法起不到保护作用(不能保护 target)用 Account.class 锁方案,锁的粒度又过大,导致涉及到账户的所有操作(...

2019-10-28 08:20:00

EasyExcel 轻松灵活读取Excel内容

写在前面Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现,POI 是将整个 Excel 的内容全部读出来放入到内存中,所以内存消耗非常严重,如果同时进行包含大数据量的 Excel 读操作,很容易造成内存溢出问题但 EasyExcel 的出现很好的解决了 P...

2019-10-22 08:40:41

读取Excel还用POI?试试这款开源工具

写在前面Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据...

2019-10-21 08:20:00

共享资源那么多,如何用一把锁保护多个资源?

写在前面上一篇文章原子性问题的宏观理解 带领大家了解了锁和资源的模型,有了这篇文章的铺垫,相信理解这一篇文章就非常轻松了当我们要保护单个资源并对其进行修改其实很简单,只需按照下图分三步走创建受保护资源 R 的锁加锁进入临界区解锁走出临界区上图的关键是「R1 的锁保护 R1」的指向关系是否正确如果都是保护单个资源这样简单,程序猿的世界该有多美好,可惜并不是,通常我们需要保护多...

2019-10-16 10:09:14

共享资源那么多,如何用一把锁保护多个资源?

写在前面上一篇文章原子性问题的宏观理解带领大家了解了锁和资源的模型,有了这篇文章的铺垫,相信理解这一篇文章就非常轻松了当我们要保护单个资源并对其进行修改其实很简单,只需...

2019-10-14 08:20:00

假期余额不足,这些并发知识你还记得吗?

假期最后一天了!假期最后一天了!假期最后一天了!这是一个人看看到就心慌的现实消息,壮丽 70 年,奋斗新时代,与祖国同庆之后,我们需要回归正轨了(这句话貌似无比的刺耳),...

2019-10-07 08:20:00

面试并发volatile关键字时,我们应该具备哪些谈资?

提前发现更多精彩内容,请访问 个人博客提前发现更多精彩内容,请访问 个人博客提前发现更多精彩内容,请访问 个人博客写在前面在 可见性有序性,Happens-before来搞定 文章中,happens-before 的原则之一: volatile变量规则对一个 volatile 域的写, happens-before 于任意后续对这个 volatile 域的读按理说了解了这个规则,...

2019-09-30 08:30:26

读万卷书不如行万里路?

这是国庆前的最后一篇推文,预祝小伙伴儿国庆假期开心,顺利读万卷书不如行万里路,如果不能行万里路(没钱..),那请开始读万卷书个人博客:https://dayarch.t...

2019-09-30 08:20:00

Junit5 新特性你用过多少?

点击蓝色「日拱一兵」关注,持续侦破 Java 技术案件前言单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问...

2019-09-25 08:00:00

解决原子性问题?脑海中有这个模型就可以了

上一篇文章 可见性有序性,Happens-before来搞定,解决了并发三大问题中的两个,今天我们就聊聊如何解决原子性问题原子性问题的源头就是 线程切换,但在多核 CPU 的大背景下,不允许线程切换是不可能的,正所谓「魔高一尺,道高一丈」,新规矩来了:互斥: 同一时刻只有一个线程执行实际上,上面这句话的意思是: 对共享变量的修改是互斥的,也就是说线程 A 修改共享变量时其他线程不能...

2019-09-23 08:41:58

可见性有序性,Happens-before来搞定

写在前面上一篇文章并发 Bug 之源有三,请睁大眼睛看清它们 谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug为了解决 CPU,内存,IO 的短板,增加了缓存,但这导致了可见性问题编译器/处理器擅自优化 ( Java代码在编译后会变成 Java 字节码, 字节码被类加载器加载到 JVM 里, JVM 执行字节码, 最终需要转化为汇编...

2019-09-17 08:18:03

并发Bug之源有三,请睁大眼睛看清它们

写在前面- 生活中你一定听说过——能者多劳- 作为 Java 程序员,你一定听过——这个功能请求慢,能加一层缓存或优化一下 SQL 吗?- 看过中国古代神话故事的也一定听过——天上一天,地上一年一切设计来源于生活,上一章 学并发编程,透彻理解这三个核心是关键 中有讲过,作为"资本家",你要尽可能的榨取 CPU,内存与 IO 的剩余价值,但三者完成任务的速度相差很大,CPU >...

2019-09-10 08:30:07

基础面试,为什么面试官总喜欢问String?

关于 Java String,这是面试的基础,但是还有很多童鞋不能说清楚,所以本文将简单而又透彻的说明一下那个让你迷惑的 String在 Java 中,我们有两种方式创建一个字符串String x = "abc";String y = new String("abc");你常见也常写第一种,很少见第二种,但面试还总问这类问题,双引号和构造器两种形式创建字符串到底有什么差别呢?先来看例...

2019-09-10 08:24:09

学并发编程,透彻理解这三个核心是关键

写在前面上一篇文章这次走进并发的世界,请不要错过 给大家带了并发编程的开胃菜,接下来我们逐步上正餐,在吃正餐之前,我还要引用那首诗词: 「横看成岭侧成峰,远近高低各不同」,远看看轮廓,近看看细节,不断切换思维或视角来学习远看并发,并发编程可以抽象成三个核心问题: 分工、同步/协作、互斥如果你已经工作了,那么你一定听说过或者正在应用敏捷开发模式来交付日常的工作任务,我们就用你熟悉的流程来解释...

2019-09-04 08:39:24

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。