自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 问答 (10)
  • 收藏
  • 关注

原创 【优雅代码】19-spring下的优秀工具类-加载

spring中有很多神奇的匹配、加载,它用到的工具类会在该篇章中介绍

2022-01-18 22:25:10 203

原创 【优雅代码】18-利用function实现list、tree互转工具

【优雅代码】18-利用function实现list、tree互转工具欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。可直接运行的完整代码视频讲解上一篇guava限流源码解析下一篇spring下的优秀工具类(进阶)1.背景介绍在日常工作中我们会遇到数据库查出来是list要递归转成树如果每个都去写方法那么效率就会很低,

2022-01-17 21:03:33 362

原创 【优雅代码】17-guava限流源码解析

【优雅代码】17-guava限流源码解析欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。可直接运行的完整代码上一篇guava布隆过滤与限流算法源码解析下一篇利用function实现list、tree互转工具1.背景承接前一篇章的guava精选方法2.限流这部分和其它限流算法的令牌桶算法基本一致2.1使用@Sn

2022-01-16 21:41:33 153

原创 【优雅代码】16-guava布隆过滤源码解析

【优雅代码】16-guava布隆过滤源码解析欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。可直接运行的完整代码上一篇guavaCache本地缓存使用及源码解析下一篇guava限流源码解析1.背景承接前一篇章的guava精选方法2.布隆过滤这部分和redis的BitMap思路基本一致2.1使用public s

2022-01-15 20:37:12 111

原创 【优雅代码】15-guavaCache本地缓存使用及源码解析

【优雅代码】15-guavaCache本地缓存使用及源码解析欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。视频讲解可直接运行的完整代码上一篇guava精选方法及eventBus观察者模式源码解析下一篇guava布隆过滤与限流算法源码解析1.背景承接前一篇章的guava精选方法2.cache这一块的功能设计真的

2022-01-14 21:51:44 125

原创 【优雅代码】14-guava精选方法及eventBus观察者模式源码解析

google的guava是非常经典的工具类,但是java经过多年的发展,不少方法已经有了优秀的替代方案,以下分享是个人在日常开发的时候依然觉得非常经典的方法

2022-01-13 21:45:24 133

原创 【优雅代码】13-linkedList插入真的比arrayList快么

在学习中,常规的方法总是先去模仿,硬性的接收知识,但是实际情况往往出人意料,等到构建起大体框架后再去探寻实际情况

2022-01-12 20:10:11 125

原创 【触手可及】01-stream的基础使用及基本原理

stream基础向,如果已经很熟了就忽略这篇文章

2022-01-11 19:43:26 152

原创 【优雅代码】12-hessian、kryo、json序列化对比

平常我们在使用rpc调用或者将其持久化到数据库的时候则需要将对象或者文件或者图片等数据将其转为二进制字节数据,那么各自的优劣是什么呢。

2022-01-10 19:42:32 308

原创 【优雅代码】11-stream精选/@functional懒加载示例

主要是对@functional简单示例,复杂示例会在18~20期展示。之前在优雅代码系列的第3节分享过了optional的用法,这边就不再赘述了

2022-01-09 19:40:11 460

原创 【优雅代码】10-拒绝if/else数据校验及转换

避免if、else,只用注解完成校验及格式化

2022-01-08 23:40:28 283

原创 【优雅代码】09-idea断点、插件、模板合集

用好idea可以辅助程序员更快的开发,从效率和bug上都能取得更优秀的成绩

2022-01-07 19:34:21 307

原创 【优雅代码】08-构建自己的连接池

线程池的优势自不必多说,连接池和线程池有着众多相通之处,比较常见的连接池有druid、jedis等,但若是某些自研数据库等该如何构建自己的连接池就成问题。笔者使用http这一工具进行构建,可以对比效率差异。核心包为common-pool2

2022-01-06 19:33:33 257

原创 【优雅代码】07-spring下的优秀工具类

【优雅代码】07-spring下的优秀工具类欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。视频讲解可直接运行的完整代码1.反射相关(重要)1.1背景ReflectionUtils和AnnotationUtils,各种姿势进行反射,最关键是不用抛异常出去,相当舒心1.2使用@Nullableprivate st

2022-01-05 19:21:33 154

原创 【优雅代码】06-apache下的优秀工具类

apache下优秀的工具类

2022-01-04 19:44:30 764

原创 【优雅代码】05-从hashMap源码介绍位运算符

在看源码的时候往往会被位运算符劝退,但其实位运算符虽然难,但是用的时候使用规律/公式的。笔者以hashMap为例介绍位运算符

2022-01-03 19:29:51 148

原创 【优雅代码】04-1行代码完成多线程,别再写runnable了

java8提供的CompletableFuture以及匿名函数可以让我们一行代码完成多线程

2022-01-02 19:10:19 222

原创 【优雅代码】03-optional杜绝空指针异常

在日常开发中总会遇到NPE问题,但是java提供了optional,可以让我们流畅写代码的同时避免NPE

2022-01-01 20:54:06 400

原创 【优雅代码】02-自动化工具合集介绍

在日常工作中总会需要重复的工作,而作为一个现代人,应该学会使用工具避免重复的工作。java能做很多事情不止是web方向,而如果不限于java能做的事情就更多了

2021-12-31 20:08:17 504

原创 【jvm】03-写了final就是常量池了么

【jvm】03-写了final就是常量池了么欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。gitee目录知乎目录csdn目录视频讲解上一篇下一篇1.jre和jdk的关系2.运行时数据区域2.1.程序计数器它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成

2021-05-09 11:05:33 87

原创 【算法】01-数据结构概述

数据结构概述(注意区分jvm堆与堆/jvm栈与栈)1.友情链接目录文字版屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。2.数据结构的物理存储方式顺序结构:和列表基本一致链式结构:和链表基本一致3.逻辑结构单向链表:每个节点会存储下一个节点的地址双向链表:每个节点会存储下一个节点和上一个节点的地址列表结构:参考ArrayList,内存地址紧凑排列串结构:参考字符串,多以列表方式实现栈和队列:参考Stack和Q

2020-12-08 00:03:00 150

原创 【tomcat】01-tomcat启动主要流程

tomcat启动主要流程1.友情链接目录视频讲解文字版屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。注意以下流程每个tomcat版本略有不同2.整体启动打开startup.sh可以看到启动了catalina.sh打开catalina.sh可以看到启动了bootstrap.jar于是找到Bootstrap.java主函数执行main方法/如果是spring boot则直接使用tomcat.java的main找到sta

2020-12-08 00:01:25 288

原创 【jvm】09-full gc分析思路

full gc分析思路一.友情链接目录可直接运行的完整代码视频讲解文字版屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。二.命令界面2.1Jmap堆命令jmap -histo:live {pid} | head -13num:序号instances:实例数量bytes:占用空间大小class name:类名称,[C is a char[],[S is a short[],[I is a int[],[B is a

2020-11-23 08:02:16 192

原创 【jvm】08-垃圾回收器那么多傻傻分不清?

垃圾回收器那么多傻傻分不清?一.友情链接目录视频讲解文字版屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。二.垃圾收集算法2.1标记-复制算法该算法将内存分为2块均等的,当该区域使用完毕后就一次性复制到另一块区域。在Hotspot中实现即为s0与s1,只不过做了优化吧伊甸园分了出去,目前年轻代的垃圾收集器都是用该算法。标记-复制算法极度浪费空间,在新生代有95%的对象都会被回收掉自然还好,但是在老年代就行不通了于是演变出了后

2020-11-23 08:00:51 87

原创 【jvm】07-偏向锁、轻量锁、重量锁到底是啥?

偏向锁、轻量锁、重量锁到底是啥?一.友情链接目录可直接运行的完整代码视频讲解文字版二.概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多场景下,让计算机同时 去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与 它的存储和通信子系统的速度差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。这个在 一行代码完成多线程有写过如何分配线程,原理基本一致。由于计算机 的存储设备与处理器的运算速度有着几个数量级的差距,所以现代计算机

2020-11-22 17:36:35 295

原创 【jvm】06-new一个对象到底占了多少内存?

new一个对象到底占了多少内存?一.友情链接目录可直接运行的完整代码视频讲解文字版二.对象的创建当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。1.空间分配指针碰撞假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一 边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那 个指针向空闲

2020-11-22 12:48:08 721

原创 【jvm】05-为什么你写的代码有时候和预期不一致

为什么你写的代码有时候和预期不一致一.友情链接目录视频讲解文字版二.前端编译2.1javac编译器即一般所说的编译,从javac代码的总体结构来看,编译过程大致可以分为1个准备过程和3个处理过程,它们分为1)准备过程:初始化插入式注解处理器2)解析与填充符号表过程,构造抽象语法树3)插入式注解处理器的注解处理过程4)分析与字节码生成过程:语法检查->控制流分析->解析语法糖->字节码生成语法糖主要有以下几种:泛型、自动拆装箱遍历循环、条件编译类型擦除(编译前)p

2020-11-22 09:13:06 126

原创 【jvm】04-我偷偷改了你编译后的class文件

我偷偷改了你编译后的class文件1.友情链接目录可直接运行的完整代码视频讲解文字版2.准备工作准备一份代码public class TestEntity { private String name;}编译所得cafe babe 0000 0034 0012 0a00 0300 0f070010 0700 1101 0004 6e61 6d65 0100 124c6a61 7661 2f6c 616e 672f 5374 7269 6e673b01 0006 3c69

2020-11-12 00:31:13 132

原创 【jvm】02-手写自己的类加载器

当我自己写一个java.lang.String自己加载会发生什么友情链接目录可直接运行的完整代码视频讲解文字版如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要简单手写自己的类加载器创建一个类继承ClassLoader,然后重写findClass、loadClass这两个方法findClass的方法private static byte[] loadByte(String name) throws Exception { name = name.replaceAll("\\

2020-09-05 18:14:57 227

原创 【jvm】01-双亲委派都会说,破坏双亲委派你会吗

jvm双亲委派及其破坏类的生命周期首先可以从图中明确类的生命周期1)遇到new、getstatic、putstatic或invokestatic这四条字节码指令时,如果类型没有进行过初始 化,则需要先触发其初始化阶段。能够生成这四条指令的典型Java代码场景有: ·使用new关键字实例化对象的时候。 ·读取或设置一个类型的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段除外) 的时候。·调用一个类型的静态方法的时候。2)使用java.lang.reflect包的方法对类型进行反射调

2020-08-30 16:18:47 135

原创 【优雅代码】01-lombok精选注解及原理

【优雅代码】01-lombok精选注解及原理欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。可直接运行的完整代码视频讲解1.背景介绍在日常开发中免不了进行一些繁琐的代码自动生成,虽然ide的功能已然非常强大但是并不能够做到动态,lombok可以非常好的解决这个问题。它会在生成class文件时将其进行编译成平常所写的代码

2020-07-12 11:55:07 367

原创 redis集群

redis集群引言安装redsis集群第一步安装redis第二步修改配置文件第三步安装ruby第四步分别启动redis第五步启动集群其他命令ruby版本过低引言redis作为提升应用程序的第一步重要程度显而易见,而且使用方便本篇介绍如何进行redis集群查看redis如何安装转如下链接https://blog.csdn.net/seal_li/article/details/852249...

2018-12-23 18:38:31 231

原创 linux安装redis

安装redis引言安装redsis第一步下载下载压缩包第一步下载依赖第二步安装第三步验证安装是否成功第四步修改配置文件第五步启动其他命令引言redis作为提升应用程序的第一步重要程度显而易见,而且使用方便安装redsis第一步下载下载压缩包官网:https://redis.io/建议下载比最新版低一版的版本,低版本漏洞较多,高版本兼容性差第一步下载依赖yum install gcc...

2018-12-23 18:30:22 146

原创 技术介绍-大型架构日志中间件

技术介绍-大型架构日志中间件引言日志接入层日志缓存层日志处理层日志存储层日志展示层引言本文只是介绍实现思路针对使用技术进行介绍,无相关代码。推荐技术ELK一条龙服务日志接入层推荐使用scribe,logstash,flume保证高并发环境日志不会丢失日志缓存层推荐使用kafak使用spark消费注意需部署在zookeeper日志处理层推荐使用hadoop,spark,sto...

2018-12-09 18:39:37 809

原创 百度、谷歌等搜索引擎的实现原理

随笔-百度、谷歌等搜索引擎的实现实录引言第一步分词第二步匹配关键词第三步清洗获得的文章第四步排序输出重点说明引言本文只是介绍实现思路针对使用技术进行介绍,无相关代码。推荐技术solr ,hadoop ,lucene/ElasticSearch,nutch一条龙服务第一步分词推荐使用IKanalyze或者mmseg4j,对中英文良好的支持,作用为将一句话拆成多个词汇。亦可使用多个分词技术...

2018-12-07 11:52:42 4287

原创 10亿高并发量集群架构入门centons7安装nginx、lvs、F5

随笔-10亿高并发量集群架构入门centons7安装nginx、lvs、F5引言安装tomcat第一步下载下载压缩包安全性建议安装nginx第一步下载依赖第二步安装第三步修改nginx.conf第四步启动安全性建议安装lvsF5不用安装引言tomcat调优后大概只能承受500人nginx集群tomcat后调优大概能承受10万人lvs集群nginx后大概可以承受50万人F5集群lvs后可承...

2018-12-04 15:01:03 1357

空空如也

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

TA关注的人

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