自定义博客皮肤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)
  • 收藏
  • 关注

原创 设计模式之适配器模式

下图中是对象适配器模式的uml图,可以看到Adapter(适配器类)依赖于Adaptee(适配者类,或被适配器类),同时实现了Target接口(客户端想要使用的接口)。这次举个难点的例子,之前跟着廖雪峰老师的课程实现web容器的时候,将httpexchange转换为httpservletrequest和httpservletresponse,就用了适配器模式,就实现这个。之前的设计模式都是用ai写的,感觉效果很差,虽然ai写的很好,但是自己脑子记不住,于是决定还是自己写,哪怕写的不好呢,好歹是自己写的。

2026-01-12 22:02:15 66

原创 Navicat 无法连接本地虚拟机内的 MySQL 的解决办法

在服务器(虚拟机)内可以用 root 账号密码登录 MySQL 命令行,但外部的 Navicat 无法连接,在本地测试的时候遇到这个问题,问了豆包之后进行了以下两个操作,问题解决了。ai真厉害啊。

2026-01-10 15:36:50 270

原创 设计模式之建造者模式

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。产品是最终要构建的复杂对象,包含多个部件。/*** 产品类:汽车(包含多个部件)*/// 汽车部件// 品牌// 颜色// 发动机// 车轮数量// 座椅数量// 空参构造(由建造者赋值)// setter方法(建造者通过setter设置部件)// 展示汽车信息@Override'}';抽象建造者定义了构建产品所有部件的方法,以及返回最终产品的方法。/*** 抽象建造者:汽车建造者*/

2026-01-10 11:27:31 860

原创 设计模式之简单工厂模式、工厂模式、抽象工厂模式

三种工厂模式的核心都是 “解耦对象创建与使用”,区别只在 “工厂的职责范围”:简单工厂造所有单品,工厂模式造单个单品,抽象工厂造一组配套单品;开闭原则是核心取舍点:简单工厂牺牲开闭换简单,工厂模式平衡简单与开闭,抽象工厂聚焦产品族的开闭;不用死记定义,记住 “万能小卖部、单品小卖部、品牌专卖店” 的比喻,就能快速选对模式。

2026-01-09 17:29:47 710

原创 为什么DCL 双重检查锁(Double-Check Lock)的性能比线程安全懒汉式(同步方法)好

摘要:DCL(双重检查锁)与同步方法懒汉式在性能上的差异主要源于锁机制的不同。同步方法懒汉式每次调用都加锁,导致高并发时大量线程竞争锁资源,性能急剧下降;而DCL仅在首次创建实例时加锁,后续调用直接返回实例,避免了锁竞争。测试数据显示,DCL性能可达同步方法的14倍。此外,DCL中volatile关键字虽不影响性能,但能确保线程安全。在高并发场景下,DCL是更优选择。

2026-01-09 10:10:53 527

原创 设计模式之状态模式和策略模式

状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。简单来说,当一个对象的内部状态发生变化时,它的行为也会随之改变。我们将每个状态对应的行为封装在一个独立的“状态”类中,而不是在一个巨大的if-else或语句中。策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。简单来说,你有一个目标(例如“排序”),但有多种方法(算法)可以实现它(例如“冒泡排序”、“快速排序”)。策略模式允许你在运行时动态地选择一种方法。状态模式。

2026-01-05 21:57:53 867

原创 WSDL文件转java后,用命令行打jar包

其中c表示要创建一个新的jar包,v表示创建的过程中在控制台输出创建过程的一些信息,f表示给生成的jar包命名。例:jar -cvf S40012010004.jar com。在编译的classes目录下,com的同级目录手动打jar包。命令:jar cvf 包名.jar 所要打包的目录名。

2025-12-18 10:45:42 144

原创 idea环境tomcat用debugger模式启动,断点只能进入一次的解决方案。

在工作时,公司的web项目我和身边的同事发现,我们调试后端程序时断点只能生效一次,第二次刷新前端页面的时候就不会进入断点了。但是其他同事却没有这个情况,今天终于破案了。原来是我们在调试的时候点击的是run to cursor。即跳转到光标处的按钮(下图右边那个按钮),这个按钮在没有光标的时候,会直接运行到底,同时使下一次刷新页面不进入断点。所以,如果是调试已经结束,最好使用左边的resume program按钮,其他同事也应该是这么用的。这样,就可以每次刷新前端页面就进入断点了。

2025-11-23 20:32:18 259

空空如也

空空如也

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

TA关注的人

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