文章目录
1、用 java写一个线程安全的单例模式(Singleton)
一步一步创建一个线程安全的 Java 单例类。当我们说线程安全时,意思是即使初始化是在多线程环境中,仍然能保证单个实例。 Java 中,使用枚举作为单例类是最简单的方式来创建线程安全单例模式的方式。
2、Java 中 sleep 方法和 wait 方法的区别?
虽然两者都是用来暂停当前运行的线程,但是 sleep()实际上只是短暂停顿,因为它不会释放锁,而 wait() 意味着条件等待,这就是为什么该方法要释放锁,因为只有这样,其他等待的线程才能在满足条件时获取到该锁。
3、什么是不可变对象(immutable object) Java 中怎么创建一个不可变对象?
不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如 String、Integer及其他包装类。[具体步骤]((2条消息) java创建一个不可变对象_如何在Java中创建不可变类?_cunchi4221的博客-CSDN博客)
4、我们能创建一个包含可变对象的不可变对象吗?
是的,我们是可以创建一个包含可变对象的不可变对象的,你只需要谨慎一点,不要共享可变对象的引用就可以了,如果需要变化时,就返回原对象的一个拷贝。最常见的例子就是对象中包含一个日期对象的引用。
5、java 中应用使用什么数据类型来代表价格?
如果不是特别关心内存和性能的话,使用 BIgDecimal,否则使用预定义精度的 double 类型