摘要: 对象的实例化内存布局与访问定位 对象的实例化 对象创建的方式 (1)new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法 (2)Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public 阅读全文
posted @ 2024-07-04 17:06 homle 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 方法区 栈,堆,方法区的交互关系 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 堆,栈,方法区的交互关系 下面涉及了对象的访问定位 (1)Person类的.class信息存放在方法区中; (2)person变量存放 阅读全文
posted @ 2024-07-03 16:16 homle 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 堆 堆的核心概述 堆与进程 (1)堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM实例,一个JVM示例也就只有只有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区 (2)但是进程中包含多个线程,他们是共享一个堆空间的 (1)一个JVM实例只存在一个堆内存,堆也是Java内存管理 阅读全文
posted @ 2024-07-01 14:30 homle 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 虚拟机栈的出现背景 (1)由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】. (2)优点是跨平台,指令集小,编译器容易实现,缺点是性能 阅读全文
posted @ 2024-06-19 17:18 homle 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 在返回字段时有时需要对电话,地址等字段进行脱敏处理 1. 定义枚举脱敏类 使用函数编程,绑定函数操作 public enum DataMaskEnum { /** * 名称脱敏 */ USERNAME(s->s.replaceAll("(\\S)\\S(\\S*)","$1*$2")), /** * 阅读全文
posted @ 2024-04-24 10:34 homle 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 1. 介绍 定义一个高层接口,给子系统中的一组接口提供一个一致的界面,用来访问子系统的一群接口,也就是说通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 2. 代码实现 /** * @Description :电池充电 * @date 阅读全文
posted @ 2024-04-23 20:58 homle 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1. 自定义注解 @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface RateLimit { //默认最大访问次数 int value() default 3; //默认时间窗口(秒) 阅读全文
posted @ 2024-04-23 17:24 homle 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 1. 使用AOP在不改变原有方法的基础上对接口方法增强,引入依赖 <!--引入AOP依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifact 阅读全文
posted @ 2024-04-23 14:48 homle 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 1. 组合模式介绍 在解决组织结构这种具有层级关系的结构中,如果使用传统的继承,不能很好的实现管理的操作,比如学院,系的添加,删除,遍历等; 所有可以使用组合模式把它们都看成组织结构,没有继承关系,而是一个树形结构。 2. 实现 public abstract class OrgComponent 阅读全文
posted @ 2024-04-21 15:21 homle 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 1. 顶咖啡问题 咖啡种类:Espresso,LongBlack 调料:Milk,Soy 当需要计算不同种类咖啡和调料组合的价格时 (1)使用传统方式 这样设计,会有很多类,当需要增加一个单品咖啡或调料时,类的数量就会倍增 (2)优化方式1 优点:可以把调料放入Drink类中,通过设计调料的bool 阅读全文
posted @ 2024-04-09 21:32 homle 阅读(1) 评论(0) 推荐(0) 编辑