当前位置: 首页 > news >正文

java自定义工具类编写规范

java自定义工具类编写规范

  • 一、编写规范
  • 二、编写工具类的两种方式
    • 1.静态类式
    • 2. 单例模式
  • 仰天大笑出门去,我辈岂是蓬蒿人

一、编写规范

  1. 工具类定义为public final class 工具类名称
  2. 工具类名称的命名应为Util结尾,例如BaseUtil
  3. 工具类的构造方法最好为private,及这个类无法实例化,无法new出一个工具类;
  4. 工具类的方法应为static修饰的,表示静态方法,可直接通过类名.方法名的格式去访问;
  5. 工具类应使用单例模式,不要使用new,重复创建对象,浪费系统资源

二、编写工具类的两种方式

1.静态类式

  1. 工具类方法设计为static方法
  2. 工具类的构造方法都设计为private
  3. 工具类本身以abstract修饰
public final class BaseUtil{
	pricate static v BaseUtil baseUtil = null;
	static{
		/** 类加载时创建,只会创建一个对象 */
		if(baseUtil == null) baseUtil = new BaseUtil();
	}
	private BaseUtil(){}
}

2. 单例模式

  1. 工具类方法都为非static方法
  2. 讲工具类设计为单例模式,表示一个项目只允许new一个工具类对象,防止反复创建
  3. 这种方式需要获取工具类对象才能调用,new一个对象,或者放在静态代码块,类加载时创建对象
public final class BaseUtil{
	private static volatile BaseUtil baseUtil = null;
	private static BaseUtil initInstance(){
		if(baseUtil == null){
			synchronized(BaseUtil){
				if(baseUtil == null) baseUtil = new BaseUtil();
			}
		}	
	}
	private BaseUtil(){
		
	}
}
  • 参考百度文库整理的规范

仰天大笑出门去,我辈岂是蓬蒿人

相关文章:

  • 计算机组成原理_Cache的基本概念
  • 【Python零基础入门篇 · 1】:print()函数的使用和转义字符、原字符总结
  • Android集成腾讯TBS_X5内核的一些解决方法
  • spring cloud
  • 【MySQL】必知必会知识点
  • 复盘模型总结
  • Spring5学习笔记03--Bean的生命周期
  • 在小熊派BearPi-HM_Micro_small开发板上安装HAP
  • 基数排序(学习)
  • hive窗口函数最全总结
  • Vulnhub靶场 ICA: 1
  • Tomcat部署
  • 大数据如何进行测试
  • python基础专栏13-python基础篇-控制结构
  • 3.4 创建共用模块-供其它模块使用
  • python3.6+scrapy+mysql 爬虫实战
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【node学习】协程
  • fetch 从初识到应用
  • JavaScript学习总结——原型
  • js中forEach回调同异步问题
  • linux学习笔记
  • MySQL数据库运维之数据恢复
  • node-glob通配符
  • react-native 安卓真机环境搭建
  • Ruby 2.x 源代码分析:扩展 概述
  • Service Worker
  • Spark RDD学习: aggregate函数
  • 当SetTimeout遇到了字符串
  • 翻译--Thinking in React
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 技术发展面试
  • 探索 JS 中的模块化
  • 由插件封装引出的一丢丢思考
  • 阿里云ACE认证之理解CDN技术
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • ###C语言程序设计-----C语言学习(6)#
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (14)Hive调优——合并小文件
  • (poj1.2.1)1970(筛选法模拟)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)php新闻发布平台 毕业设计 141646
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)appium-desktop定位元素原理
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • ******之网络***——物理***
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net mvc总结
  • .net 程序发生了一个不可捕获的异常
  • .Net6 Api Swagger配置