自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 红黑树基础理解

红黑树

2023-08-26 16:25:48 144

原创 设计模式笔记

最复杂的一个工厂模式,需要理解产品族和产品等级,规定了所有可能被创建的产品集合,产品族中扩展新的产品困难,需要修改抽象工厂的接口,增加了系统的抽象性和理解难度,具体产品在应用层代码隔离,无须关心创建细节,将一个系列的产品族统一到一起创建;是指由一个工厂对象决定创建出哪一种产品类的实例,简单工厂是产品的工厂,工厂类负责创建的对象较少,客户端需要传入工厂类的参数,对于如何创建对象的逻辑不关心。缺点:工厂类的职责相对过重,增加新的产品时需要修改工厂类的判断逻辑,违背了开闭原则,不易于扩展过于复杂的产品结构;

2023-08-20 21:36:48 452

原创 JVM基础了解

根加载器 和扩展类加载器一般是加载 java自带的一些 类,【这样是一个沙箱机制,防止 用户随意篡改已有的类,比如用户自己写一个 java.lang.String类,用户自己写的类是没法被加载】找到对应的class文件,进行加载的时候,会打散.class的信息,类文件字节码流静态存储结构 放入 JVM的一块区域【Method Area】,方法区,所有的线程共享的一块区域。写好的java源文件,会编译生成16进制的字节码文件(**.class),cafe babe开头,有相应的格式,可交由jvm执行。

2023-08-16 22:48:33 660 1

原创 手写模拟Dubbo底层原理

利用http访问,简易模拟DUBBO底层RPC调用原理

2023-08-03 23:38:36 228

原创 AQS之ReentrantLock独占锁源码解析

不同的自定义同步器竞争共享资源的方式也不同。自定义同步器在实现时只需要实现共享 资源state的获取与释放方式即可,至于具体线程等待队列的维护(如获取资源失败入队/唤醒出队等),AQS已经在顶层实现好了。条件等待队列:调用await()的时候会释放锁,然后线程会加入到条件队列,调用signal()唤醒的时候会把条件队列中的线程节点移动到同步队列中,等待再次获得锁。对于共享锁而言,就是资源个数,每来一个-1,当减为0以后,后续的资源就不能获取到锁了。JAVA层对管程的实现:AQS抽象层,对AQS进行实现。

2023-04-04 12:26:45 295 2

原创 Synchronized 详解

synchronized 深入了解

2023-02-21 12:31:02 146

原创 mySQL服务主从实现

mysql主从实现,非原创,留存参考

2023-02-16 11:21:06 416

原创 CAS And Atomic

CAS 原理 及Atomic操作

2023-01-15 12:20:11 462

原创 并发编程之线程基础

进程的通信及线程的通信方式,及线程的一些基础知识

2023-01-03 21:47:23 583

原创 java线程池理解及底层

线程池理解及部分底层原理解析

2022-12-31 17:04:28 472

原创 ArrayList、LinkedList、HashMap、ConcurrentHashMap

从理解ArrayList开始,逐步了解hashMap底层原理及ConcurrentHashMap 源码理解

2022-12-06 22:04:16 433

原创 JMM(Java Memory Model)

Java虚拟机规范中定义了Java内存模型(共享内存模型,实现线程与线程之间的通信,其中主内存是逻辑空间),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必要时如何同步的访问共享变量。

2022-11-30 23:54:51 492

原创 Linux整体介绍与常用命令整理

Linux操作系统学习,结合VMware学习

2022-11-07 21:43:46 78

原创 SpringData JPA学习笔记

Spring Data JPA 是基于JDBC之上的一组规范接口,JPA是由ORM框架实现,JPA用面向对象的方式,通过ORM框架生成SQL进行操作(最后还是要用JDBC去操作数据库)

2022-10-10 10:07:02 524

原创 jvm调优笔记

jvm调优实战学习笔记,及常量池解析

2022-09-27 00:07:34 893

原创 垃圾收集器及算法

垃圾收集器及垃圾收集算法

2022-09-22 23:08:27 302

原创 SpringBoot日志

SpringBoot的日志学习整理

2022-09-06 22:28:12 189

原创 JVM+java的类加载机制

java命令运行某个main函数启动程序时,首先需要通过类加载器把主类加载到JVM; 加载→验证→准备→解析→初始化→使用→卸载

2022-08-25 00:15:16 371

原创 MySQL内核查询优化规则

MySQL在执行SQL语句的过程中会有很多的优化,比如:索引下推,回表中的MRR,索引合并等。但是在执行之前MySQL会依据一些规则,把SQL语句进行转换,以期可以达到某种可以高效执行的形式,这个过程可以被称作查询重写或者查询优化,很多时候这些优化可以由我们自行完成以减少MySQL的优化时间。...............

2022-08-15 23:43:20 921

原创 MySQL 慢查询及SQL执行时间监控

MySQL的慢查询,及mysql优化概念

2022-08-13 00:16:50 4702

原创 表结构及索引设计

MySQL表及索引高效设计

2022-08-11 23:58:34 471

原创 MySQL底层的MVCC与BufferPool缓存机制

MVCC机制,undo日志版本链与read view机制

2022-08-10 22:40:51 324

原创 MySQL事务 隔离级别与锁机制

事务的隔离级别概述和锁的简单理解

2022-08-09 00:04:54 661

原创 Explain详解

Explain的介绍及实际使用,结合MySQL的底层数据结构及原理,对SQL语句进一步进行优化方案的完善

2022-08-03 23:51:33 389

原创 mybatis-plus 实体类初步解析

mybatis-plus 实体类的创建及注意点,考虑数据库兼容性及分布式数据库存储数据的问题,默认用雪花算法64bit

2022-07-26 23:41:31 1890

原创 打印数字的位信息

数据底层都是二进制组成,如何打印int 和 long类型数字的位信息?int 类型为基本数据类型,占4字节,32位。long类型也为基本数据类型,占8字节,84位。这里需要用的 “&” 与运算。

2022-06-01 17:30:30 150

原创 MySQL 索引底层数据结构与算法

索引是帮助MySQL高效获取数据的排好序的数据结构。

2022-05-24 14:44:41 998

原创 TCP / IP

分层模型应用层一般为程序员经常使用的,就是和具体的协议,具体的程序打交道的层级

2022-05-07 23:07:13 762

原创 CPU的乱序执行

CPU在进行读等待的同时执行指令,是CPU乱序的根源。不是乱,而是提高效率。

2022-05-04 23:03:57 1459

原创 DCL单例模式是否需要加volatile

必须加volatile** * 双重校验锁 DCL(DoubleCheckLock) * 必须加volatile 防止指令重排 * 多线程情况下安全 */public class DCLType { // 增加volatile修饰保证线程之间的可见性 private static volatile DCLType INSTANCE; private DCLType() { } //可以整个方法加锁 但此时锁粒度太粗了,所以可降低锁粒度 publ

2022-05-04 16:53:15 339

原创 对象创建的过程

Object o = new Object();对象创建的时候存在一个半初始化状态;public class T { int m=8; public static void main(String[] args) { T t=new T(); //Object o = new Object(); }}// access flags 0x9 public static main([Ljava/lang/String;)V

2022-05-04 15:53:59 199

原创 Redis笔记

什么是NoSQLNot Only SQL 泛指非关系型数据库,传统的关系型数据库,很难应对web2.0时代,尤其是超大规模的高并发的社区。在大数据环境下发展的十分迅速。Redis

2022-04-28 23:39:15 1740

原创 MySQL 1093错误 及EXPLAIN分析

MySQL 1093错误

2022-04-28 16:26:30 2368

原创 JDK8 时间类

以前常用java.util.Date 类,现在常用java.time.LocalDate; 都有对应的格式化类Date类线程不安全,在高并发情况下会比较明显,而且经常通过new Date()方式出来的时间格式并不是完全想要的,可以通过 new SimpleDateFormat()对Date类型数据 进行格式化操作。

2022-04-19 11:33:07 442

原创 update语句造成的死锁

问题场景:

2022-04-18 12:07:21 5169 1

原创 Linux笔记整理

Linux是一个操作系统,一切皆文件:读、写、(权限)

2022-04-17 22:05:44 1315

原创 Mybatis-plus笔记整理

雪花算法数据库的扩展方式主要包括:业务分库,主从复制,数据库分表数据库分表​ 如果业务持续发展,同一业务的单表数据也会达到数据库服务器的处理瓶颈;例如淘宝几亿用户数据,因此需要对单表数据进行拆分。垂直分表​ 列也比较多,查询量比较大的时候,通常把经常被查询的字段 和 数据量比较大的字段,拆分到不同的表中,比如age,sex 主要是查询使用,nickname昵称字段和描述字段主要用于展示使用而且本身还比较长,可以将后面两个字段独立到另一个表中去,这样查询的age 和 sex时 能带来一..

2022-03-06 23:31:24 3048 1

原创 InnoDB引擎底层存储和缓存原理

一、数据页平时执行CRUD的时候,都会从磁盘加载数据页到Buffer Pool的缓存页,更新缓存页后,由异步线程刷回磁盘的数据页,MySQL进行数据操作的最小单位是数据页。每个数据页默认16kb,数据页由多个部分组成,如图在数据页还未写入数据时,是没有数据行的,只有空闲空间,写入就会占用空闲空间,直到空闲空间耗尽,数据页满了自然会开辟新的数据页来存储数据。数据页之间通过双向链表来链接。在文件头中存放了如当前页号、页类型、所属表空间、上一页号、下一页号等等。 数据页内部会存储一....

2022-03-04 14:47:23 838 1

原创 SpringBoot笔记整理

SpringBoot-jar:内嵌tomcat服务越来越多:springcloud约定大于配置的核心思想,核心:自动装配,同时集成了大量第三方库配置。优点:更快入门,开箱即用,内嵌容器简化web,没有冗余代码和很多xml配置微服务:是一种架构风格,在开发一个应用的时候,这个应用必须构建成一系列小服务的组合,可以通过http和rpc的方式进行通信。把每个功能元素独立出来,把独立出来的功能元素动态组合,需要的功能元素采取组合。微服务架构是对功能元素进行赋值,而没有对整个应用进行复制。1.直接

2022-02-28 22:26:41 384

原创 SpringMVC 笔记整理

SpringMVCssm: mybatis+Spring+SpringMVCSpring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。MVC: (Model View Controller )是一种软件设计规范;是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向耦合,MVC不是一种设计模式,是一种架构模式。Model:数据模型,提供要展示的数据可理解为JavaBean组件(包含数据和行为),也就是模

2022-02-22 15:45:06 131

空空如也

空空如也

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

TA关注的人

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