自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BIO、NIO

待补充。

2024-01-02 23:43:33 559

原创 Zookeeper的Leader选举机制

待补充。

2023-12-27 23:10:39 368

原创 Zookeeper的使用场景

集群管理统一命名服务分布式配置管理分布式消息队列分布式锁分布式协调等功能。

2023-12-26 23:02:35 593

原创 Zookeeper入门

待补充。

2023-12-23 23:21:22 393

原创 Kafka日志

待补充。

2023-12-22 07:23:21 520

原创 KafKa基本原理

待补充。

2023-12-15 08:04:05 830

原创 RocketMq高性能核心原理

消息持久化延迟消息。

2023-12-10 23:21:59 65

原创 Redis-05 Redis开发规范与性能优化

user:{uid}:friends:messages:{mid} 简化为 u:{uid}:fr:m:{mid}比如:trade:order:1(业务名:表名:id)空格,换行,单双引号,其他转义字符等。2.选择合适的数据类型。3.key设置过期时间。1.避免bigkey。

2023-12-04 00:03:55 37

原创 Redis-04 Redis高并发缓存架构

待补充。

2023-11-30 07:54:59 41

原创 Redis-03 Redis集群

主从哨兵cluster待补充。

2023-11-27 08:37:55 22

原创 Redis-02 Redis持久化

RDBAOF待补充。

2023-11-24 08:40:35 18

原创 Redis-01 Redis核心数据结构

Stringlistsethashzset。

2023-11-21 23:20:55 24

原创 Spring-07 Spring 事务

11.Spring事务的传播机制是基于数据库连接来做的,⼀个数据库连接⼀个事务,如果传播机制配置为需要新开⼀个事务,那么实际上就是先建⽴⼀个数据库连接,在此新数据库连接上执⾏sql。5.并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,这是实现Spring事务⾮。10.Spring事务的传播机制是Spring事务⾃⼰实现的,也是Spring事务中最复杂的。8.如果出现了异常,并且这个异常是需要回滚的就会回滚事务,否则仍然提交事务。6.然后执⾏当前⽅法,⽅法中会执⾏sql。

2023-11-19 23:35:06 28

原创 Spring-06 Spring AOP

aop原理。

2023-11-15 23:30:59 31

原创 Spring-05 循环依赖

循环依赖。

2023-11-11 23:17:04 30

原创 Spring-04 依赖注入

手动注入自动注入

2023-11-08 23:02:52 30

原创 Spring-03 Bean的生命周期

Bean的生成。

2023-11-05 22:59:28 48

原创 Spring-02 手写一个简单的Spring

Spring的底层源码启动过程。

2023-11-03 09:30:50 33

原创 Spring-01 Spring原理

Bean的生命周期依赖注入。

2023-10-31 22:34:42 40

原创 Java并发编程-08 JMM内存模型

待补充...

2023-10-28 23:12:22 68

原创 Java并发编程-07 Fork/Join

应用场景使用原理。

2023-10-26 23:19:55 40

原创 Java并发编程-06 线程池

原理

2023-10-22 22:51:12 34

原创 Java并发编程-06 阻塞队列BlockingQueue

介绍应用场景原理

2023-10-20 22:35:32 31

原创 Java并发编程-05 AQS原理

MESA模型AQS原理

2023-10-18 22:48:32 33

原创 Java并发编程-04 JUC并发工具类

SemaphoreExchangerPhaser。

2023-10-16 23:10:20 41

原创 Java并发编程-03 CAS详解

CASAtomic

2023-10-14 23:09:20 31 1

原创 Java并发编程-02 ThreadLocal

使用原理

2023-10-11 22:47:00 28

原创 Java并发编程-01 线程与并发

进程和线程上下文切换并行和并发。

2023-10-06 23:14:46 38 1

原创 JVM-08 class常量池和运行时常量池

因为有"test"这个字面量,创建对象s的时候,JVM会先去常量池中通过 equals(key) 方法,判断是否有相同的对象,如果有,则直接返回该对象在常量池中的引用;,只有到运行时被加载到内存后,这些符号才有对应的内存地址信息,这些常量池一旦被装入内存就变成运行时常量池,对应的符号引用在程序加载或运行时会被转变为被加载到内存区域的代码的直接引用,也就是我们说的。字符串常量池底层是hotspot的C++实现的,底层类似一个 HashTable, 保存的本质上是字符串对象的引用。

2023-10-06 11:09:03 84 1

原创 JVM-07 JVM调优实战

Arthas使用GC日志。

2023-10-04 10:04:28 59 1

原创 JVM-06 JVM调优工具

Jmap Jstack Jinfo jstat

2023-10-02 22:31:54 104 1

原创 JVM-05 G1和ZGC垃圾回收器

G1ZGC

2023-09-30 23:18:47 46 1

原创 JVM-04 垃圾回收机制

垃圾回收算法垃圾收集器垃圾收集底层算法实现

2023-09-27 22:41:03 44 1

原创 JVM-03 对象创建

对象创建流程划分内存的方法对象头组成对象内存分配。

2023-09-25 23:27:02 41 1

原创 JVM-02 jvm整体结构及内存模型

元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M左右,达到该值就会触发full gc进行类卸载, 同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值;调整元空间的大小需要Full GC,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值大,对于8G物理内存的机器来说,设置为256M。

2023-09-23 22:38:24 40 1

原创 JVM-01 类加载机制

1.类加载运行过程2.类的生命周期3.类加载器4.双亲委派机制。

2023-09-21 23:41:32 18

原创 Mysql-10 InnoDB底层原理

update sql执行流程redo log 格式 写入磁盘机制big log 格式 写入磁盘机制undolog错误日志通用查询日志

2023-09-21 14:09:00 21

原创 Mysql-09 Mysql的内部组件结构

MySQL 拿到一个查询请求后,会先到查询缓存拿数据,之前执行过的语句及其结果以 key-value 对的形式缓存在内存中。缓存中存在直接返回给客户端。3、一个用户成功建立连接后,即使用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。只要有对一个表的更新,这个表上所有的查询缓存都会被清空,对于更新频繁的场景来说,查询缓存的命中率会非常低。客户端和连接器TCP 握手后,连接器就开始认证客户端的身份(用输入的用户名和密码)。

2023-09-18 23:14:56 25

原创 Mysql-07 事务原理

4.用Spring开发程序时,如果不设置隔离级别默认用Mysql设置的隔离级别,如果Spring设置了就用Spring设置的隔离级别。3.事务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制如何解决多个事务的并发维问题?2.多个事务对同一批数据增删改查,会导致脏写、脏读、不可重复读、幻读这些问题,如何解决?当多个事务修改同一行数据,有可能最后的更新覆盖了由其他事务所做的更新。2.事务中避免远程调用,远程调用要设置超时,防止事务等待时间太久。事务A读取到了事务B已经修改但未提交的数据。

2023-09-17 15:02:11 27 1

原创 Mysql-06 表关联查询原理

整个过程对t1和t2都做了一次全表扫描,扫描总行数t1+t2=100100,join_buffer里的数据是无序的,t1 中的每一行都要做 100 次判断,所以内存中的判断次数是 10000 * 100 = 100 万次,join_buffer 由参数 join_buffer_size 设定的,默认值是 256k。把驱动表的数据读入到 join_buffer 中,然后扫描被驱动表,把被驱动表每一行取出来跟 join_buffer 中的数据做对比。1.把 t2 的所有数据放入到 join_buffer 中。

2023-09-14 23:46:16 35

空空如也

空空如也

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

TA关注的人

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