自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-07-24 10:28:16 35

原创 java的多态

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

2024-07-22 17:42:52 207

原创 java中的常量池

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

2024-07-22 12:06:15 142

原创 java中的线程池

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

2024-07-21 20:08:48 178

原创 java并发容器和框架

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

2024-07-21 17:41:44 217

原创 java中的锁

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

2024-07-20 22:46:49 677

原创 java并发基础

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

2024-07-20 10:13:54 1132

原创 java内存模型

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

2024-07-18 07:48:58 712

原创 java中的原子性和实现

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

2024-07-17 15:33:05 394

原创 volatile

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

2024-07-17 12:29:13 156

原创 java锁升级

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

2024-07-17 11:49:13 116

原创 Tomcat线程和连接

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

2024-07-15 11:32:44 153

原创 单例模式java

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

2024-07-13 20:43:20 301

原创 mysql的explain

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

2024-07-13 16:57:37 595

原创 redis的发布与订阅

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

2024-07-12 17:45:35 319

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

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

2024-07-12 17:31:43 2502

原创 Redis的主从复制

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

2024-07-12 12:22:32 351

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

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

2024-07-10 23:42:32 302

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

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

2024-07-10 23:39:22 226

原创 mysql的常用函数

length()

2024-07-09 11:51:30 352

原创 Redis事件和整体框架

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

2024-07-08 08:43:42 390

原创 Redis数据结构和持久化

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

2024-07-07 23:35:09 642

原创 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 230

原创 linux的服务管理

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

2024-07-06 11:09:13 411

原创 Java类文件

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

2024-07-04 23:29:37 88

原创 jvm常见调优

jvm调优策略。

2024-07-04 22:24:56 171

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

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

2024-07-04 11:34:20 193

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

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

2024-07-01 13:17:28 253

原创 jvm性能监控常用工具

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

2024-07-01 12:49:03 659

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

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

2024-07-01 11:36:11 115

原创 装饰器模式

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

2024-06-29 22:17:35 190

原创 设计模式-代理模式

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

2024-06-28 00:40:58 427

原创 策略模式和状态模式

策略模式

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

原创 HTTP的类别和发展

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

2024-06-23 12:31:59 500

原创 JNI和本地方法栈

访问底层操作系统功能:通过JNI,Java应用可以直接访问底层操作系统功能,这在某些情况下可以提供更高的性能或实现Java标准库无法提供的功能。JNI 的执行过程:当 Java 调用本地方法时,JVM 将从 Java 方法栈切换到本地方法栈,执行本地代码,然后返回结果。本地方法栈的作用:本地方法栈用于存储本地方法的局部变量、调用状态等,在 Java 线程调用本地方法时使用。本地代码调用Java代码:本地代码也可以通过JNI调用Java方法,实现双向通信。

2024-06-20 17:22:36 206

原创 java中的日志

springboot自带slf4j框架和logback,我们可以移除spring的logging,然后再带入自己的日志框架。

2024-06-19 14:40:19 636

原创 java自定义注解

提供元信息将信息提供给编译器,用来类型检查等通过反射获得注解,作为判断执行的依据,从而实现运行时处理。

2024-06-18 10:58:32 239

原创 aop的代理技术基础

Proxy.newProxyInstance 是 JDK 提供的一个方法,用于创建动态代理对象。动态代理是一种在运行时创建代理对象的方法,可以拦截方法调用并添加自定义逻辑。Class

2024-06-18 10:58:10 182

原创 协程-在单个线程内部执行

与传统的协程不同,虚拟线程不需要显式的挂起和恢复操作,而是由Java虚拟机的线程调度器负责管理。虚拟线程的调度由Java虚拟机内部完成,使得开发者无需关心线程调度的细节,从而简化了并发编程的复杂度。虚拟线程(Virtual Threads)并不等同于传统意义上的协程,但它们可以被视为一种协程的实现方式。挂起:当协程遇到一个挂起点(例如I/O操作)时,它会暂停执行,并将控制权返回给调度器。恢复:当挂起的操作完成时,调度器会恢复协程的执行,从挂起点继续执行。

2024-06-12 20:07:07 157

原创 java中的时间相关类

Instant 类实际上就是一个时间戳。它表示的是一个自 Unix 纪元(即1970年1月1日 00:00:00 UTC)以来的纳秒数。seconds:自1970年1月1日 00:00:00 UTC以来的秒数。nanos:当前秒中的纳秒数。

2024-06-12 15:09:38 198

空空如也

空空如也

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

TA关注的人

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