
2024经典回顾
文章平均质量分 59
2024经典回顾
一碗谦谦粉
不要怕,不要悔
展开
-
Java泛型&通配符
Java 泛型(Generics)是 JDK 5 引入的一个新特性,它提供了编译时类型安全检测机制,允许在编译时检测出非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型擦除是指在编译过程中,Java 编译器会将泛型类型信息擦除,将泛型类型转换为原始类型(Raw Type),也就是去掉泛型参数的类型信息,使得在运行时无法获取泛型的实际类型参数。例如,编译器会在编译期间动态地将泛型 T 擦除为 Object 或将 T extends xxx 擦除为其限定的类型 xxx。原创 2025-03-31 17:48:46 · 834 阅读 · 0 评论 -
MySQL的字段类型
MySQL 字段类型可以简单分为三大类数值类型:整型(TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT)、浮点型(FLOAT 和 DOUBLE)、定点型(DECIMAL)字符串类型:CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB 等,最常用的是 CHAR 和 VARCHAR。日期时间类型:YEAR、TIME、DATE、DATETIME 和 TIMESTAM原创 2025-02-08 15:33:25 · 482 阅读 · 0 评论 -
MySQL之delete 、truncate与drop区别
drop:删除表及其所有数据,包括表结构、索引、触发器等,是最彻底的删除方式。truncate:仅删除表中的所有数据,但保留表结构、索引、触发器等,常用于快速清空表数据。delete:删除表中的特定行数据,可以指定条件删除,支持事务回滚原创 2024-08-03 11:23:34 · 622 阅读 · 1 评论 -
Spring之Spring Bean的循环依赖(循环引用)
Spring之Spring Bean的循环依赖(循环引用)原创 2024-07-23 17:16:05 · 196 阅读 · 1 评论 -
Spring之Spring Bean的生命周期
Spring Bean的生命周期通过BeanDefinition获取bean的定义信息调用构造函数实例化beanBean的依赖注入处理Aware接口(BeanNameAware、BeanFactoryAware、ApplicationContextAware)Bean的后置处理器BeanPostProcessor-前置初始化方法(InitializingBean、init-method)Bean的后置处理器BeanPostProcessor-前置销毁Bean原创 2024-07-23 17:13:15 · 402 阅读 · 0 评论 -
MySQL之数据库备份工具Mydumper
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。最近项目到了最后的验证阶段,通常一个库的数据都40多个G,且经常同时要操作四五十个库,用Mydumper做数据库的导出、导入就很方便了。 由于真实的项目场景,往往数据量很大,往往一个库的备份都需要7、8个小时,所以一般都是结合“nohup”命令来使用,把作业拉起来,挂到后台就下班了,第二天上班再来做数据验证。原创 2024-07-19 21:13:13 · 816 阅读 · 0 评论 -
Spring Cloud之五大组件
Eureka:注册中心Ribbon:负载均衡Feign:远程调用Hystrix:服务熔断Zuul/Gateway:网关原创 2024-07-15 20:46:42 · 13636 阅读 · 0 评论 -
Spring之常见注解
@Component、@Controller 、@Service 、@Repository 使用在类上用于实例化Bean@Autowired 使用在字段上用于根据类型依赖注入@Qualifier 结合@Autowired一起使用,用于根据名称进行依赖注入@Scope 标注Bean的作用范围@Configuration 指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解原创 2024-07-14 20:40:02 · 429 阅读 · 0 评论 -
Spring之AOP
AOP称为面向切面编程,用于将那些与业务无关,却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中重复代码,降低模块间的耦合度,同时提高系统的可维护性。常见的AOP使用场景:记录操作日志、缓存处理、Spring中内置的事务处理。原创 2024-07-14 19:25:49 · 865 阅读 · 0 评论 -
Spring之事务失效的场景
Spring事务失效的场景:1.异常捕获处理:自己处理了异常,没有抛出。解决:手动抛出。2.抛出检查异常:配置rollbackFor属性为Excetion。3.非public方法导致事务失效,改为public。原创 2024-07-02 21:30:52 · 369 阅读 · 0 评论 -
Spring之spring的单例bean是线程安全的吗
Spring中Bean默认是单例模式的, 是无状态的(如Service类和DAO类),没有线程安全问题。如果Bean是有状态的,那就需要开发人员自己来进行线程安全的保证。例如,在bean中定义了可修改的成员变量等。此时最简单的办法就是改变bean的作用域,把singleton改为prototype,这样每次请求bean就相当于是new Bean(),这样就可以保证线程安全了。原创 2024-07-02 19:43:20 · 1197 阅读 · 1 评论 -
MySQL之主从同步、分库分表
复制分三步:1.master主库在事务提交时,会把数据变更记录在二进制日志文件binlog中。2.从库读取主库的二进制日志文件binlog,写入从库的中继日志relaylog。3.slave从库重做中继日志中的事件,将改变反映它自己的数据。原创 2024-06-30 23:25:35 · 532 阅读 · 0 评论 -
MySQL之redolog和undolog
redo log:重做日志,记录的是事务提交时数据页的物理修改,用来实现事务的持久性。undo log:回滚日志,用于记录数据被修改前的信息,作用包括两个:提供回滚和MVCC(多版本并发控制)。undo log和redo log记录物理日志不一样,它是逻辑日志。原创 2024-06-30 15:34:52 · 410 阅读 · 0 评论 -
MySQL之事务特性ACID、并发事务问题、隔离级别
脏读:一个事务读到了另一个事务还没提交的数据。不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同。幻读:一个事务根据条件查询数据时,没有找到对应的数据行,但在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。原创 2024-06-30 14:51:34 · 291 阅读 · 0 评论 -
MySQL之索引失效的情况
什么情况下索引会失效?1.违反最左前缀原则;2.范围查询右边的列不能使用索引;3.不要在索引列上进行运算操作;4.字符串不加单引号导致索引失效;5.以%开头的like模糊查询。原创 2024-06-30 12:44:41 · 461 阅读 · 0 评论 -
MySQL之如何处理超大分页
在数据量较大时,如果使用limit分页查询,在查询时,越往后,分页查询效率会越低。此时通过“覆盖索引+子查询”的形式进行优化。原创 2024-06-29 23:46:42 · 969 阅读 · 0 评论 -
MySQL之覆盖索引
覆盖索引是指查询使用了索引,返回的列必须在索引中能全部找到。使用id查询,直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。如果返回的列中没有创建索引,就可能会触发回表查询,所以尽量避免使用select*原创 2024-06-29 17:48:54 · 512 阅读 · 0 评论 -
MySQL之索引创建原则
1.针对数据量较大,且查询比较频繁的表建立索引。(单表超过10w数据)2.针对常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引3.尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高原创 2024-06-29 17:01:02 · 488 阅读 · 0 评论 -
MySQL之如何分析慢查询
一个SQL语句执行很慢,如何分析?可使用“explain”或者“desc”命令获取MySQL如何执行select语句的信息。语法:直接在select语句前加关键字 explain或desc原创 2024-06-29 16:37:43 · 466 阅读 · 0 评论 -
MySQL之如何定位慢查询
慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志原创 2024-06-29 16:02:30 · 410 阅读 · 0 评论