自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心有谦谦结

人类用沙,想捏出梦里通天塔,为贪念不惜代价,驾驭着昂贵的木马,巢穴一层层叠加,最后啊~却一丝不挂,别害怕,我们都孤寡 ——《薛之谦》

  • 博客(396)
  • 收藏
  • 关注

原创 推送到Gerrit时报错,缺少Change-Id

在使用Gerrit进行代码提交时,若遇到推送失败并提示缺少Change-Id的问题,通常是因为本地Git未安装Gerrit提供的commit-msg钩子脚本,导致无法自动生成Change-Id。解决此问题,首先需要在项目根目录下通过Git Bash执行命令下载并安装commit-msg钩子脚本,并赋予其可执行权限。接着,使用git commit --amend --no-edit命令修正最近一次提交以添加Change-Id。最后,重新推送代码到指定分支。这一系列操作确保了代码提交符合Gerrit的审查要求,

2025-05-09 15:57:54 356 1

原创 每天一道面试题@第七天

HashMap的长度被设定为 2 的幂次方,主要是出于提升哈希性能与减少哈希冲突的考虑。

2025-05-06 18:00:53 349 1

原创 每天一道面试题@第六天

封装性:将仅被外部类使用的逻辑隐藏起来。多继承模拟:Java 单继承,通过内部类实现多接口的灵活组合。成员内部类依赖外部类实例,可访问所有成员;静态内部类独立,仅访问静态成员。不能,因为无类名,但可通过实例初始化块({})模拟初始化逻辑。使用静态内部类,或及时解除对外部类实例的强引用。内存泄漏的原因:非静态内部类隐式持有外部类的引用,若内部类对象生命周期过长(如被静态变量引用),会导致外部类无法被回收。

2025-05-05 09:00:21 348 1

原创 每天一道面试题@第五天

浅拷贝、深拷贝和引用拷贝是三种不同的对象复制方式。(1)引用拷贝仅仅是复制对象的引用,而不会创建新的对象。也就是说,原对象和复制后的对象都指向内存中的同一个实例。因此,对其中一个对象的修改会反映到另一个对象上。(2)浅拷贝会创建一个新的对象,然后将原对象的非静态字段复制到新对象中。如果字段是基本数据类型,就直接复制其值;如果字段是引用类型,只复制引用,而不复制对象本身。这意味着原对象和浅拷贝对象中的引用类型字段会指向同一个对象(也就是说原对象的内部类会直接引用要实现浅拷贝,可以让类实现。

2025-05-03 22:53:30 981 1

原创 每天一道面试题@第四天(Java基础)

对于第二天面试题的回答1. Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?6 种数字类型:4 种整数型:byte、short、int、long2 种浮点型:float、double1 种字符类型:char1 种布尔型:boolean。共8种2.String和的区别是什么?String为什么是不可变的?String 不可变类、若对其修改,实际上是创建了新的String对象。

2025-04-29 17:55:25 903

原创 每天一道面试题@第三天

最近在翻了一下库存的面经,死去的记忆又开始攻击我,大部分都答不上来....

2025-04-22 15:15:32 318 1

原创 每天一道面试题@第二天

今天翻了一下库存的面经,夺命38问,脑瓜子嗡嗡的,你能答上来几个啊?

2025-04-22 14:29:26 784

原创 每天一道面试题@第一天

因为TCP是全双工协议,区别在于TCP可靠,UDP不可靠,效率更高。面向连接先建立连接无连接不需要建立连接TCP 提供可靠传输效率较高文件传输、电子邮件、远程登录视频会议TCP 采用三次握手而不是两次握手,主要有以下原因:防止已失效的连接请求报文段被误接收确保双方都能正常收发数据客户端向服务器发送一个带有 SYN(同步序列号)标志的 TCP 报文段客户端进入 SYN_SENT 状态服务器接收到客户端的 SYN 报文后,会检查其中的信息服务器进入 SYN_RCVD 状态。

2025-04-21 18:12:39 985

原创 Java泛型&通配符

Java 泛型(Generics)是 JDK 5 引入的一个新特性,它提供了编译时类型安全检测机制,允许在编译时检测出非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型擦除是指在编译过程中,Java 编译器会将泛型类型信息擦除,将泛型类型转换为原始类型(Raw Type),也就是去掉泛型参数的类型信息,使得在运行时无法获取泛型的实际类型参数。例如,编译器会在编译期间动态地将泛型 T 擦除为 Object 或将 T extends xxx 擦除为其限定的类型 xxx。

2025-03-31 17:48:46 827 1

原创 Java内部类

内部类:定义在类内部的类内部类分为:静态内部类、成员内部类、局部内部类、匿名内部类。

2025-03-31 16:53:37 277

原创 SOLID 软件设计原则

SOLID 软件设计原则是由罗伯特・C・马丁(Robert C. Martin)提出的五个重要的软件设计原则,旨在帮助开发者创建易于维护、扩展和理解的软件系统。遵循 SOLID 软件设计原则可以使软件具有更好的可维护性、可扩展性、可复用性和可测试性,降低软件的耦合度,提高软件的质量和可靠性。

2025-02-26 10:23:43 287

原创 Java中的序列化和反序列化

序列化是指将 Java 对象转换为字节序列的过程。这个字节序列包含了对象的数据、对象的类型信息以及对象内部的数据类型等,方便将对象保存到文件、数据库或通过网络进行传输。反序列化是指将字节序列恢复为 Java 对象的过程。它是序列化的逆过程,通常用于从文件或网络中读取字节序列,并将其转换为对应的 Java 对象。

2025-02-24 11:45:19 437

原创 JVM之JVM的组成

Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。

2025-02-24 09:47:15 748

原创 Java实际上只有值传递

在 Java 中,实际上只有值传递,这可以从基本数据类型和引用数据类型两个方面来看。

2025-02-24 09:38:21 244 2

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

原创 代码合并冲突解决push不上去的问题

代码合并,迭代1合并到迭代2,解决冲突后,依然push不上去。简要解释报错原因推送失败的原因是提交信息中缺少或位置不正确的 Change-Id。Git服务器要求每个提交的最后必须包含单独一行的 Change-Id,这是为了确保代码审查和合并时的唯一标识。

2025-01-16 10:27:42 598

原创 保存数据到Oracle时报错ORA-17004: 列类型无效: 1111

XXXInfoPO 没有给 属性trxChanl赋值时,保存Oracle就会报错 列类型无效: 1111,这时需要给属性trxChanl 指定属性的类型 #{trxChanl,jdbcType=VARCHAR (注意没有"")。这点Oracle跟MySQL是不一样的。关键信息:Mybatis;varchar 类型 可空。

2024-11-16 15:55:06 826 1

原创 MySQL之delete 、truncate与drop区别

drop:‌删除表及其所有数据,‌包括表结构、‌索引、‌触发器等,‌是最彻底的删除方式。‌truncate:‌仅删除表中的所有数据,‌但保留表结构、‌索引、‌触发器等,‌常用于快速清空表数据。‌delete:‌删除表中的特定行数据,‌可以指定条件删除,‌支持事务回滚

2024-08-03 11:23:34 619 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 401

原创 MySQL之数据库备份工具Mydumper

Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。最近项目到了最后的验证阶段,通常一个库的数据都40多个G,且经常同时要操作四五十个库,用Mydumper做数据库的导出、导入就很方便了。 由于真实的项目场景,往往数据量很大,往往一个库的备份都需要7、8个小时,所以一般都是结合“nohup”命令来使用,把作业拉起来,挂到后台就下班了,第二天上班再来做数据验证。

2024-07-19 21:13:13 811

原创 Spring Cloud之五大组件

Eureka:注册中心Ribbon:负载均衡Feign:远程调用Hystrix:服务熔断Zuul/Gateway:网关

2024-07-15 20:46:42 13611

原创 Spring之常见注解

@Component、@Controller 、@Service 、@Repository 使用在类上用于实例化Bean@Autowired 使用在字段上用于根据类型依赖注入@Qualifier 结合@Autowired一起使用,用于根据名称进行依赖注入@Scope 标注Bean的作用范围@Configuration 指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解

2024-07-14 20:40:02 428

原创 Spring之AOP

AOP称为面向切面编程,用于将那些与业务无关,却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中重复代码,降低模块间的耦合度,同时提高系统的可维护性。常见的AOP使用场景:记录操作日志、缓存处理、Spring中内置的事务处理。

2024-07-14 19:25:49 865

原创 Spring之事务失效的场景

Spring事务失效的场景:1.异常捕获处理:自己处理了异常,没有抛出。解决:手动抛出。2.抛出检查异常:配置rollbackFor属性为Excetion。3.非public方法导致事务失效,改为public。

2024-07-02 21:30:52 368

原创 Spring之spring的单例bean是线程安全的吗

Spring中Bean默认是单例模式的, 是无状态的(如Service类和DAO类),没有线程安全问题。如果Bean是有状态的,那就需要开发人员自己来进行线程安全的保证。例如,在bean中定义了可修改的成员变量等。此时最简单的办法就是改变bean的作用域,把singleton改为prototype,这样每次请求bean就相当于是new Bean(),这样就可以保证线程安全了。

2024-07-02 19:43:20 1195 1

原创 MySQL之主从同步、分库分表

复制分三步:1.master主库在事务提交时,会把数据变更记录在二进制日志文件binlog中。2.从库读取主库的二进制日志文件binlog,写入从库的中继日志relaylog。3.slave从库重做中继日志中的事件,将改变反映它自己的数据。

2024-06-30 23:25:35 531

原创 MySQL之redolog和undolog

redo log:重做日志,记录的是事务提交时数据页的物理修改,用来实现事务的持久性。undo log:回滚日志,用于记录数据被修改前的信息,作用包括两个:提供回滚和MVCC(多版本并发控制)。undo log和redo log记录物理日志不一样,它是逻辑日志。

2024-06-30 15:34:52 410

原创 MySQL之事务特性ACID、并发事务问题、隔离级别

脏读:一个事务读到了另一个事务还没提交的数据。不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同。幻读:一个事务根据条件查询数据时,没有找到对应的数据行,但在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。

2024-06-30 14:51:34 291

原创 MySQL之索引失效的情况

什么情况下索引会失效?1.违反最左前缀原则;2.范围查询右边的列不能使用索引;3.不要在索引列上进行运算操作;4.字符串不加单引号导致索引失效;5.以%开头的like模糊查询。

2024-06-30 12:44:41 461

原创 MySQL之聚簇索引和非聚簇索引

聚集索引,将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据,必须有,而且只有一个。二级索引,将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键,可以有多个

2024-06-30 00:21:26 491

原创 MySQL之如何处理超大分页

在数据量较大时,如果使用limit分页查询,在查询时,越往后,分页查询效率会越低。此时通过“覆盖索引+子查询”的形式进行优化。

2024-06-29 23:46:42 967

原创 MySQL之覆盖索引

覆盖索引是指查询使用了索引,返回的列必须在索引中能全部找到。使用id查询,直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。如果返回的列中没有创建索引,就可能会触发回表查询,所以尽量避免使用select*

2024-06-29 17:48:54 512

原创 MySQL之索引创建原则

1.针对数据量较大,且查询比较频繁的表建立索引。(单表超过10w数据)2.针对常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引3.尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高

2024-06-29 17:01:02 486

原创 MySQL之如何分析慢查询

一个SQL语句执行很慢,如何分析?可使用“explain”或者“desc”命令获取MySQL如何执行select语句的信息。语法:直接在select语句前加关键字 explain或desc

2024-06-29 16:37:43 466

原创 MySQL之如何定位慢查询

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志

2024-06-29 16:02:30 410

原创 快速使用之Log4j2日志框架

Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。

2024-04-26 21:47:38 247

原创 log4j2日志配置文件

log4j2日志配置文件

2024-04-25 00:39:20 160

原创 (学习打卡2)重学Java设计模式之六大设计原则

六大设计原则:单一职责原则、开闭原则、里氏替换原则、迪米特法则原则、接口隔离原则、依赖倒置原则。这里有设计原则的概念定义,并且会根据不同的设计原则模拟不同的场景,最后用不同的反例和正例代码对设计原则加以说明。

2024-01-03 00:16:54 1775

原创 (学习打卡1)重学Java设计模式之设计模式介绍

关于设计模式的介绍:设计模式是什么?谁发明了设计模式?设计模式有哪些种类?

2023-12-31 00:10:53 929

空空如也

空空如也

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

TA关注的人

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