为什么需要包装类,包装类的作用是什么?
- 因为java是面向对象的语言,而java基本数据类型不是面向对象的,在实际操作中,经常需要将基本数据类型转化成对象,便于操作。
- 作用是作为和基本数据类型对应的类类类型而存在,方便涉及到对对象的操作。
- 包含每种基本数据类型的相关的属性以及相关的操作方法。
自动装箱和自动拆箱是指?
包装类和基本数据类型的相互转化。
为什么String类是不可变字符序列?从String的源码分析,给出解释。
字符串是常量,它的值在创建过后不可更改,String对象是不可变的,所以可以共享。但是String类的底层结构是char类型的数组组合出来的value,而这个数组使用的是final进行修饰的。
String类的equals方法和Obeject类的equals方法有什么区别?
String类的equals方法:
- 如果2个String对象的内存地址(引用)相同,那么
return true - 如果2个String对象的内存地址(引用)不相同,那么进行类型判断,如果不是String类型,那么直接返回false,如果是String类型,则进行向下类型转换,转换成String。然后改变char类型的数组,比较2个数组上对应的位置的值是否相同,如果相同返回true,否则返回false
了解String类中的其它使用方法。
StringBuffer和StringBuilder的区别和联系是?
- StringBuffer和StringBuilder都是可变字符序列,底层都是char类型的数组。
- StringBuffer效率低,但是线程安全。
- StringBuilder效率高,但是线程不安全。
使用simpleDateFormat类来实现日期和字符串之间的转换?
1 | //字符串转日期 |
用程序查看 Date \ SimpleDateFormat \ Calendar 的用法
1 | public static void main(String[] args) { |
File类能代表一个目录吗? <能>
File类的mikdir和mikdirs有什么区别?
mikdir只能在已经存在的目录中创建文件夹,而mikdirs可以在不存在的目录中创建文件夹
使用File类模拟实现DOS的dir指令和dir/s指令。
1 | Class Main { |
使用递归算法,完成一个完整的目录树
1 | Class FileTree { |
什么时候使用枚举,枚举的定义是什么?
当需要定义一组常量的时候,需要使用枚举类型。只能取特定值中的一个,需要使用Enum关键字。所有的枚举类型都隐性的继承之java.lang.Enum。1
public enum Month {JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMB ER,OCTOBER,NOVEMBER,DECEMBER}