自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 开发速度慢?没关系安装这16个插件开发速度直接起飞!

当前使用的IDEA版本是2020.1。随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐。以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件。1google-java-format 代码自动格式化简介:google-java-format插件可以帮助我们不通过对应的快捷键就可以实现特定方式下自动格式化代码。2Translation简介:翻译插件,支持google翻译、百度翻译、有道翻译。使用:快捷键Ctrl ...

2020-05-31 20:53:58 515

原创 史上最快理解Spring Cloud Gateway 全局通用异常处理方法!

为什么需要全局异常处理在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回// 摘至 spring cloud alibaba console 模块处理@ControllerAdvicepublic class ConsoleExceptionHandler { @ExceptionHandler(AccessException.class) private ResponseEntity<String&

2020-05-30 22:53:38 1747

原创 一文带你理解Spring中的IOC和AOP!

我们是在使用Spring框架的过程中,其实就是为了使用IOC(Inversion of Control)和AOP(Aspect-Oriented Programming),这两个是Spring的核心。Spring是什么Spring框架是一个开放源代码的J2EE应用程序框架,是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是一个开源容器框架,它集成各类型的工具,通过核心的Bean factory实现了底层的类的实例化和

2020-05-30 16:26:50 692

原创 Redis简单动态字符串(simple dynamic string,SDS)剖析!

Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。SDS的定义每个sds.h/sdshdr结构表示一个SDS值: Struct sdshdr{//记录buf数组中已使用字节的数 //等于SDS所保存字符串的长度 int len; //记录buf数组中未使用字节的数量 int free; //...

2020-05-30 16:24:33 492

原创 Mac下忘记MySQL密码可以这样做!

Mac下忘记MySQL密码怎么办?按照以下操作步骤即可修改密码。step1:关闭mysql服务:苹果->系统偏好设置->最下边点MySQL在弹出页面中,关闭MySQL服务(点击Stop MySQLServer)step2:进入终端,输入命令:cd /usr/local/mysql/bin/回车后,登录管理员权限,执行命令:sudo su回车后,输入命令来禁止MySQL验证功能./mysqld_safe --skip-grant-ta...

2020-05-30 16:22:12 418

原创 常见的限流算法须知!

我们常见的限流算法有四种:计数器(固定窗口)算法、滑动窗口算法、漏桶算法、令牌桶算法。为什么要限流资源是有限的,我们的系统的处理能力也是有限的,对于那些已经超出系统处理能力的请求我们应该尽可能早的识别出来并让其等待或拒绝这些请求。如果当大流量进入系统的时候不进行限流,那么将超出系统的负载,这种情况会导致服务异常、宕机等情况的出现。常见的四种限流算法1.计数器算法计数器算法是限流算法里最简单也是最容易实现的一种算法。比如我们规定,对于A接口来说,我们1分钟的访问次数不能超过100个

2020-05-30 16:19:48 431

原创 框架源码学习要从Mybatis开始!

Mybatis虽然小,但是五脏俱全,而且设计精湛。这个黑盒背后是怎样一个设计,下面讲讲我的理解一、容器ConfigurationConfiguration像是Mybatis的总管,Mybatis的所有配置信息都存放在这里,此外,它还提供了设置这些配置信息的方法。Configuration可以从配置文件里获取属性值,也可以通过程序直接设置。用一句话概述Configuration,他类似Spring中的容器概念,而且是中央容器级别,存储的Mybatis运行所需要的大部分东西。二、动态SQL.

2020-05-30 16:07:05 474

原创 史上最快教程Docker搭建RocketMQ!!

最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。 从github上面拉取项目(https://github.com/modouxiansheng/about-docker) 修改broker.conf中的brokerIP1参数,修改为本机IP 进入docker-compose.yml文件所在路径,执行docker-compose .

2020-05-30 14:39:10 830

原创 一文教你学会 Java常用业务代码——(IO篇)

本篇文章对日常开发中常用的Java IO场景进行整理,涉及功能有:判断目录/文件、创建目录/文件、获取文件属性、通过文件头判断文件是否为Excel、字节流/字符流读取文件、字节流/字符流写入文件、对象序列化反序列化、图片增加水印。FileJava中File类提供了一系列方法让开发人员对于目录文件进行操作,通常是对目录文件增删: 判断File是文件还是目录 //===判断File是文件还是目录,目录则递归遍历 public static void isDir(File fi

2020-05-30 14:29:14 739

原创 SpringBoot + Redis 分布式锁,模拟实现抢单功能

本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker;本篇内容节点如下:jedis的nx生成锁 如何删除锁 模拟抢单动作(10w个人开抢) jedis的nx生成锁 对于java中想操作redis,好的方式是使用jedis,首先pom中引入依赖:<dependency><groupId>redis.clie...

2020-05-29 23:01:25 717

原创 java基础|java中的二进制运算以使用场景

本文知识点 java中用二进制使用场景 java中声明二进制数据 java中拼接二进制数据 二进制的使用场景做标识用二进制就是只有0和1这两个数.这和我们现实很多场景都类似, 如男/女,是/否,是否已读等.那么对一个主体的描述, 我们可以有一个二进制串来标识一系列的flag.(小刀已改名为凑心啦,至于原因嘛, 因为现在在做一个小程序, 估计不久后会和大家见面)如有一个心,同时还有一个描述的二进制串 1101. 第一个1代表男,第二个1代表矮.第三个0 代表.

2020-05-29 16:34:08 688

原创 JVM | GC收集器概念篇

本文知识点 STW(Stop the world)的概念 安全点的概念 GCRoots的概念 Remember Set (记忆集) 本篇内容以概念为主,先了解概念,知道有哪些名词,东西, 再实战看里面的东西去加深理解GC总述java在运行时,生成的对象都在堆里存放着,有些对象的生命周期很短,只几行代码运行完就没用了.没用了之后不能放任他在堆里, 要进行回收,把空间空出来,给后面的对象.我们常用收拾屋子来比喻jvm清理堆.这里, 我们不仅仅有个房子, 我们还

2020-05-29 16:31:25 335

原创 JVM | 运行时常量池和字符串常量池及intern()

本文知识点这一块的知识点,一直都是最为混乱的,网上很多博客有的都自相矛盾,因此,这一块需要深入学习,本文以JDK11为基础,尽量参考官方文档 静态常量池 运行时常量池及字符串的引用 各种String语句变量的地址 参考文档:https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-5.html#jvms-5.1静态常量池静态常量池也常常称做为class常量池,是每个.class文件都有的,如测试代码如下:

2020-05-29 16:29:52 704

原创 JVM | 使用HSDB探秘运行时数据区

本文知识点 HSDB的使用 HSDB查看栈信息 HSDB查看堆信息 Class对象,static对象,Klass的关系 需要注意, 本文所用JDK环境为JDK11,网上有很多博客是基于JDK1.7, 两者的方法区的实现不一样,所以有些数据展示也会不同. HSDB的使用HSDB全称是HotSpotDebugger, HotSpot虚拟机的调试工具,在使用的时候,需要程序处在暂停的状态,可以直接使用Idea的debug工具. 使用HSDB可以看到堆栈里面相关

2020-05-29 16:28:18 1049

原创 JVM | 运行时数据区的JVM规范

本文知识点 JVM虚拟机制定的规范 方法区,永久代,元空间的区别 总述在这一块的学习时, 我们容易陷入一个误区,就是一上来就直接搜索运行时数据区, 网上有些文章对虚拟机规范和HOTSPOT实现没有区分开,导致有时候大家看的两篇文章解释尽不一样. 自己也容易糊涂. 所以本篇特地将两个拆开讲. 且尽量以官方文档为准我们可以把jvm规范理解成接口. 就是要这些东西, 然后不同的虚拟机厂商有不同的实现方案. 如方法区,hotspot 用了1.7及以前用了永久代, 1.8及以后用了元数据区

2020-05-29 16:26:44 419

原创 简单就能了解JVM | 类的初始化及新建过程

本文知识点 类的状态变化 <clinit> 方法 实例对象的创建 类的状态变化类的初始化主要经历加载->链接(验证,准备,解析)->初始化这些阶段,与JVM中相对应的状态如下图所示instanceKlass.hppallocated: 已分配,但尚未链接loaded: 已加载,并插入到JVM内部类层次体系中,但尚未链接linked: 已链接,但尚未初始化being_initialized: 初始化中fully_initia

2020-05-29 16:23:20 390

原创 简单就能了解JVM | OOP-Klass 二分模型

本文知识点 OOP和klass的概念 OOP和Klass源码 HSDB的使用 OOP和klass的概念OOPS: 即普通对象指针,用来描述对象实例信息Klass: Java类的C++对等体,用来描述Java类总体上是多个OOP和一个Klass是对应的. 相当于一个类可以有多个实例A a = new A() ; A a1 = new A();a,a1 分别对应着不同的OOP, 对应着同一个KlassOOP和Klass源码OOP中有很多模块,其中..

2020-05-29 16:18:30 638

空空如也

空空如也

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

TA关注的人

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