- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 深入理解《Effective Java》 之 条目6:避免创建不必要的对象
1.普通的对象创建消耗不大,完全可以放心创建,只有当创建对象的开销极为昂贵时,才推荐维护对象池的方式来避免创建对象,因为维护一个对象池也是会影响性能的。2.本条与保护性复制不冲突,前者重在性能优化,后者重在安全保护。
2026-06-11 10:04:47
301
原创 深入理解《Effective Java》 之 条目4:利用私有构造器防止类被实例化
有时候需要编写仅包含静态方法和静态字段的类,这样的类被称为工具类(final。
2026-06-01 08:30:00
39
原创 深入理解《Effective Java》 之 条目3:利用私有构造器或枚举类型强化Singleton属性
Singleton指只能被实例化一次的类(就是我们经常说的单例),通常用于表示无状态的对象,如函数,或本质上唯一的组件。将一个类设计为Singleton会使其客户端测试变的十分困难,因为Singleton要求,也就不能继承,所以,我们无法创建一个新实例,用于其实现的模拟测试。
2026-05-28 08:30:00
369
原创 深入理解《Effective Java》 之条目2:当构造器参数较多时考虑使用生成器
JavaBean是一种符合特定约定的Java类,主要用于封装数据,以实现可重用、易于维护的组件化开发。它的核心设计目的是使Java对象能够在可视化构建工具(如早期的 IDE 图形设计器)和框架(如 Spring、Hibernate)中被方便地识别和操作。公共的无参构造函数属性私有化通过公共的 getter 和 setter 访问属性实现接口(可选但常见)JavaBeans 模式(又称可伸缩构造模式)是 Java 中一种通过无参构造 + setter 方法逐步构建对象的设计模式。
2026-05-25 08:30:00
410
原创 深入理解《Effective Java》 之 条目1:用静态工厂方法替代构造器
静态工厂方法是一种常用于替代构造器的模式,它允许我们通过一个类的静态方法来创建并返回类的实例,而不是直接使用new关键字。一般情况下,我们都是通过关键字new创建类的实例。这样,每new一次都会创建一个新的对象,方便、灵活。比如,声明一个字符串。");但是创建字符串,还可以用方法进行,这个方法就是静态工厂方法。");//这个方法有很多重载方法我们在创建Calendar实例时,也可以使用静态工厂方法。如果静态方法工厂不用返回一个新的创建新对象,那么对象从哪里来?使用预先构建好的实例。
2026-05-21 09:00:00
416
原创 SpringBoot日志配置最佳实践
SpringBoot默认采用SLF4J+Logback组合作为日志框架,通过starter自动配置实现。日志级别从低到高分为ALL、TRACE、DEBUG等8级,默认INFO级别,可通过配置文件调整级别和格式。支持控制台和文件输出,文件可设置滚动策略按大小或日期分割。自定义配置可通过logging前缀属性或单独的logback.xml实现,满足不同场景需求。日志系统在应用启动时通过监听器机制优先初始化,确保系统启动过程的可观测性。
2026-05-13 21:01:43
341
原创 字体渲染配置器FontRenderContext浅析
Font font=new Font("黑体",Font.BOLD,20);// 获取字形(字符形状)的轮廓// 可以对这个形状进行任意绘制或变换。
2026-05-11 15:09:06
194
原创 Jackson最新详解教程【没有之一】
这是一个最新最全面的Jackson使用教程详解,想要掌握Jackson,熟练运用ObjectMapper,这一片文章足以!从ObjectMapper基本用法,到各种注解的使用,从SprintBoot集成,到企业级开发配置,均有详细介绍和案例,也是一篇非常好的参考文档!
2026-05-02 21:47:25
380
原创 一个Java的maven项目生成.exe文件的详细过程
前言:本文是对一个java的maven项目开发桌面程序,从源码——打包jar——生成可执行文件(即后缀为.exe文件)的全过程进行了详细介绍,网上介绍的大多是其中某一个部分,小白学习起来很费劲的。你读了这篇文章后,只要按步骤操作配置,就可以将maven项目的桌面程序编译为可执行文件,拿出去给白白装叉了:)
2025-01-23 15:46:29
1362
原创 如何在延时后或循环中正确调用repaint方法
在做贪吃蛇游戏时,加了个通关切换效果,用要延时技术!发现使用repaint方法+Thread.sleep()或repaint方法+Timer均可达到目的,但其中走了不少弯路,有必要将两种方式做个分析总结。
2024-04-15 16:08:45
393
1
原创 如何使JFrame自适应Jpanel大小?
如果使JFrame根据JPanel调整大小,其设置方式与固定JFrame下,调整JPanel大小基本一致,均需要在JPanel中使用setPreferedSize()方法设置面板大小,而不能使用setSize()方法(因为在有布局管理情况下,会屏蔽setSize()方法设置的大小)。只需在添加完组件后,调用JFrame的pack()方法,使此 JFrame的大小适合其子组件的首选大小和布局。
2024-04-08 22:12:01
841
1
原创 固定JFrame下,默认BorderLayout布局中的JPanel大小如何调整
CENTER宽度、高度均倒算。1、JFrame默认布局:BorderLayout(JPanel默认布局为FlowLayout),JFrame默认布局会屏蔽设置大小JPanel.setSize设置的大小,如要更改,可以使用JPanel.setPreferredSize更改大小。JFrame默认布局为BorderLayout,共五个部分,分别为:NORTH、SOUTH、LEFT、RIGHT、CENTER,BorderLayout常量,需要为添加的组件进行单独指定。
2024-04-08 21:15:46
1194
原创 在哪些情况需要显示指定函数模板实参?
一般来说,由函数调用参数推导模板参数是模板函数调用的关键。也就是,调用参数类型隐含着模板参数类型,如果能够推导出模板参数,那么就不需要显示指定。例如:template const T& Max(const T& a,const T& b){ return a>b?a:b;}Max(3,5);函数实参3和5都是int类型,我们可以很容易推导出T=int。
2017-09-22 09:17:12
1410
1
一个简单的验证码工具-使用Java的awt纯手工绘制验证码
2026-05-11
用Jave的Swing绘制的贪吃虫游戏,具有简单交互功能
2024-04-13
WindowsAPI参考大全forCC++(chm)
2017-09-27
自动提示文本框
2011-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅