自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql的分页

如果查询的排序列没有索引,MySQL可能需要扫描整个表并对结果进行排序,然后再应用 LIMIT 和 OFFSET。如果查询包含索引列并且使用了索引进行排序,MySQL可以利用索引来快速定位数据,避免全表扫描。

2024-08-07 11:16:21 157 1

原创 虚拟机类加载机制

与那些编译时需要进行连接的语言不同,在java语言中,类型的动态加载:编写一个面向接口的应用程序,可以等到运行时再指定其实现类。

2024-08-06 09:09:47 242

原创 虚拟机字节码执行引擎

代码编译的结果从本地机器码转换为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。虚拟机的执行引擎是依托于物理机的执行引擎的,物理机的执行引擎是直接建立在处理器,缓存,指令集和操作系统层面的,而虚拟机的执行引擎则是由软件自行实现的。

2024-08-01 17:37:18 423

原创 HTTP1和HTTP1.1和HTTP2的区别

一个资源建立一个tcp连接。

2024-07-30 17:48:59 254

原创 Serializable 接口

Serializable 是一个标记接口(marker interface),没有定义任何方法。实现这个接口仅仅是为了标识该类的对象可以被序列化。JVM通过检查一个类是否实现了 Serializable 接口来决定是否可以对其进行序列化。在 Java 中,serialVersionUID 是一个特殊的字段,JVM 会在序列化和反序列化过程中自动检查这个字段,以确保序列化对象的版本与反序列化对象的版本一致。为什么要实现 Serializable 接口?

2024-07-30 11:41:38 213

原创 JDBC基础

DataSource:通常会委托给底层的连接池实现(如Apache DBCP、C3P0、HikariCP等)来管理连接。这些连接池实现会内部使用DriverManager或其他方式来创建实际的数据库连接。ResultSet 代表一个查询结果的集合,可以包含多行数据。DriverManager:直接通过驱动类管理数据库连接。通过光标移动方法可以逐行访问数据。支持通过列名或列索引获取数据。

2024-07-30 11:37:06 147

原创 synch也有自己的同步队列和等待队列,就相当于自己实现了一个Lock接口的互斥锁,并且实现了锁升级,并且内部实现了一个Condition

synch也有自己的同步队列和等待队列,就相当于自己实现了一个Lock接口的互斥锁,并且实现了锁升级,并且内部实现了一个Condition。

2024-07-24 10:28:16 99

原创 java的多态

方法重载指的是在同一个类中,方法名相同但参数列表(参数类型和参数个数)不同的方法。方法重载是静态多态性。编译器会根据方法调用时传递的参数来决定调用哪个具体的方法。方法重写是指子类重新定义父类中已经定义的方法。重写是动态多态,也称为运行时多态性。

2024-07-22 17:42:52 242

原创 java中的常量池

一个Java类文件的大致结构如下:魔数(Magic Number):标识文件类型,值为0xCAFEBABE。版本号(Version):次版本号和主版本号。常量池(Constant Pool):包含常量池条目。访问标志(Access Flags):类或接口的访问权限和属性。类索引、超类索引、接口索引集合。字段表(Fields Table):字段的定义。方法表(Methods Table):方法的定义。属性表(Attributes Table):类、字段、方法的附加信息。

2024-07-22 12:06:15 196

原创 java中的线程池

如果没有空闲线程(并且核心线程池没有满),那么将会创建一个核心线程,如果核心线程满了,任务会加入阻塞队列,如果阻塞队列满了,会使用拒绝策略。在HotSpot的线程模型中,java线程被一对一映射为本地操作系统线程。当线程终止时,操作系统线程会被回收。一旦线程在 ThreadPoolExecutor 中被创建出来,它会从阻塞队列中获取任务并执行。

2024-07-21 20:08:48 211

原创 java并发容器和框架

HashMap线程不安全它的put会导致死循环。

2024-07-21 17:41:44 249

原创 java中的锁

队列同步器是是用来构建锁或者其他同步组件的基础框架。

2024-07-20 22:46:49 728

原创 java并发基础

针对频繁阻塞(休眠或者IO操作)的线程需要高优先级,而偏重计算的线程,应该时低优先级,从而保证处理器不会被独占。在不同jvm和操作系统上,线程规划会存在差异,有些甚至会忽略。

2024-07-20 10:13:54 1168

原创 java内存模型

在共享内存中,同步是显示的,必须控制代码块在线程间互斥执行(方法原子性调用)。在消息传递中,因为需要发送消息和接收处理结果,所以同步是隐式的。

2024-07-18 07:48:58 745

原创 java中的原子性和实现

处理器基于对总线加锁和缓存加锁的方式来实现多处理器之间的原子操作。

2024-07-17 15:33:05 426

原创 volatile

volatile保证了共享变量的可见性。一个线程修改volatile值,其他线程都能读到这个修改的值。它比syn性能要高。

2024-07-17 12:29:13 183

原创 java锁升级

MarkWord无锁状态记录了HashCode,分代年龄,锁标志位。偏向锁记录了线程ID,分代年龄,锁标志位。轻量级锁记录了指向栈中锁记录的指针。重量级锁记录了指向操作系统互斥量的指针。

2024-07-17 11:49:13 152

原创 Tomcat线程和连接

建立连接后会向tomcat请求执行线程,如果有则处理请求,如果没有,则进入等待。先建立连接,如果超过了最大连接数,那么进入等待队列。会预热工作线程,而随着请求而追加临时线程数。

2024-07-15 11:32:44 177

原创 单例模式java

可能一个线程new,另一个线程此时因为重排序,指针不为null但是空间没有初始化。a=new A();这条语句,他需要:开辟空间,初始化空间,指针指向空间,。所以给a加volatile,保证不会重排序。

2024-07-13 20:43:20 323

原创 mysql的explain

id:执行顺序select type:查询语句的操作类型table:表parititions:表分区type:查询所用的访问类型possible-keys:可能用到的索引key:实际查询用到的索引key-len:所使用的索引的长度(主要是看联合索引)ref:使用索引时,与索引进行等值匹配的列或者常量rows:预计扫描的行数(索引行数或者表记录行数)filtered:表示符合查询条件的数据百分比extra:额外信息。

2024-07-13 16:57:37 618

原创 redis的发布与订阅

不做持久化不是异步不能保证可靠性。

2024-07-12 17:45:35 339

原创 Redis的哨兵和集群实现高可用

1个主服务器2-3个从服务器3-5个哨兵。

2024-07-12 17:31:43 3246

原创 Redis的主从复制

slaveeof 主Redis服务器ip 端口此后slave只能读不能写了,并且slave的数据和master的相同。只能写master。此时主从服务器之间会存在不一致的情况。

2024-07-12 12:22:32 378

原创 mysql默认开启索引下推,减少回表的数据

在没有索引下推优化的情况下,当 MySQL 使用索引进行查询时,它会从索引中获取符合条件的索引条目,然后回表(访问实际数据行)并将结果返回给 MySQL 服务器层进行进一步的过滤。这种情况下,即使某些索引条目不符合查询的所有条件,MySQL 也需要回表读取完整的数据行。引入索引下推优化后,MySQL 可以在存储引擎层(如 InnoDB)就执行部分查询条件的过滤。这样可以显著减少需要回表的次数,从而提高查询性能。

2024-07-10 23:42:32 359

原创 给事务如何加行锁,表锁

加行读锁后保证读时候没人修改加行写锁后,保证只有一个写并且不能读。

2024-07-10 23:39:22 292

原创 mysql的常用函数

length()

2024-07-09 11:51:30 368

原创 Redis事件和整体框架

Redis服务器是事件驱动程序,主要处理两类:文件事件时间事件。

2024-07-08 08:43:42 408

原创 Redis数据结构和持久化

set key value(相同的key会覆盖)get keyincr keydecr keysetex key seconds value seconds秒后失效ttl keydel key。

2024-07-07 23:35:09 686

原创 redolog的刷盘策略

2:实时写,延时刷。每次提交事务都将redo log写入os buffer,但并不会马上调用fsync()刷如磁盘,而是间隔1秒调fsync()刷盘。相对于每次提交都写盘和每隔1秒写盘,实施写os buffer延时刷盘是一个数据一致性与性能的之间的这种方案。提交事务时不会将redo log写入os buffer,而是每隔1秒将redo log写入os buffer并调用fsync()刷入磁盘。1:实时写,实时刷。每次提交事务都将redo log写入os buffer并调用fsync()刷入磁盘。

2024-07-06 13:20:12 414

原创 linux的服务管理

systemd 是一个系统和服务管理器,用于Linux操作系统中,旨在替代传统的Unix系统V初始化系统(SysV init)。不一定所有使用 yum 安装的软件都可以通过 systemctl start 来管理。能否通过 systemctl start 管理取决于软件包是否提供了相应的 systemd 单元文件。如果软件没有提供 systemd 单元文件如果软件包没有提供 systemd 单元文件,但你希望通过 systemctl 来管理它,可以手动创建一个 systemd 单元文件。

2024-07-06 11:09:13 463

原创 Java类文件

Class文件是以无符号字节为基础单位的二进制流,每个数据项目严格按照顺序紧密地排列在文件中。java在javac进行编译时不会像c++一样进行连接,而是在加载class文件时动态连接。在class文件中不会存储方法,字段在内存中的地址,而是在使用时经过虚拟机的转换才能使用。字面量:文本字符串,final常量。常量池中主要放置字面量和符号引用。符号引用:导出的包,字段,方法等。

2024-07-04 23:29:37 100

原创 jvm常见调优

jvm调优策略。

2024-07-04 22:24:56 187

原创 java对象的访问定位的两种方式

句柄访问:reference中存储的稳定,对象实例位置改变,只需要改变句柄池中的对象实例指针直接指针访问:HotSpot方式:效率高

2024-07-04 11:34:20 247

原创 java中的hashCode()和equals()

如果两个对象使用 equals() 方法比较返回 true,那么它们的 hashCode() 方法应该返回相同的整数值(但反之不一定成立,即相等的对象必须具有相同的哈希码,但相同的哈希码并不一定代表对象相等)。默认情况下,hashCode() 方法由 Object 类实现,它返回对象的内存地址的整数表示。但是,通常我们需要根据对象的内容重写 hashCode() 方法以确保一致性。

2024-07-01 13:17:28 270

原创 jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。我们常用的有。

2024-07-01 12:49:03 710

原创 java中的即时编译器:JIT

javac将源文件编译为class文件,class文件类加载到jvm中,jvm就使用解释器执行class文件,如果jvm识别到热点代码,就将其转换为机器指令,那么jvm会直接使用机器指令,而不使用解释器。如果不使用 JIT 编译器,Java 程序将会完全依赖解释器来执行字节码。解释器会逐条解释并且将其转换为机器指令和执行 Java 字节码指令。

2024-07-01 11:36:11 128

原创 装饰器模式

代理模式(将真正执行的对象作为成员变量),是基础的组合复用的思想,装饰器模式也是基于此的。装饰器模式动态地给一个类增加了一些功能或者重写了方法。

2024-06-29 22:17:35 211

原创 设计模式-代理模式

就是将被代理的类作为成员变量。为其他对象提供一个代理类去使用被代理的类。

2024-06-28 00:40:58 444

原创 策略模式和状态模式

策略模式

2024-06-27 22:10:25 467 1

原创 HTTP的类别和发展

HTTP/1.0:引入头部、多种请求方法和非持久连接。HTTP/1.1:默认持久连接、管道化、增强缓存控制和分块传输编码。HTTP/2:二进制协议、多路复用、头部压缩和服务器推送。HTTP/3:基于 QUIC 的 UDP 协议、更快的连接建立、内置加密和改进的多路复用。

2024-06-23 12:31:59 518

空空如也

空空如也

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

TA关注的人

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