自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 神奇的BeanDefinitionRegistrar

BeanDefinitionRegistrar、RPC、HttpUtil、RPC、BeanFactory

2022-09-24 14:42:02 398 1

原创 智能的条件判断

变量、条件、api、智能的或与条件判断

2022-09-24 14:37:47 345

原创 为什么把String类型设计成不可变

String类型常量保存在字符串常量池中,可以共享使用,减少空间资源的浪费。 2. 使多线程安全,在并发场景下,对一个共享变量的的写操作是不安全的,不可变对象不能被写,保证了多线程的安全。...

2022-07-04 00:03:28 145

原创 红黑树与跳表

redis的zset为什么用跳表而不用红黑树?HashMap为什么用红黑树而不用跳表?

2022-07-03 23:49:08 320

原创 hashmap扩容为什么是2的幂次方

hashmap扩容为什么是2的幂次方

2022-07-03 22:06:11 161

原创 为什么需要线程池

为什么需要线程池

2022-07-03 21:31:22 181

原创 Java内存模型

Java内存模型  我们知道就是现在的计算机大多都是多CPU的嘛,并且每个CPU都有自己的缓存,像L1,L2缓存,那么就有可能会出现,问题一:  首先就是缓存不一致的情况,在不同的计算机中提供了不同的缓存一致性。像常用的比如MESI协议,使用到了总线嗅探,当一个CPU去修改自己的缓存数据时,硬件就会广播通知到总线上其他所有的CPU,对应每个CPU就有特殊的硬件去监听广播事件,并检查是否有相同的数据被缓存在自己的CPU,如果有的话,就会去修改数据对应的缓存页。问题二:  其次计算机对于指令是采用了重

2022-05-10 15:23:39 89

原创 JVM调优理解

JVM调优理解调优核心概念调整内存大小垃圾收集器设置符合预期的停顿时间调整对象升老年代的年龄调整大对象的标准文章是笔者对JVM调优的笼统理解,因此不会写具体的调优命令,需要到具体某方面时,读者再去自行查询。调优核心概念在这之前首先我们要知道怎样才算是“优”,不能笼统的说我的程序性能很好,所以就需要有一个具体的指标来衡量性能情况,而在JVM里面衡量性能两个指标分别“吞吐量”和“停顿时间”。吞吐量 :程序运行过程中执行两种任务,分别是执行业务代码和进行垃圾回收,吞吐量大意就是说程序运行业务代码的时间越多

2022-05-06 21:12:59 224

原创 虚拟地址、虚拟内存、物理地址、物理内存

虚拟地址、虚拟内存、物理地址、物理内存物理内存和虚拟内存虚拟地址、物理地址物理内存和虚拟内存物理内存物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就分配完了,于是没有得到分配资源的进程就只能等待。当一个进程执行完了以后,再将等待的进程装入内存。这种频繁的装入内存的操作是很没效率的由于指令都是直接访问物理内存的,那么我这个进程就可以修改其他进程的数据,甚至会修改内核地址空间的数据,这是我们不想看到的虚拟内存:通过 虚拟内存 可以让程序可以拥有超过系统物

2022-03-23 11:21:53 1876

原创 分库分表Sharding

这里写目录标题前言什么是分库分表?使用场景分库分表的复杂性技术选型demo前言笔者学年尚浅,目前接触的项目数据量不是很多,单表数据库最多的表数据量为562w,是一个学校的课程信息表,但是需要关联的表还是挺多的,如学籍表,如用户表等,按目前业务的发展来看,数据的增长量还是较快的。目前的查询效率未到千万级别,再加上有缓存的配置,所以查询也不算慢。但是以防之后数据量过多导致查询效率低下,笔者学了一点分库分表的知识,与读者分享一下。提醒:分库分表会给系统带来巨大的复杂性,不是万不得已建议不要提前使用。作

2022-03-16 15:00:59 3087 1

原创 【JAVA手写系列】(持续更新)

JAVA手写系列前言生产者消费者问题前言这篇文章主要是以JAVA代码展示一些基础及面试要求手写的代码段,想到啥就写啥,也将持续更新,觉得还OK的话,可以放在收藏夹吃灰。生产者消费者问题生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量

2022-03-14 19:34:33 1057

原创 【JVM】你真的了解垃圾回收吗

嘿嘿欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器

2022-03-13 16:38:05 791 1

原创 【用分治减治改造乘法与01背包问题】

俄式乘法大整数相乘01背包问题

2022-01-01 11:39:05 487

原创 缓存一致性

缓存一致性方案选择方案分析更新缓存,更新数据库更新数据库,更新缓存删除缓存,更新数据库更新数据库,删除缓存方案对比方案1和方案2的共同缺点方案3和方案4的共同缺点:总结推荐方案延时双删问题及解法:实际场景**写缓存策略****读缓存策略**注意方案选择更新缓存策略方式常用的有下面几种:先更新缓存,再更新数据库先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删除缓存方案分析更新缓存,更新数据库这种方式可轻易排除,因为如果先更新缓存成功,但是数据库更新失败,则肯定会造成数据

2021-12-05 02:00:40 101

原创 简单手写一个红黑树

package myStudy;import javax.swing.*;import java.io.OutputStream;import java.time.temporal.ValueRange;/** * @author zcj * @creat 2021-12-02-10:44 */public class RBTree<K extends Comparable<K>,V>{ private static final boolean RED..

2021-12-02 14:07:01 98

原创 你了解HashMap吗?

HashMap面试你对hash的理解?但是把任意长度的输入转化为固定长度的输出,会不会有问题啊?你对hash的理解?hash的基本概念就是把任意长度的输入通过一个hash算法之后,映射成固定长度的输出。这算是hash的概念吧但是把任意长度的输入转化为固定长度的输出,会不会有问题啊?这个肯定会有问题,在程序中可能...

2021-11-29 21:24:03 622

原创 LoadingCache动态过期时间踩坑

现在有这么一个业务,查看当前是第几周,理所当然,我想把它配置为LoadingCache缓存,这个缓存是没有put的,只是需要周一0时时更新一下就行,我本着不写额外定时器的想法,想直接在LoadingCache中直接动态的获取缓存过期时间,即缓存更新时间到周一0时的时间。我以为这样,当到了周一0时,要更新缓存,这个方法会被调用,所以当更新缓存时,它的过期时间也更改为到第三周周一的0时,结果,服务上线时,出大问题(ノ=Д=)ノ┻━┻。代码如下:@Bean("weekCache")public Loadi

2021-11-29 12:59:08 2126 1

原创 ThreadLocal讲解

简介一般情况下,我们创建的变量是可以被任意一个线程访问和修改的,但是有时候我们需要每个线程中都含有一个属于自己的变量,每个线程中的get和set方法不会影响到其他线程,这个时候就需要用到JDK提供的ThreadLocal类,ThreadLocal类主要解决的就是让每个线程都绑定一个自己的值,防止线程对可变的单实例变量或全局变量进行共享,实现了线程封闭。ThreadLocal实例一该例子出自《Java并发编程实战》,例举JDBC的Connection对象。在典型的服务器应用程序中,线程从连接池中获得一

2021-11-05 16:32:33 149

空空如也

空空如也

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

TA关注的人

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