2017年5月26日

final、finalize 和 finally 的不同之处?

摘要: final是修饰符,可以用于修饰方法,变量和类等,通过final修饰的变量,就意味该变量值在初始化候就不能在改变。 finalize方法是对象在被回收之前调用的方法,给对象自己一个复活自己的机会。 finally是关键字,他通try,catch一样用于异常处理,finally块一定会被执行的,无论t 阅读全文

posted @ 2017-05-26 23:40 辰_雨_ 阅读(77) 评论(0) 推荐(0) 编辑

3*0.1 == 0.3 将会返回什么?true 还是 false?

摘要: false,因为有些浮点数不能完全精确的表示出来。 阅读全文

posted @ 2017-05-26 23:21 辰_雨_ 阅读(211) 评论(0) 推荐(0) 编辑

我能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗?

摘要: 不行,你不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。 阅读全文

posted @ 2017-05-26 23:20 辰_雨_ 阅读(544) 评论(0) 推荐(0) 编辑

Java 中 ++ 操作符是线程安全的吗?

摘要: 不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差 阅读全文

posted @ 2017-05-26 23:18 辰_雨_ 阅读(224) 评论(0) 推荐(0) 编辑

a = a + b 与 a += b 的区别

摘要: += 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加, 如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。 如果加法操作的结果比 a 的最大值要大,则 a+b 会出现编译错误,但是 a += b 没问题,如下: 阅读全文

posted @ 2017-05-26 23:18 辰_雨_ 阅读(104) 评论(0) 推荐(0) 编辑

Java 中应该使用什么数据类型来代表价格?

摘要: 如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的 double 类型。 阅读全文

posted @ 2017-05-26 23:10 辰_雨_ 阅读(149) 评论(0) 推荐(0) 编辑

Java 中 sleep 方法和 wait 方法的区别?

摘要: 虽然两个都是对当前运行的线程进行的暂停,但sleap是对线程的短暂的暂停,他是不释放锁。 而wait是意味着条件等待,所以他需要释放锁,因为这样其他等待的线程才能满足条件是获取 到该锁。 阅读全文

posted @ 2017-05-26 23:08 辰_雨_ 阅读(77) 评论(0) 推荐(0) 编辑

用 Java 写一个线程安全的单例模式(Singleton)?

摘要: public class Singleton{ private static Singleton singleton; private Singleton (){ } public static Singleton getInstance(){ if(singleton ==... 阅读全文

posted @ 2017-05-26 23:04 辰_雨_ 阅读(214) 评论(0) 推荐(0) 编辑

用 wait-notify 写一段代码来解决生产者-消费者问题?

摘要: public class EventStorage { private int maxSize; private List storage; public EventStorage(){ maxSize = 10; storage = new LinkedList(); } public s... 阅读全文

posted @ 2017-05-26 22:52 辰_雨_ 阅读(188) 评论(0) 推荐(0) 编辑

什么是线程局部变量?

摘要: 线程局部变量就是局限于线程的内部变量,属于线程自身所有,不在多个线程间的共享。 Java提供ThreadLocal的类来支持线程局部变量,是一种实现线程安全的方式。但是在 管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下, 工作线程的生命周期比任何应用变量的生命周期都要 阅读全文

posted @ 2017-05-26 22:23 辰_雨_ 阅读(134) 评论(0) 推荐(0) 编辑

导航