ZhaoJiu's Studio.

JAVA SE 07 java常用类

字数统计: 887阅读时长: 3 min
2019/04/21 Share

为什么需要包装类,包装类的作用是什么?

  • 因为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
2
3
4
5
6
//字符串转日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse("1900-3-13");
//日期转字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.format(new Date());

用程序查看 Date \ SimpleDateFormat \ Calendar 的用法

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
//Date的用法
Date date = new Date();
System.out.println(date.toString());
//SimpleDateFormat的用法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(new Date());
//Calendar的用法
GrengorianCalendar cd = new GrengorianCalendar();
cd.set(Calendar.YEAR,2018);
}

File类能代表一个目录吗? <能>

File类的mikdir和mikdirs有什么区别?

  mikdir只能在已经存在的目录中创建文件夹,而mikdirs可以在不存在的目录中创建文件夹

使用File类模拟实现DOS的dir指令和dir/s指令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Class Main {
public static void main(String[] args) {
File file = new File("E:/file1");
showTree(file,1);
}
public static void showTree(File file,int level) {
File[] files = file.listFiles();
for (File f: files) {
for (int i=0;i<level;i++) {
System.out.print("-");
}
if (f.isDirectory()) {
System.out.prinln(f.getName());
showTree(f,level+1);
} else {
System.out.println(f.getName());
}
}
}
}

使用递归算法,完成一个完整的目录树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Class FileTree {
public static void main(String[] args) {
File f = new File("E:/file1");
printFile(f,0);
}
public static void printFile(File file,int level) {
for (int i=0;i<level;i++) {
System.out.print("-");
}
System.out.println(file.getName());
if (f.isDirectory()) {
File[] files = file.listFiles();
for (File f:files) {
printFile(f,level+1);
}
}
}
}

什么时候使用枚举,枚举的定义是什么?

当需要定义一组常量的时候,需要使用枚举类型。只能取特定值中的一个,需要使用Enum关键字。所有的枚举类型都隐性的继承之java.lang.Enum

1
public enum Month {JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMB ER,OCTOBER,NOVEMBER,DECEMBER}

CATALOG
  1. 1. 为什么需要包装类,包装类的作用是什么?
  2. 2. 自动装箱和自动拆箱是指?
  3. 3. 为什么String类是不可变字符序列?从String的源码分析,给出解释。
  4. 4. String类的equals方法和Obeject类的equals方法有什么区别?
  5. 5. 了解String类中的其它使用方法。
  6. 6. StringBuffer和StringBuilder的区别和联系是?
  7. 7. 使用simpleDateFormat类来实现日期和字符串之间的转换?
  8. 8. 用程序查看 Date \ SimpleDateFormat \ Calendar 的用法
  9. 9. File类能代表一个目录吗? <能>
  10. 10. File类的mikdir和mikdirs有什么区别?
  11. 11. 使用File类模拟实现DOS的dir指令和dir/s指令。
  12. 12. 使用递归算法,完成一个完整的目录树
  13. 13. 什么时候使用枚举,枚举的定义是什么?