- 博客(16)
- 收藏
- 关注
原创 AQS、CAS 及锁相关原理讲解
System.out.println("method1释放后,state = " + getState(lock));System.out.println("method2释放后,state = " + getState(lock));System.out.println("首次获取锁,state = " + getState(lock));System.out.println("最终释放后,state = " + getState(lock));if (c == 0) { // 锁未被持有,直接获取。
2025-08-21 11:04:25
1221
原创 MESI 协议与 volatile 关键字解析
MESI 协议:通过缓存行状态管理,保证多 CPU 缓存数据一致性,但可能导致阻塞。:优化 MESI 的性能,但可能引发操作顺序混乱。volatile 关键字:通过缓存屏障,解决了 Store Buffer 带来的可见性和顺序性问题,是多线程编程中保证变量正确交互的重要工具。
2025-08-21 10:55:03
973
原创 RPC 远程调用技术笔记
通过不断优化实现方案,如服务端的注解标记和路由优化、客户端的代理生成和连接池管理等,可以提高 RPC 调用的效率和安全性。同时,在实际应用中,需要根据业务需求选择合适的 RPC 框架,注意服务注册与发现、负载均衡、容错机制等方面的设计,以构建稳定、高效的分布式系统。在传统的 Spring 框架服务中,同一框架内的不同服务(例如用户服务调用商品服务)可通过 bean 注入直接使用。// 存储服务实现类的映射(key:类名)// 网络通信发送请求。// 调用代理方法时触发。
2025-08-15 14:37:29
752
原创 数据库设计第二、三的区别
特性第二范式 (2NF)第三范式 (3NF)核心目标消除部分依赖消除传递依赖针对问题主要针对复合主键主要针对非主键字段间的依赖依赖关系非主键字段必须完全依赖于整个主键非主键字段必须直接依赖于主键违反情况非主键字段只依赖主键的一部分非主键字段A依赖非主键字段B (B依赖主键)前提条件必须先满足1NF必须先满足2NF常见场景有联合主键的表存在冗余信息(如部门名称在员工表中重复)简单记忆:所有非主键列必须挂靠在整个主键上(不能只挂靠主键的一部分)。
2025-08-13 10:25:57
969
原创 循环依赖源码浅析
该方法是 Spring 容器初始化的 “临门一脚配置基础服务初始化,解决 Bean 属性注入时的类型转换问题(如将配置文件中的字符串转换为日期、数字等)。添加占位符解析器,支持解析形式的配置占位符(如从中读取值)。处理特殊 Bean提前初始化类型的 Bean,确保类加载时的 AOP 织入逻辑(如 AspectJ)能正常工作。固化配置与实例化 Bean冻结配置,防止后续修改 Bean 定义导致的不一致。调用。
2025-08-04 17:52:08
1039
原创 java注解
Override检测该注解标注的方法是否继承自父类(接口),是就通过,不是就报错标识已经过时的方法元注解 public @interface 注解名 {属性列表 }作用在方法上,方法执行前输出日志信息/*** 注解功能的实现*/Class<?//通过类对象获取对应的方法是否具有注解=null)System.out.println(declaredMethod.getName() +"在 "+new Date() + "执行了");
2025-07-04 15:25:58
540
原创 java反射
java的反射是程序在运行状态中1.对于给定的一个类(class)对象,可以获取这个类对象所有的属性和方法2.对于给定的对象,都可以调用它的任意方法与属性这种动态获取类的内容和动态调用对象的方法与属性的机制,叫做java的反射机制优点:1.增加程序灵活性,避免固有的逻辑写死在代码里2.代码简洁,可读性增强,可提高代码复用率缺点:1.相对直接调用在量大的情况下反射效率低2.内部暴露安全隐患。
2025-07-04 00:11:16
1177
原创 Java多线程
设计模式(Design pattern)是一套被反复使用,多数人知晓,经过分类编目的,代码设计经验总结。通过对这个设计模式的合理使用能让我们的系统更加健壮yield()yield()
2025-07-02 19:13:28
986
原创 java集合框架
set无序不可重复相对于Collection无特殊接口散列表可以存储重复元素,HashSet不可以构造方法,其实创建了hashmapadd方法调用了hashmap的put方法保证不重复主要依赖两个方法//确定散列表数组下标//判断两个属性一样的对象是否相等案例/*** 生成六个不重复随机数*/
2025-06-30 00:38:18
990
原创 异常笔记分享
Java中的异常都是Throwable或Exception或RuntimeException的子类,创建自定义异常就是创建对应的子类案例:编写一个分数必须在0-100的异常调用try {throw new ScoreException("分数不合法--------");return 11;Java 规范受检异常:直接或间接继承自Exception,但不包括。throw new ScoreException(“分数不合法--------”);return 11;
2025-06-27 00:31:13
567
原创 Integer类型传递值过程类似于String
关于String类型的传递,主要过程就是将地址传递,如果调用的函数会修改传递的参数的话,那么会直接新建一个字符串,并且将函数里的对象指向新建的字符串。Integer类型也是类似,代码中我先输出a的地址,以及修改数据前后参数a的地址,可以看到修改前实参a与形参a地址一致,修改后形参a的地址已经变化。举个例子就是,a开始指向sss,将a传给b此时b也指向sss,但是将b改为ddd时,b就会指向ddd而不是把a也指向ddd,a依旧是指向sss。
2024-05-11 10:12:36
268
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅