自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

2的32次方

免费的东西是最贵的,好走的只是下坡路。

  • 博客(111)
  • 收藏
  • 关注

原创 为什么SpringMVC中请求的body不支持多次读取

为什么SpringMVC中请求的body不支持多次读取

2019-12-30 20:59:32 3273 1

原创 IDEA安装教程(多图预警)

IDEA安装教程(多图预警)

2019-10-22 20:51:00 127068 9

原创 如何证明Java子类实际上是拥有父类的私有属性

如何使用代码证明Java子类实际上是拥有父类的私有属性

2020-06-14 10:07:24 1062

原创 Gson实战之旅

Gson实战总结,让你快速上手并使用Gson解决常见开发问题

2020-06-07 21:06:31 533

原创 pdf预览功能踩坑记录

使用pdf.js预览pdf时的踩坑记录

2020-06-04 10:20:06 1192 1

原创 信息论之老鼠试毒问题

信息论的老鼠试毒问题

2020-03-07 21:23:27 1592

原创 Spring的StringUtils踩坑记录

一次由于Spring的StringUtils引起的惨案

2020-01-09 20:10:43 2698

原创 GradleWrapper(Gradle包装器)基本使用和常见问题

介绍Gradle包装器如何使用及常见问题

2019-11-08 20:43:22 3347

原创 创建新的Gradle构建

Windows下如何创建基于Groovy的Gradle构建

2019-10-31 21:16:55 923

原创 Windows安装Gradle

在Windows系统安装Gradle

2019-10-30 18:06:47 431

原创 Spring JPA整合QueryDSL

Spring JPA整合QueryDSL教程(含示例源码)

2019-10-24 21:58:11 970 1

原创 关于String的不可变的一些思考

关于Java中String不可变的思考,以及如何破坏String不可变。

2019-07-25 07:47:52 264

原创 SpringBoot统一响应体解决方案

SpringBoot中基于控制器增强实现的统一响应体解决方案,低侵入性,可基于这个方案自行拓展

2019-07-18 08:04:17 4147

原创 通俗易懂的Java线程池原理

通俗易懂的Java线程池原理

2019-07-01 23:11:10 655

原创 Springboot整合Hibernate拦截器时无法向拦截器注入Bean

开发环境JDK 1.8Springboot 2.1.1.RELEASEpom配置 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version&...

2019-06-28 20:50:02 3285

原创 mysql踩坑记录之limit和sum函数混合使用问题

记录一次实际使用mysql时遇到的limit和sum函数混合使用问题

2019-06-06 22:48:23 4020 4

原创 Java中ArrayList的对象引用问题

记录一次开发期间遇到的关于Java中的ArrayList中关于对象引用的问题

2019-06-03 21:57:20 1227

原创 第五章-go中的字符串

前言下面将会介绍一个我们日常的开发中最长使用的数据类型——字符串。在go中,字符串类型名字为string,它和Java中的String类似,也是一个值不可变类型,内部是一个 UTF-8 字节数组。下面会通过一些例子展示go中string的特性特性go中的string具有以下特性:默认值为空字符串 “”内部是一个UTF-8 字节数组,可以使用索引访问某字节初始化后的值不可变()默认...

2019-05-22 21:27:01 223

原创 第四章-go中的数组和切片

前言提到数组可能大家知道,但是切片又是什么东西呢?切片对应的英语单词是slice,如果有了解过Python的朋友可能会对切片有种焕然大悟的感觉。而如果要在Java中找到个类似的数据结构,那就是ArrayList。简单来说切片slice可以看做是一个动态长度的数组,它的底层是一个数组,不过它可以通过重建一个数组达到扩容的目的。下面会分别介绍数组和切片数组切片...

2019-05-16 22:23:43 581

原创 第三章-go中的常量

关于go中的常量如何使用的教程

2019-05-13 21:34:31 320

原创 第二章-go中的变量

前言很多开发语言中都存在变量,而go也是。需要注意go是静态类型语言,所以不能像某些语言(例如JavaScript)那样在运行期间改变变量的类型。下面会给大家介绍变量如何使用与使用期间可能存在的坑。注意本文是基于go 1.12.5的,可能会与其他版本存在差异。变量命名规则既然有变量就必然有变量名,而在很多支持变量的语言中,变量名一般都会有命名规则。而go也不例外,下面是go的变量名命名规则:...

2019-05-12 22:27:52 1022

原创 第一章-go开发环境准备与HelloWorld

一个Java程序员学习go的踩坑记录和心路历程,本文为开发环境的准备和HelloWorld项目示例

2019-05-09 23:40:26 481

原创 mysql中的_rowid

mysql的_rowid到底是什么?

2019-05-04 21:51:43 5802

原创 CentOS和Ubuntu上实用文件格式转换工具

服务器上文件格式转化工具分享CentOS:dos2unix/unix2dosUbuntu:tofrodos/fromdos

2019-04-24 21:59:59 1913

原创 Mac的包管理工具Homebrew教程

简介Homebrew是Mac系统的软件包管理工具,其功能类似Centos中的yum。使用环境依赖64位的Intel CPUmacOS 10.12或者更高版本的操作系统Xcode命令行工具(安装方法:xcode-select --install)与bourne bash兼容的shell,例如bash或者zsh安装Homebrew/usr/bin/ruby -e "$(curl ...

2019-04-19 23:10:29 399

原创 多线程批量数据导入示例——基础版

前言当遇到大量数据导入时,为了提高处理的速度,可以选择使用多线程来批量处理这些处理。常见的场景有:大文件导入数据库(这个文件不一定是标准的CSV可导入文件或者需要在内存中经过一定的处理)数据同步(从第三方接口拉取数据处理后写入自己的数据库)以上的场景有一个共性,这类数据导入的场景简单来说就是将数据从一个数据源移动到另外一个数据源,而其中必定可以分为两步数据读取:从数据源读取数据到内...

2019-04-03 22:17:30 1186

原创 Springboot定时任务踩坑记录

Springboot 2.1.3.RELEASE 定时任务踩坑记录

2019-03-29 21:48:19 3143

原创 Spring事件机制源码分析

前言由于之前使用Spring事件机制出现了问题,所以特意去了解这块的源码。Spring事件机制其实就是事件发布/订阅(注意在Spring中订阅指的是监听)。PS:Spring版本为5.1.5.RELEASE源码分析初始化初始化这块关键是核心组件的注册ApplicationEventPublisher的初始化与注册,关键方法为AbstractApplicationContext的方法p...

2019-03-27 00:04:32 428

原创 Spring事件机制问题排查

Spring事件机制问题排查,发现Spring事件机制其实只是代码解耦,实际上并不是异步的事件发布/订阅

2019-03-26 22:14:32 7061

原创 简单实用的布隆过滤器

基于Java中的BitSet的布隆过滤器

2019-03-25 23:40:23 314

原创 ArrayList常见问题

简介ArrayList使用Object数组存储数组元素,并使用size属性记录数组长度。需要注意ArrayList是非线程安全的。常见问题汇总ArrayList的默认初始长度是多少?最大长度是多少?ArrayList的默认初始长度是10,是由DEFAULT_CAPACITY设定的。由于ArrayList底层是用Object数组存储元素,所以ArrayList最大长度为Integer...

2019-03-19 22:40:02 333

原创 synchronized锁了什么

前言synchronized翻译为中文的意思是同步的,它是Java中处理线程安全问题常用的关键字。也有人称其为同步锁。既然是锁,其必然有锁的东西,下面先会简单介绍一下synchronized,再通过一个示例代码展示synchronized锁了什么。(这里先提前透露答案synchronized锁的是代码)介绍定义synchronized提供的同步机制确保了同一个时刻,被修饰的代码块或方法只会...

2019-03-13 22:45:00 362

原创 高效随机数算法Java实现

前言事情起源于一位网友分享了一个有趣的面试题:生成由六位数字组成的ID,要求随机数字,不排重,不可自增,且数字不重复。ID总数为几十万。初次解答我一开始想到的办法是生成一个足够大的ID池(其实就是需要多少就生成多少)对ID池中的数字进行随机排序依次消费ID池中的数字可惜这个方法十分浪费空间,且性能很差。初遇梅森旋转算法后面咨询了网友后得知了一个高效的随机数算法:梅森旋转...

2019-02-18 22:08:41 743

原创 HashMap剖析之put()和get()方法

前言本文是基于Java 8的HashMap进行分析,主要是分析HashMap中的put()和get()方法。下面将会分析这部分的源码,如果觉得源码分析内容太啰嗦,可以跳过源码部分,直接看源码下面的总结。put()方法源码分析HashMap的put()方法是我们最常用的方法,但是put()方法是怎么工作的呢?put()方法 /** * HashMap的put()方法支持k...

2019-02-15 22:00:13 718

原创 HashMap剖析之内部结构

前言本文是基于Java 8的HashMap进行分析,主要是介绍HashMap中的成员变量和类变量的用途,以及分析HashMap的数据结构。变量分析在HashMap中存在多个成员变量和类变量,搞清楚它们的用途有助于我们更深入了解HashMap,下面是它们的介绍: /** * 默认的初始容量,必须为2的次幂 */ static final int DEFAUL...

2019-02-11 22:05:14 262

原创 Spring如何判断当前JDK是否支持Optional

前言Optional指的是JDK 8的java.util.Optional。我在阅读源码时发现了Spring是使用反射和静态代码块实现了当前JDK是否支持Optional的判断。关键类是org.springframework.beans.factory.support.DefaultListableBeanFactory。关键代码public class DefaultListableBea...

2019-02-09 21:50:56 356

原创 Spring中线程安全的单例模式源码分析

前言最近学习Spring AOP源码时,看到了Spring源码中十分惊艳的一个线程安全类,所以特意记录下来。源码public abstract class GlobalAdvisorAdapterRegistry { /** * 利用类变量防止单例对象再次被初始化 */ private static AdvisorAdapterRegistry instance = new D...

2019-01-15 21:35:31 313

原创 Spring AOP的Advice接口设计

Advice直译的意思是通知,指的是在方法的执行生命周期中AOP的增强操作,其关键接口设计如下其中各接口介绍如下:Advice:一个用于标识的接口,也是所有通知的最终父接口BeforeAdvice:前置通知接口,指的是某些行为触发前的通知MethodBeforeAdvice:方法前置通知接口,指的是方法被执行前会触发的通知AfterAdvice:后置通知接口,指的是某些行为触发后的通...

2019-01-11 23:05:41 548

原创 Windows下使用Java的注意事项

注意事项JDK/JRE的安装路径或者项目中使用的任何文件路径中的文件夹都不允许带有中文或者空格原因分析中文由于Java默认的字符编码是UTF-8,而国内的Windows默认的字符编码是GBK。这样在加载文件路径的时候,会出现字符乱码导致无法识别路径空格带空格的文件路径有可能会被进行特殊字符转义处理,把空格替换成%20。这样也会导致文件路径无法识别...

2018-12-26 11:01:08 335

原创 Java8的Optional

简介Optional是Java 8中为了处理空指针异常而新增的类,同时这个类也提供了很多支持lambda表达式的方法。下面我会通过几个例子向大家展示如何使用Optional。实战初始化Optional提供3个方法用于初始化Optional对象:Option.empty()Optional.ofNullable()Optional.of()示例//构建一个空的Optional...

2018-12-17 23:04:21 526

空空如也

空空如也

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

TA关注的人

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