2019年Java面试题中高级系列228道Java面试题(一)第一篇更新1~20题的答案解析第二篇更新21~50题答案解析第三篇更新51~95题答案解析Java面试题(二)第四篇更新1~20题答案解析
2019年Java面试题中高级系列228道
.Java面试题(一)
...第一篇更新1~20题的答案解析....第二篇更新21~50题答案解析....第三篇更新51~95题答案解析...Java面试题(二)
...第四篇更新1~20题答案解析....第五篇更新21~50题答案解析....第六篇更新51~80题答案解析..
....本次更新81~115题的答案解析..
81、说出几条 Java 中方法重载的最佳实践?
..下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱。....a)不要重载这样的方法:一个方法接收 int 参数,而另个方法接收 Integer 参数。....b)不要重载参数数量一致,而只是参数顺序不同的方法。....c)如果重载的方法参数个数多于 5 个,采用可变参数。..82、在多线程环境下,SimpleDateFormat 是线程安全的吗?
..不是,非常不幸,DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如 将 SimpleDateFormat 限制在ThreadLocal 中。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。因此,从日期、时间处理的所有实践来说,我强力推荐 joda-time 库。..83、Java 中如何格式化一个日期?如格式化为 ddMMyyyy的形式?
..Java 中,可以使用 SimpleDateFormat 类或者 joda-time 库来格式日期。DateFormat 类允许你使用多种流行的格式来格式化日期。参见答案中的示例代码,代码中演示了将日期格式化成不同的格式,如 dd-MM-yyyy 或 ddMMyyyy。..84、Java 中,怎么在格式化的日期中显示时区?
..使用SimpleDateFormat来实现格式化日期,但是DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如将SimpleDateFormat 限制在 ThreadLocal 中。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。因此,从日期、时间处理的所有实践来说,强力推荐 joda-time 库。..85、Java 中 java.util.Date 与 java.sql.Date 有什么区别?
86、Java 中,如何计算两个日期之间的差距?
87、Java 中,如何将字符串 YYYYMMDD 转换为日期?
89、如何测试静态方法?
..可以使用 PowerMock 库来测试静态方法。..90、怎么利用 JUnit 来测试一个方法的异常?
..对需要测试异常的代码使用try,catch语句块。比如:public void testException(){try{Long.parseLong(null);} catch(NumberFormatException expected){}}然后使用Junit的fail函数,对于没有抛出预期异常的代码..91、你使用过哪个单元测试库来测试你的 Java 程序?
92、@Before 和 @BeforeClass 有什么区别?
..@Before :在每个测试方法之前都执行一次, 方法需要声明为public....@beforeclass :只在类中执行一次, 必须声明为public static..93、怎么检查一个字符串只包含数字?解决方案
..用Java自带的函数、用正则表达式、用ascii码判断..94、Java 中如何利用泛型写一个 LRU 缓存?
..这是一种混合的数据结构,我们需要在哈希表的基础上建立一个链表。但是Java已经为我们提供了这种形式的数据结构-LinkedHashMap!它甚至提供可覆盖回收策略的方法。唯一需要我们注意的事情是,改链表的顺序是插入的顺序,而不是访问的顺序。但是,有一个构造函数提供了一个选项,可以使用访问的顺序。..95、写一段 Java 程序将 byte 转换为 long?
96、在不使用 StringBuffer 的前提下,怎么反转一个字符串?
97、Java 中,怎么获取一个文件中单词出现的最高频率?
..这是一道算法面试题,Java中文的比较多。....1、将文件内容存入String字符串中。2、利用split()函数分割字符串,因为直接替换英文空格或者,逗号分隔就可以了,中文类似,分隔得到一个数组。
3、遍历数组中所有的单词,统计结果Map 中,key=单词,value=单词出现的次数。
4、使用TreeSet类型,对Map中的结果进行排序,依据统计次数。
5、输出最高的排序的前N名结果..
98、如何检查出两个给定的字符串是反序的?
..思路主要是,从开始字符,和另外一个从末尾字符比较,先判断长度是否相同,不同直接不可能反文。然后再比较。..99、Java 中,怎么打印出一个字符串的所有排列?
100、Java 中,怎样才能打印出数组中的重复元素?
.....
.

- 0