今天面试的问题
引言
今天一天的面试已经结束了,收货颇多,当问到jdk1.8新特性的时候回答的并不是很好,今天来总结一下,感觉平常一些东西用过,但是关键时刻还是把握不住重点。今天就聊一聊jdk8新特性的
已知
那就聊一聊我知道的吧。jdk1.8 HashMap加入了红黑树,接口可以使用default来实现方法体,lambda表达式(了解过一点,具体来说没怎么使用过)。对我来说知道的就是这些了。switch语句加入对String类型的支持(这一点记忆有点混乱,有点忘了是1.7还是1.8之后加入的支持了)
聊一下面试的问题
util包下的Date有什么缺陷
不提供国际化,没有一个时区的支持。
util包下的Date和sql包下的Date的区别
util包下的Date主要针对除了sql语句下的使用
sql包下的Date主要针对sql语句的使用 只有日期的设置,没有一个具体的时间设置,都提供了getTimes() 方法获取毫秒数。
Time包主要用过什么类
原文:http://coderbee.net/index.php/java/20131015/503
Time包的东西是JDK1.8之后引入的新特性,具体是什么真没有怎么了解过。简单的说一下:
LocalDateTime : 保存了日期和时间
LocalDate:保存了日期
Instant——时间戳
ZonedDateTime——时区的日期时间。
LocalTime:保存了时间;
Year:表示年份
Month:表示月份。
DayOfWeek:存储星期的一天之前做过一些项目的日期时间的处理,大部分都是使用Calendar类封装了一个TimeUtil来解决的。
关于lock下的实现类了解多少
lock的实现请参考:https://blog.csdn.net/Luxia_24/article/details/52403033
只说了一个ReentrantLock实现了lock,使用是得手动释放锁资源。
ReentrantReadWriteLock忘了怎么拼,直接说了读写锁。
简单写一下:读锁-写锁:互斥。
写锁-写锁:互斥。
读锁-读锁:共享不互斥。
spring Bean的scope
这个回答的还可以,详细内容可以参照我的上一篇博客,我对他做了一些总结。
了解函数接口吗
一脸猛,这是真的没怎么了解过,这也是jdk1.8的新特性。
这类接口只定义了唯一的抽象方法的接口,并且这类接口使用了@FunctionalInterface进行注解
jdk1.8之后引入了java.uitl.function包,使得函数式编程编的更加的方便简洁。
主要类:
Function: 接收参数,并返回结果,主要方法 R apply(T t)
Consumer: 接收参数,无返回结果, 主要方法为 void accept(T t)
Supplier: 不接收参数,但返回结构,主要方法为 T get()
Predicate: 接收参数,返回boolean值,主要方法为 boolean test(T t)
总结
如果你写的项目使用的是jdk1.8,最好把这个版本的新特性给了解一下,以防到时候一脸懵。给大家一个链接,可以了解一下
jdk1.8新特性:https://blog.csdn.net/qq_29411737/article/details/80835658