为什么Java工具类方法为静态类

如果一个类中所有的方法都是静态的,需要再多做一步,私有构造方法。
目的是不让其他类创建本类对象
直接用类名.调用即可
基础:每个线程都有自己的线程栈,栈与线程同时创建,每一个虚拟机线程都有自己的程序计数器PC,在任何时刻,一个虚拟机线程只会执行一个方法的代码,这个方法称为该线程的当前方法,如果这个方法不是native的,程序计数器就保存虚拟机正在执行的字节码指令的地址。线程调用方法的时候会创建栈帧,用于保存局部变量表和操作数栈以及指向该类常量池的引用
静态方法虽然是同一个方法,但是不同线程在调用,程序计数器的值是不一样的,操作这两个线程不会相互影响(假设不存在访问共享变量的情况)
1.保证不依靠其他类、属性、方法等
2.不需要考虑方法同步
3. 如果使用单例类,需要考虑线程同步的情况,这是工具类不使用单例的原因(我认为是这样的)

这里还有一点需要补充:在写工具类时,最好是将其构造方法私有化,避免意外的初始化类,做无意义的工作

其实今天在学hibernate中的时候突然对这个感觉很好奇,因为在工厂模式下,工厂只创建一次,而工厂里面的都是静态工具类,下面把代码展示一下:
package com.heima.hibernate.utils;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**

  • hibernate的一个工具类
  • @author 联想

*/
public class HibernateUtils {

public static final Configuration cfg;
public static final SessionFactory sf;

static {
	cfg = new Configuration().configure();
	sf = cfg.buildSessionFactory();
}

}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值