自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (3)
  • 收藏
  • 关注

转载 集合之深入理解PriorityQueue

PriorityQueue源码解析

2021-12-05 13:06:53 5188

原创 真实业务场景展现CAS原理的ABA问题及解决方案

文章目录阅读提示CAS原理、ABA问题介绍真实业务场景如何解决ABA问题CAS学习总结阅读提示本文将借助开保险柜的业务场景重点阐述误用AtomicBoolean引起的ABA问题,以及解决方案。基于此,请先深入理解CAS原理,以及其会产生的ABA问题。关于CAS原理和ABA问题的优秀博客已经存在很多,所以本文只简单介绍CAS原理,希望读者有此基础。CAS原理、ABA问题介绍CAS(Compare and Swap)是一种乐观锁机制。CAS有3个操作数,预期值A,内存值V,要修改的新值B。当且仅当预期值

2021-09-25 18:28:30 19769 6

原创 线程状态的一点思考

关于多线程的线程状态,有很多种说法。在看过很多博客、书籍、视频后,同时,也请教过一些阿里的大佬以及韩顺平老师。我认为下图是最好的线程状态流转图。第一:阅读源码的Thread类的State枚举类;第二:不要只看博客,视频,动手实践比什么都重要;第三:要不断地总结,思考。反问自己,为什么是这样,有什么用?第四:摆正好心态,戒急戒躁,不要听信***天学习系列。多线程是Java中最难的知识点,这点毋庸置疑。下苦功夫,打扎实基础。不要认为自己学个几天,记得十几个方法和常用类,就学会了多线程。纸上得来终觉

2021-09-17 16:22:31 4031

原创 IDEA换行快捷键

红线为光标当前位置:情景一:Shift + Enter 后(向下键入一行,并将光标移到下一行的开头)情景二:键入 Ctrl + Alt + Enter,当前行上方生成空行,并将光标移到上行的开头Ctrl + Enter 不好用,将光标所在位置后面的内容 另一起一行。...

2021-09-13 21:06:35 9435

原创 多线程学习心得

多线程的学习,不要求快,不要在意速度。任何一个事物的学习,基础永远是最重要的。所以,一开始求快,比如什么看 **天学会多线程 的书籍或视频。这些内容,往往都是直接说一个类中的几个方法的使用,大同小异,不会说为什么会有这个方法,这个类存在的意义,这个方法适合什么情况下使用?同时,因为这些内容讲究速成,就算老师懂,也不可能在短时间内讲清楚。更何况,大都数视频是半吊子。而且作为一个初学线程的人,不能很好地验证老师或书籍内容的对错。所以我们在挑选多线程学习资料的时候,第一项就是书籍的厚薄,视频的长短。厚的书籍好

2021-09-13 06:32:04 394 2

原创 关于编程学习的一点思考

在计算机的书籍中,通常,一个专业名词需要很多其它专业名词进行解释。这是就和数学中的名词定义一样,必须 严谨且唯一。但在学习的时候,如果对一个专业名词从初次接触就试图完全理解它,这是完全没必要的且低效的。第一,理解这个专业名词需要很深的基础,如果没有很深的基础,理解起来很吃力。第二,即使把解释这个名词的其它名词都了解一遍,也无法说完全理解该名词。因为其它专业名词还有别的专业名词进行解释。所以我们刚开始学习的重点,不应该着重于完全理解它,但一点概念没有也是不行的。一点概念没有的话,后面的学习就是空中建楼。所以

2021-07-18 15:47:09 154

原创 mysql如何高效存储IPv4、IPv6地址

目录一、IPv4之简介 + 高效存储二、 IPv6之简介 + 高效存储三、引用:一、IPv4之简介 + 高效存储IPv4百度百科,简单地来说IPv4地址是一个4字节的无符号整数。为了方便人类阅读和分析,IPv4通常被写作点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。所以如何存储IPv4,在脑海中想到的第一个答案是用varchar也是很自然的事情。但是使用varchar要使用的字节数是3*4+3+1 = 16,其中1指的是varchar需要一个字节保存长度(varchar的长度小于等于25

2021-06-06 13:12:12 4447 4

原创 IDEA滚轮缩放字体大小

按住Ctrl,然后使用滚轮缩放字体。这个小功能最适合于电脑投屏时,大家一起看屏幕时,很方便地放大字体。

2021-04-12 16:35:46 970

转载 转载:关于数据库存储时间的一点思考

我们平时开发中不可避免的就是要存储时间,比如我们要记录操作表中这条记录的时间、记录转账的交易时间、记录出发时间等等。你会发现这个时间这个东西与我们开发的联系还是非常紧密的,用的好与不好会给我们的业务甚至功能带来很大的影响。所以,我们有必要重新出发,好好认识一下这个东西。这是一篇短小精悍的文章,仔细阅读一定能学到不少东西!1.切记不要用字符串存储日期我记得我在大学的时候就这样干过,而且现在很多对数据库不太了解的新手也会这样干,可见,这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不

2021-03-04 16:16:09 287 1

原创 msyql的大小写不敏感问题和collate属性

前提:创建table student,语句见文末。msyql的大小写不敏感情况;1.sql语句关键字不敏感,例如 select 1和SeLeCt 1,执行结果完全相同;2.sql语句表名、字段名不敏感,例如 select * from student where id = 1和 select * from Student where ID = 1 完全相同;3.sql语句的条件值不敏感,例如select * from student where name ="cauchy6317" 和 select

2021-03-04 11:42:34 652 2

原创 字段不等于某个值意味着字段有值

table personnameheight小赵165小钱170小孙小李null1.select height, count(*) from person group by height;result:heightcount(*)null11165117012.select * from person where height !=165;result:nameheight

2020-12-28 14:54:06 380

原创 从jdk1.8源码看modCount的作用

上一篇《fail-fast究竟是个什么鬼》我们学习了什么是fail-fast,那么,java.util包下的集合类是如何利用modCount保证fail-fast机制的?那么modCount作为java.util包中的灵魂字段,我觉得就很有必要专门为它写上一篇。接下来,本文将以最常用的ArrayList类作为源码切入点,一起来揭秘modCount的神秘面纱。先看一下ArrayList的继承实现关系图(idea快捷键 Ctrl + Alt + u 或 Ctrl + Alt + Shift + u )。在

2020-08-17 17:09:02 370 2

转载 fail-fast究竟是个什么鬼

文章目录概念引入实例分析集合类中的fail-fast异常分析异常原理总结概念引入首先我们看下维基百科中关于fail-fast的解释:在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。这种设计通常会在操作中的多个点检查系统的状态,因此可以及早检测到任何故障。快速失败模块的职责是检测错误,然后让系统的下一个最高级别处理错误。其实,这是一种理念,fail-fast就是在做系统设计的时候先考虑异常情况,一旦发生异常

2020-08-10 11:27:01 271 1

原创 从jdk1.8源码看ArrayList的扩容原理

ArrayList源码中是用一个数组(Object[] elementData)来保存元素的,自然,三个构造函数都会为elementData赋值。最简单的构造函数如下:/** * Constructs an empty list with an initial capacity of ten. */ public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }

2020-07-30 17:23:26 190

原创 Bug之java.io.OptionalDataException

产生背景:在线上的生产环境中,登录时有一个将用户的访问权限写入redis缓存的逻辑,以便后面访问接口时候,快速验证用户是否具有权限。写入的时候,没有报错提示。但是取出来的时候,偶发性的会报Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.OptionalDataExcept

2020-07-13 14:43:12 4143 2

原创 mysql的explain笔记

explain的作用explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。explain的用法mysqsql文件...

2020-04-13 10:01:46 256

原创 IDEA中debugger模式调试Stream操作

jdk1.8新增的Stream流操作,极大地提升了编程快感,也精简了代码。同时,存在一个问题——debugger下不易调试,不能一行一行地看到执行结果。庆幸的是,Java Stream Debugger 插件解决了此问题。IDEA版本:IntelliJ IDEA 2018.2.4JDK:1.8+在插件库,可以看到Java Stream Debugger插件已经被默认集成到了IDEA中了。有...

2019-12-21 11:38:15 7663 5

原创 IDEA中设置类注释和方法注释

一. 为什么写这篇博客?注释是代码的指南针,能让开发者快速掌握方向。一段代码写得好不好,从注释一眼就能看出来。良好的注释能清楚地表明代码的功能,不用其他开发者再去分析具体的逻辑。这并不是说,自己维护的代码就可以不用写注释,时间一长自己写的代码都会忘记具体的功能。所以,注释不仅助人,也是利己。今天,我们学习如何在Java中二. IDEA中如何设置类注释?三. IDEA中如何设置方法注释?...

2019-11-07 17:08:53 250

原创 Lombok之@Val和@Var使用

目录一. 为什么要用**?二. **如何使用?三. **源码四. 特别说明一. 为什么要用**?二. **如何使用?三. **源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-11-01 09:13:00 11787 12

原创 Lombok之@Cleanup使用

目录一. 为什么要用@Cleanup?二. @Cleanup如何使用?三. @Cleanup源码四. 特别说明一. 为什么要用@Cleanup?二. @Cleanup如何使用?三. @Cleanup源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-31 15:16:40 27872 11

原创 Lombok之@Synchronized使用

目录一. 为什么要用@Synchronized?二. @Synchronized如何使用?三. @Synchronized源码四. 特别说明一. 为什么要用@Synchronized?二. @Synchronized如何使用?三. @Synchronized源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-30 09:22:50 13992 3

原创 IDEA 安装Lombok时下载超时及安装后注解无效

IDEA安装Lombok插件:IDEA的插件中心使用的是https的链接,我们在浏览器中使用https访问插件中心并不能访问。 而使用普通的http是可以访问插件中心的。安装后注解无效:将Enable annotation processing 勾选上...

2019-10-28 21:34:03 1250 1

原创 Lombok之@SneakyThrows使用

未完成

2019-10-24 10:10:35 31417 8

原创 Lombok实验室之@Accessors使用

目录一. 为什么要用@Accessors?二. @Accessors如何使用?三. @Accessors源码四. 特别说明一. 为什么要用@Accessors?二. @Accessors如何使用?三. @Accessors源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-22 13:52:06 3166

原创 Lombok之@Builder使用

目录一. 为什么要用@Builder?二. @Builder如何使用?三. @Builder源码四. 特别说明一. 为什么要用@Builder?从@Builder的源码和官网的介绍来看,我觉得@Builder的实用性不如它的另一个注解@Accessors。如果是对实用性看重的读者,可以直接跳转至《Lombok实验室之@Accessors使用》。讲解@Builder之前,首先,要求读者对建造者...

2019-10-22 13:36:14 9038 1

原创 Lombok之@Value使用

目录一. 为什么要用@Value?二. @Value如何使用?三. @Value源码四. 特别说明一. 为什么要用@Value?二. @Value如何使用?三. @Value源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-20 09:32:42 16394 5

原创 java常用命令

查看.class文件,javap -verbose **.class

2019-10-18 10:34:23 147

原创 Lombok之@Data使用

目录一. 为什么要用@Data?二. @Data如何使用?三. @Data源码四. 特别说明一. 为什么要用@Data?二. @Data如何使用?三. @Data源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-16 09:22:02 10851 2

原创 Lombok之@XXXArgsConstructor系列注解使用

目录一. 为什么要用@XXXArgsConstructor?二. @XXXArgsConstructor如何使用?三. @XXXArgsConstructor源码四. 特别说明一. 为什么要用@XXXArgsConstructor?二. @XXXArgsConstructor如何使用?三. @XXXArgsConstructor源码四. 特别说明本文已经收录在Lombok注解系列文章总览...

2019-10-16 09:18:10 11563

原创 Java无为之道

前言:常言道,好记性不如烂笔头。在写博客的过程中,可以更加清楚地看到自己到底掌握了多少。很多东西,理解起来不难,知道是什么,怎么用并不困难,可是为什么这样做,有时候甚至我们都没去思考过。所以,通过写博客这样一种将知识输出的方式,可以站到更高的高度,去审视自己。写完自己读一读,想想读者会提什么样的问题,是不是哪里不严谨,用词是否准确。当然了,写作能力的提升那是水到渠成的事儿了。我不可能系统地写出一...

2019-10-15 17:53:20 178

原创 Lombok之@NonNull使用

目录一. 为什么要用@NonNull?二. @NonNull如何使用?三. @NonNull源码四. 特别说明一. 为什么要用@NonNull?二. @NonNull如何使用?三. @NonNull源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-15 15:07:31 37600

原创 Lombok实验室之onX使用

未完成

2019-10-13 13:35:39 7069 1

原创 Lombok之@EqualsAndHashCode使用

目录一. 为什么要用@EqualsAndHashCode?二. @EqualsAndHashCode如何使用?三. @EqualsAndHashCode源码四. 特别说明一. 为什么要用@EqualsAndHashCode?在java.lang.Object中有两个实例方法——equals和hashCode。这两个方法就像孪生兄弟一样,重写equals,就要重写hashCode。至于为什么?可...

2019-10-12 17:02:53 36936

原创 Lombok之@ToString使用

在java.lang.Object中有个实例方法方法toString,这个方法是一个对象的自我描述。在源码中有这样一句注释,It is recommended that all subclasses override this method.即推荐所有的子类重新该方法,因为该方法在Object中的实现,不具有可读性。一般在一个实体类中,通常的实现方法是将该类的各个字段和字段的值拼接成一个字符串。...

2019-10-12 10:44:08 44839 1

原创 Lombok的注解文章模板

目录一. 为什么要用**?二. **如何使用?三. **源码四. 特别说明一. 为什么要用**?二. **如何使用?三. **源码四. 特别说明本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。源码地址:gitee...

2019-10-11 16:11:44 561

原创 Lombok之@Getter/@Setter使用

一. 为什么要用@Getter/@Setter?二. @Getter/@Setter如何使用?三. @Getter/@Setter源码四. 特别说明本文已经收录在[Lombok注解系列文章总览]中,并继承总览中所提的特别说明。(https://blog.csdn.net/cauchy6317/article/details/102498569)...

2019-10-11 13:49:15 18416

原创 Lombok注解系列文章总览

目录前言:为什么写lombok的注解系列文章?备注前言:为什么写lombok的注解系列文章?前段时间,有个前辈帮我调试代码的,他给实体类上加了@Accessors注解后,new对象的时候,链式写法使得代码即简洁又漂亮。我就好奇地问他,“你是怎么知道这种写法的?”他的回答道:“多看看官网。”在下班的路上,我就一直在想,“我也知道lombok,知道@Data注解,@NoArgsConstruct...

2019-10-11 12:15:07 14688 4

原创 SpringData JPA中@OneToMany和@ManyToOne的使用

尝试一次简洁风格环境:springboot2.1.7+jdk1.8+mysql8.0+druid1.1.10+Springdata JPA+Lombok作者:cauchy6317在csdn需求场景:学生和学校的业务设计博文目标:使用这两个注解的正确姿势pom.xml文件的dependencies见附录Student类和School类@Data@Table@Entity@Acce...

2019-09-17 14:49:01 13907 10

原创 springboot的apllication.yml文件没有小叶子图标

setting >Editor>file Type>YAML>加上 *.yaml 和 *.yml 确定即可,还要确保在Plugins中启用IDEA自带的YAML插件。插件安装在settings>plugins里面browse repositories 搜yaml/ansible support...

2019-09-12 10:48:30 2551

原创 DecimalFormat的正确打开姿势

目录DecimalFormat的产生背景DecimalFormat的初始化

2019-09-05 14:09:30 245

全国省级行政区电费计算模块后端开发初步构想.docx

全国省级行政区电费计算模块后端开发初步构想:该文档帮助大家实现基础扫盲,有助于对于业务的理解。

2019-08-29

navicat_premiun

navicat_premiun压缩包

2018-09-27

Sybase PowerDesigner16.5破解文件

请先解压请先解压请先解压请先解压请先解压请先解压请先解压请先解压请先解压

2018-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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