avatar
文章
12
标签
14
分类
4
主页
文章:
  • 归档
  • 分类
  • 标签
友链
关于
搜索
主页
文章:
  • 归档
  • 分类
  • 标签
友链
关于

withdong02

权限模型
发表于2026-03-16
常见的权限模型有两种:RBAC 和 ABAC。 两种模型介绍 RBAC 模型 Role-Based Access Control,翻译为基于角色的访问控制。角色拥有某些权限,通过赋予用户某种角色来达到给用户授予相关权限的目的,这就是基于角色。实现较简单。在一些大型组织中,角色可能爆炸式增长,导致管理复杂、权限冗余。 ABAC 模型 Attribute-Based Access Control,翻译为基于属性的访问控制,它比 RBAC 更加灵活,因为在 ABAC 模型中,一个操作是否被允许是基于对象、资源、操作和环境信息共同动态计算决定的。它的控制更细粒度,比如它能实现“仅允许大学生在水课上睡觉”的控制。 派聪明的权限控制 派聪明是二哥的一个项目。 派聪明的权限模型是改进版的 RBAC,或者说简化版的 ABAC。设计了 admin 和 user...
手写简单IoC容器
发表于2026-03-07|泛型•反射•八股•Spring
学习 Spring,跟着二哥简单写个 IoC 容器。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990@Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @interface MyAutowired { } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface MyComponent...
LeetCode155.最小栈
发表于2026-02-26|算法|力扣•栈
第二次碰到这道题了,又学了两种解题方法,记录一下。 题目介绍 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int...
LeetCode8.字符串转换整数
发表于2026-02-15|算法|Java•力扣
一切源于一道题目:8. 字符串转换整数 (atoi) - 力扣(LeetCode) 考虑这样一个问题:给你一个数字字符串,如何在32位环境下安全的处理可能超过[-2^31, 2^31 - 1]范围的数字,不能使用64位变量临时存储。 因为我熟悉Java, 所以下面提到的数据类型都为 Java 中的数据类型。 12Integer.MAX_VALUE = 2^31 - 1 = 2147483647;Integer.MIN_VALUE = -2^31 = -2147483648; 首先题目说不能使用64位变量,所以 Long 类型不能使用,那就一步一步累加,具体思路就是设置两个变量 digit, res,从头到尾遍历字符串每一位,同时计算 res = res * 10 + digit。但这样的话,累加过程中 res 可能会无征兆直接溢出,程序直接抛异常。那怎么办,介绍一下从 K神题解...
Java集合源码阅读
发表于2026-01-26|Java源码阅读|Java•集合
先附上二哥网站上关于集合框架的结构图 版本为JDK21 ArrayList 扩容机制 先介绍一下 ArrayList 中的关键变量: transient Object[] elementData 底层用来存储元素的数组 private int size; 表示集合中元素的实际数量 private static final int DEFAULT_CAPACITY = 10; 默认初始容量 private static final Object[] EMPTY_ELEMENTDATA = {}; 当用户调用 new ArrayList(0) 时,elementData 会引用该数组。 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};...
MySQL锁机制八股整理
发表于2025-12-06|八股|MySQL•八股•锁机制
整理一下MySQL锁的八股,全文整理自二哥博客。 在MySQL数据库中,锁是用来协调多个进程或线程并发访问同一资源的机制。锁不仅保证了数据的一致性和有效性,而且是影响数据库并发访问性能的一个重要因素。 共享锁与排他锁 共享锁也叫 S(shared) 锁,允许多个事务进行读操作,阻塞写操作。 排他锁也叫 X(exclusive) 锁,只允许一个事务进行读写操作,阻塞其他事务的读写操作。 兼容性如下: 表锁与行锁 表锁:锁定整个表,资源开销小,加锁快,但并发度低,不会出现死锁,适合查询为主、少量更新的场景(如 MyISAM 引擎)。可以细分为表级S锁、表级X锁。 行锁:锁定单行或多行,开销大、加锁慢,可能出现死锁,但并发度高(InnoDB 默认支持)。可以细分为记录锁、间隙锁、临键锁,也可以分为共享锁和排他锁(与表级S锁、表级X锁一个意思,前提是行锁)。 表锁详细版: 表锁常见于...
MySQL索引八股整理
发表于2025-11-24|八股|MySQL•八股•索引
整理一下MySQL索引的八股。 索引介绍 索引是数据库中用于加速查询的数据结构,通过对表中某列或多列的值进行排序,可以快速定位所要查找的数据。就像小时候在汉语字典里查字时,会先根据偏旁笔画数找到偏旁,然后根据剩余笔画找到目标字,这比在整个字典中一个一个查找是快很多的。 索引分类 索引有以下分类 索引详细介绍 主键索引: 主键索引用于唯一标识表中的每条记录,其值必须唯一且非空。每个表只允许有一个主键索引,一般为表中的自增id。 创建主键时,数据库会自动生成主键索引。若没有指定主键,MySQL的InnoDB存储引擎会优先选择一个非空的唯一索引作为主键,如果没有符合条件的索引,MySQL会自动生成一个隐藏的聚簇索引。 唯一索引: 主键索引 = 唯一索引 +...
Java泛型
发表于2025-10-14|Java基础|Java•泛型
泛型定义 先看这样一个例子: 123456789public static void main(String[] args) { List list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); for (int i = 0; i < list.size(); i++) { System.out.println((String)list.get(i)); }} ArrayList集合中可以加入任何类型的对象,我本意是用这个集合来存储字符串(因为ArrayList默认存储的是Object类型的对象,所以输出时需要强转...
正则表达式
发表于2025-09-22|Java•正则表达式
介绍 正则表达式(regular...
Java反射
发表于2025-08-10|Java基础|Java•反射
什么是反射 在spring项目中,只需要写个@Service或者@Component,然后在别的地方用@Autowired声明一个接口变量,Spring就能返回给我们一个实现了该接口的具体对象。这是如何实现的呢?它不可能在编译时就知道加了注解的类与类之间的关系,所以只能是在程序启动运行时,Spring动态地发现了这些类,读取了他们的结构,然后创建对象。这背后的技术支撑又是什么?答案就是反射。 反射是Java提供的一种在程序运行时 检查/获取类、接口、字段、方法、构造器等结构信息的能力。 操作/调用对象、字段、方法的能力。 它就像一面镜子,让程序在运行时“照见”自己的结构。 反射的基石:Class对象 编译器在编译 Java 源代码时会生成 .class 文件(字节码文件)。当 JVM 需要用到某个类时,它的类加载器会读取并解析对应的 .class...
12
avatar
withdong02
文章
12
标签
14
分类
4
Follow Me
分类
  • Java基础3
  • Java源码阅读1
  • 八股2
  • 算法2
标签
序列化Java泛型反射集合力扣栈MySQL八股索引锁机制正则表达式SpringBUG
©2025 - 2026 By withdong02
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
搜索
数据加载中