记得那是周五,一天连着四轮面试(上午两场+下午两场),上午是百度一面和shopee,下午两轮全是百度的
一面
-
String,StringBuffer, StringBuilder
- String是由final修饰的类,同时它是由byte(9+)或者char(8-)数组组成的,这些数组也是final的
- StringBuffer是线程安全的,StringBuilder是线程不安全的。StringBuffer是通过synchronized的方法级别来实现的
- 对于StringBuffer和StringBuilder来说,他们有一个共同的父类,即AbstractStringBuilder,他们的属性和类都没有final修饰,所以导致了他们是可变的。相对来说,StringBuffer有自己的cache,保证了查询的性能,这个cache在builder中是没有的。
-
接口和抽象类
- 在JDK5之前,接口和抽象类在语法层面上有着显著的区别:接口不能有自己的方法体,同时接口只能是public的;抽象类可以有自己实现的方法,同时抽象类也可以有空方法
- 随着JDK的升级,在Java8时,接口可以有default方法&#