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