自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 在面试中通过工厂模式来证明自己的能力

开闭原则(Open Closed Principle,也叫OCP)和设计模式无关,它是一种设计架构的原则,其核心思想是,系统(或模块或方法)应当对扩展开放,对修改关闭,比如对于上述案例,遇到扩展了,我们没有修改现有代码,从而可以避免测试不相干的模块。建造者模式和工厂模式都是关注于“创建对象”,在面试时,我们一般会问它们的差别。抽象工厂是对一般工厂模式的扩展,比如我们在写java和数据库方面的书籍时,需要添加录制讲解视频的方法,也就是说,在Java书和数据库书这两个产品里,我们不仅要包含文稿,还得包含视频。

2024-06-04 18:49:19 470

原创 中高级开发面试必问的Redis面试题,看这篇就够了!

*开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **} dictht;void *key;double d;} v;Redis 的字典 dict 中包含两个哈希表 dictht,这是为了方便进行 rehash 操作。在扩容时,将其中一个 dictht 上的键值对 rehash 到另一个 dictht 上面,完成之后释放空间并交换两个 dictht 的角色。} dict;

2024-06-04 17:51:58 525

原创 【Java基础】枚举

/编译器自动生成的。枚举其实就是编译帮我们在静态代码块中创建一个或多个枚举成员对象,如果我们只定义一个枚举成员,这样就是一个单例对象。**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **代码如此简单,不仅如此,这样的方式还可以解决 反射攻击 和 反序列化 导致的单例失败的问题。枚举的序列时仅降枚举对象的name属性输出到结果中,在反序列化时则是通过。//编译器自动生成的 javap -c 还查不出来,疑惑。通过上面还原后的代码可知,在类的。

2024-06-04 17:03:43 386

原创 SpringBoot整合第三方技术

注意:整合的Junit测试类需要和Java包中的配置文件类放在同一目录下,否则需要指定配置java文件的class。**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **注意:由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version。Mybatis-Plus与Mybati 区别。创建新模块的时候选择需要的技术集。测试类中注入dao接口,测试功能。三、整合Mybatis-Plus。二、整合Mybatis。

2024-06-04 16:17:06 299

原创 MySQL存储引擎

*开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。常用存储引擎简介。

2024-06-04 15:30:32 794

原创 Java集合源码解析--ArrayList

*开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **一、ArrayList1.1 整体架构ArrayList 整体架构比较简单,就是一个数组结构,比较简单,如下图:图中展示是长度为 10 的数组,从 1 开始计数,index 表示数组的下标,从 0 开始计数,// … //// DEFAULT_CAPACITY 表示数组的初始大小,默认是 10,这个数字要记住;// 用于空实例的共享空数组实例// 用于提供默认大小的实例的共享空数组实例。

2024-06-04 14:50:01 355

原创 Java~序列化和反序列化为什么要实现Serializable接口

显示指定 serialVersionUID 后就解决了序列化与反序列化产生的 serialVersionUID 不一致的问题.反序列化后的结果: User{name=‘Listen’, age=22, sex=‘null’}序列化前的结果: User{name=‘Listen’, age=22, sex=‘null’}System.out.println("反序列化后的结果: "+ dUser);System.out.println("序列化前的结果: " + user);先进行序列化, 再进行反序列化.

2024-06-04 14:11:26 518

原创 b树,b+树,红黑树

把原结点上的关键字和k按升序排序后,从中间位置把关键字(不包括中间位置的关键字)分成两部分。左部分所含关键字放在旧结点中,右部分所含关键字放在新结点中,中间位置的关键字连同新结点的存储位置插入到父结点中。若比结点的第一个关键字小,则查找在该结点第一个指针指向的结点进行;若比该结点所有关键字大,则查找在该结点最后一个指针指向的结点进行;若满足,则说明该结点还有空位置,直接把关键字k插入到该结点的合适位置上。B-树的查找过程:根据给定值查找结点和在结点的关键字中进行查找交叉进行。//指向父结点的指针。

2024-06-04 13:22:17 283

空空如也

空空如也

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

TA关注的人

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