摘要:
93)怎么检查一个字符串只包含数字?(解决方案)94)Java 中如何利用泛型写一个 LRU 缓存?(答案<)95)写一段 Java 程序将 byte 转换为 long?(答案)95)在不使用 StringBuffer 的前提下,怎么反转一个字符串?(解决方案)97)Java 中,怎么获取一个文件中... 阅读全文
摘要:
89)如何测试静态方法?(答案)可以使用 PowerMock 库来测试静态方法。90)怎么利用 JUnit 来测试一个方法的异常?(答案)91)你使用过哪个单元测试库来测试你的 Java 程序?(答案)92)@Before 和 @BeforeClass 有什么区别?(答案) 阅读全文
摘要:
82)在多线程环境下,SimpleDateFormat 是线程安全的吗?(答案)不是,非常不幸,DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如 将 SimpleDateFormat 限制在... 阅读全文
摘要:
包含 Java 中各个部分的最佳实践,如集合,字符串,IO,多线程,错误和异常处理,设计模式等等。76)Java 中,编写多线程程序的时候你会遵循哪些最佳实践?(答案)这是我在写Java 并发程序的时候遵循的一些最佳实践:a)给线程命名,这样可以帮助调试。b)最小化同步的范围,而不是将整个方法同步,... 阅读全文
摘要:
IO 是 Java 面试中一个非常重要的点。你应该很好掌握 Java IO,NIO,NIO2 以及与操作系统,磁盘 IO 相关的基础知识。下面是 Java IO 中经常问的问题。66)在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?67)Java 中怎么创建 ByteBuff... 阅读全文
摘要:
这部分也包含数据结构、算法及数组的面试问题48) List、Set、Map 和 Queue 之间的区别(答案)List 是一个有序集合,允许元素重复。它的某些实现可以提供基于下标值的常量访问时间,但是这不是 List 接口保证的。Set 是一个无序集合。49)poll() 方法和 remove() ... 阅读全文
摘要:
31)64 位 JVM 中,int 的长度是多数?Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的Java 虚拟机中,int 类型的长度是相同的。32)Serial 与 Parallel GC之间的不同之处?(答案)Serial... 阅读全文
摘要:
17)Java 中应该使用什么数据类型来代表价格?(答案)如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的 double 类型。18)怎么将 byte 转换为 String?(答案)可以使用 String 接收 byte[] 参数的构造器来进行转换,需要注意的点是要使用... 阅读全文
摘要:
多线程、并发及线程的基础问题1)Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile... 阅读全文