
开发实战
文章平均质量分 84
Vic10101
这个作者很懒,什么都没留下…
展开
-
Java数据类型与数据库类型映射技术文档
在Java开发中,数据库类型与Java类型之间的映射是一个常见的需求。正确理解两者之间的映射关系,能够有效避免数据丢失和类型转换错误。本文档将详细阐述Java中Integer和Long的最大存储数值,数据库类型与Java类型映射,以及Java自动装箱和拆箱的相关内容。通过正确理解数据库类型与Java类型的映射关系,可以有效避免数据丢失和类型转换错误。在处理数据库查询结果时,建议根据字段是否可能为null来选择合适的Java类型,以确保代码的健壮性和数据的准确性。原创 2025-04-01 19:29:20 · 923 阅读 · 0 评论 -
Java 中装饰者模式与策略模式在埋点系统中的应用
在软件开发中,装饰者模式和策略模式是两种常用的设计模式,它们在特定的业务场景下能够发挥巨大的作用。本文将通过一个实际的埋点系统案例,探讨如何在 Java 中运用装饰者模式和策略模式,以及如何结合工厂方法模式来优化代码结构。在实际的开发过程中,合理地运用设计模式能够使我们的代码更加灵活、可维护和可扩展。装饰者模式适合用于在运行时动态地给对象添加职责,而策略模式则适合用于管理多种算法或行为的组合。通过结合工厂方法模式,我们可以进一步简化客户端代码,使系统更加模块化和易于使用。原创 2025-03-25 18:24:45 · 896 阅读 · 0 评论 -
里氏替换原则
System.out.println("期望面积 20,实际面积:" + rect.getArea());System.out.println("信用卡支付:" + amount + "元");System.out.println("微信支付:" + amount + "元");:子类必须保持与父类的契约,确保继承是“is-a”关系(如“企鹅是鸟”不成立,但“麻雀是鸟”成立)。// 输出 20(正确)makeBirdFly(new Penguin());原创 2025-03-24 11:43:58 · 898 阅读 · 0 评论 -
安装PrettyZoo操作指南
Mac Inter芯片安装PrettyZoo的操作指南。原创 2025-03-23 18:06:08 · 453 阅读 · 0 评论 -
单一职责原则&开闭原则&其他开发原则
一个类应该有且仅有一个引起它变化的原因(即一个类只负责一个职责)。原创 2025-03-21 13:55:52 · 1029 阅读 · 0 评论 -
深入理解Java享元模式及其线程安全实践
享元模式(Flyweight Pattern)是一种结构型设计模式,通过共享对象来减少内存占用,从而高效支持大量细粒度的对象。其核心思想是分离对象的内部状态(可共享)和外部状态(不可共享),通过共享内部状态来避免重复创建对象。// 外部状态由参数传入。原创 2025-03-20 23:48:03 · 855 阅读 · 0 评论 -
java修饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,允许通过将对象放入包含行为的特殊封装对象中,动态地为对象添加新的功能。原创 2025-03-20 23:47:09 · 464 阅读 · 0 评论 -
Java动态代理模式深度解析
动态代理的价值:通过解耦核心逻辑与横切关注点,提升代码复用性和可维护性。在 Spring Boot 中的实践默认使用 CGLIB 代理,支持类代理。广泛应用于事务、AOP、数据访问等场景。多 Service 代理方案:通过工厂模式和 Spring 容器管理,实现统一代理逻辑。原创 2025-03-18 23:40:31 · 1788 阅读 · 0 评论 -
Function 和 Consumer函数式接口
/ 输出: HELLO。// 显式Lambda:生成匿名类调用 apply() -> toUpperCase()// 显式Lambda:可能无法内联(需通过 apply() 方法)// 方法引用:直接内联为 toUpperCase()原创 2025-03-16 23:28:36 · 615 阅读 · 0 评论 -
java枚举解析
public void execute() { /* 打开文件逻辑 */ }public void execute() { /* 保存文件逻辑 */ }System.out.println("单例工作...");枚举在需要固定常量集且伴随复杂逻辑时尤其适用,是Java中强大而灵活的特性。activities.put(Day.MONDAY, "会议");SUCCESS(200, "成功"),枚举用于表示固定数量的常量,替代传统的。:单例、策略、状态机等模式的优雅实现。:通过抽象方法和接口实现多态。原创 2025-03-13 21:59:46 · 559 阅读 · 0 评论 -
Optional约定
/ 如果 value 为 null,抛出 NPE。// 可能返回 Optional.of("value") 或 Optional.empty()System.out.println(value.length());,可以显著提高代码的健壮性和可读性,让空值处理成为显式且可控的逻辑。:通过类型系统强制调用方处理值不存在的情况,减少空指针异常。// 值不存在时直接抛出异常,避免后续逻辑的混乱。:方法返回值、链式处理可能缺失的值。原创 2025-03-13 14:45:10 · 923 阅读 · 0 评论 -
protected 和private的区别
和 是 Java 中的访问修饰符,用于控制类成员(字段、方法、构造函数等)的访问权限。它们的主要区别在于访问范围和使用场景。以下是它们的区别以及具体的应用场景:定义: 是最严格的访问修饰符,表示成员只能在其所在的类中被访问。访问范围:仅限于当前类: 成员不能被其他类访问,即使是同一个包中的类或子类也不能访问。使用场景:封装类的内部实现: 通常用于隐藏类的内部实现细节,防止外部代码直接访问或修改这些成员。实现类的私有方法:用于实现类的内部逻辑,这些方法仅在类内部使用,对外部隐藏。隐藏字段:避免外部代码直接访原创 2025-03-12 17:16:45 · 768 阅读 · 0 评论 -
BufferedOutputStream、OutputStream和ObjectOutputStream常用流操作类
定义:是Java I/O流中的一个抽象类,是所有字节输出流的父类。功能:它提供了基本的字节输出操作,允许将字节数据写入到目标(如文件、内存、网络等)。所有具体的输出流类(如、等)都继承自。用途:主要用于处理字节数据的输出操作,是其他输出流类的基础。示例代码:java复制 2. 定义:是的一个装饰类,用于对其他输出流进行缓冲处理。功能:它在底层输出流的基础上增加了一个缓冲区,通过缓冲区来优化写入操作的性能。数据首先写入缓冲区,当缓冲区满了或者调用方法时,数据才会被批量写入到目标流中。用原创 2025-03-12 16:34:56 · 676 阅读 · 0 评论 -
Java单例模式深度解析
单例模式(Singleton Pattern)是 Java 中最经典的设计模式之一,用于确保一个类只有一个实例,并提供全局访问点。以下是深度解析,涵盖核心思想、实现方式、线程安全、反射/序列化漏洞及最佳实践。唯一性:确保类只有一个实例。全局访问:通过静态方法或静态变量提供全局访问入口。延迟加载(可选):在首次使用时创建实例,减少资源占用。public class Singleton { private static final Singleton INSTANCE = new Singleton(原创 2025-03-12 11:00:10 · 986 阅读 · 0 评论 -
Maven 的常用指令
快速生成标准项目结构(如 Spring Boot、JavaFX 项目)。:将构建结果发布到远程仓库(如 Nexus、Artifactory)。:本地多模块项目中,将子模块的构建结果提供给其他模块使用。:自动化版本发布(更新版本号、打 Tag、发布到仓库)。:确保使用最新的快照版本(如依赖频繁更新的开发中库)。:分析依赖冲突(如多个版本的库冲突),快速定位问题。:检查未声明但被使用的依赖(或声明但未使用的依赖)。:强制更新远程仓库的快照(Snapshot)依赖。:分析实际生效的配置(如插件、依赖版本)。原创 2025-03-11 13:20:40 · 484 阅读 · 0 评论 -
事务传递机制
在你的代码中,`SerialNumberMysqlService` 继承了 `SerialNumberBaseService`,并且在 `SerialNumberMysqlService` 中重写了 `generateSerialNumberList` 方法,并为其添加了 `@Transactional` 注解。在你的代码中,事务注解被定义在 `generateSerialNumberList` 方法上,而不是在 `generate` 方法上。1. 将事务注解放在父类的 `generate` 方法上。原创 2025-02-27 00:52:35 · 335 阅读 · 0 评论 -
Mybatis笔记
顾名思义是一个定义mapper位置的属性在yml或下配置,作用是实现mapper接口配置见mapper和接口的绑定。原创 2022-10-31 01:26:31 · 177 阅读 · 1 评论 -
Sprignboot启动异常分析
在spring xml配置文件中引用了数据库地址 所以需要对:等进行转义处理.但是在application.properties/或者application.yml文件并不需要转义,错误和正确方法写在下面了.yml或者properties文件没有被扫描到,需要在pom文件中添加如下.来保证文件都能正常被扫描到并且加载成功.在application.properties/或者application.yml文件中没有添加数据库配置信息.没有加载成功,分析原因如下所示.转载 2022-10-28 10:49:14 · 204 阅读 · 0 评论 -
Zookeeper笔记
【谨作为学习记录】zookeeper 提供的名称空间非常类似于,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。原创 2022-10-26 00:40:40 · 316 阅读 · 0 评论 -
Curl用法
xml请求示例:curl -k https://127.0.0.1:8080/WebService1.asmx?wsdl/method=https -X POST -H "Content-Type: text/xml;charset=utf-8" -d '原创 2022-10-13 18:00:06 · 452 阅读 · 0 评论 -
Java内存分析
但是与who不同的是,w命令功能更加强大,w命令还可以显示:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1分钟、5分钟和15分钟的平均负载。我的建议是,最好根据自己机器的实际情况,建立一个指标的基线(如近一个月的平均值),只要日常的load在基线上下范围内不太大都可以接收,如果差距太多可能就要人为介入检查了。我们在排查问题的时候也是可以参考这三个值的。这行信息的后半部分,显示“load average”,它的意思是“系统的平均负荷”,里面有三个数字,我们可以从中判断系统负荷是大还是小。原创 2022-09-20 01:21:46 · 864 阅读 · 0 评论 -
线程、各种锁入门
锁分类线程五种状态线程共包括以下 5 种状态:1. 新建状态(New):线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。3. 运行状态(Running):线程获取CPU权限进行执行。需要注意的是,线程只能从就绪...原创 2021-04-11 16:48:29 · 105 阅读 · 0 评论