一、为什么需要包装类?包装类的作用是?
答:
因为 java 语言是面向对象的语言,但是java中的基本数据类型却不是面向对象的,而在实际的使用中经常需要将基本数据转化成对象,便于操作。
作用:
1、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作
2、包含每种基本数据类型相关的属性以及相关的操作方法
二、将字符串"12345"转化成基本类型数字?
答:
通过 Integer 类的静态方法来转换
Integer.parseInt(“12345”);
三、自动装箱和自动拆箱指的是?
答:
自动装箱和自动拆箱指的是将基本数据类型和包装类进行自动的互相转换
四、为什么 String 类被称为不可变字符序列?
答:
字符串是常量,它们的值在创建之后不能更改,String 对象是不可变的,所以可
以共享;
String 类的底层结构是 char 类型的数组 value,而这个数组使用 final 进行修饰
五、String 类的 equals 方法跟 Object 的 equals 方法什么关系?
答:
String 类的 equals 方法重写了 Object 类的 equals 方法,用于比较两个 String对象的内容是否相同
六、String 类的 trim()方法是什么作用?
答:
返回字符串的副本,去掉字符串前后的空格
七、“JavaString”.substring(3, 7) 返回的结果是?
答:
aStr
八、分析下面代码的结果,并画出内存结构图,并说出结果
public static void main(String[] args) {
String a = "asd";
String a1 = "asd";
String a3 = "asd"+"fgh"; //此处编译器做了优化!
String a4 = "asdfgh";
String a5 = a1+"fgh";
String a2 = new String("asd");
System.out.println(a==a1);//true
System.out.println(a3==a4);//true
System.out.println(a4==a5);//false
System.out.println(a4.equals(a5));//true
}
九、StringBuffer 和 StringBuilder 的联系是?区别是?
答:
StringBuffer 和 StringBuilder 都是可变字符序列,底层数组结构都是 char 类型的数组
StringBuffer:jdk1.0 版,线程安全,但是效率低
StringBuilder:jdk1.5 版,线程不安全,但是效率高
十、如下的代码会造成什么后果?运行期间会产生多少个对象?
String str= "";
for(int i=0;i<100;i++){
str+=i;
}
答:
会导致大量副本字符串对象存留在内存中,降低效率运行期间会产生 100 个对象;使用StringBuffer就会只有一个对象
StringBuffer sb=new StringBuffer();
for(int i=0;i<100;i++){
sb.append(i);
}
十一、System.currentTimeMillis()表示什么意思?
答:
返回以毫秒为单位的当前时间
十二、Date d = new Date()表示的是当前时间吗?
答:
是,精确到毫秒
十三、请写出SimpleDateFormat 类来实现时间跟字符串的转化?
答:
public static void main(String[] args) {
//字符串转日期
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
Date parse = sdf.parse("2000-2-3");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//日期转字符串
SimpleDateFormat sdfe=new SimpleDateFormat("yyyy-MM-dd");
String format = sdfe.format(new Date());
}
十四、File 类能代表一个目录吗?
答:
能
十五、File 类的方法 mkdir 跟 mkdirs,有什么区别?
答:
mkdir:只能在已经存的目录中创建文件夹
mkdirs:可以在不存的目录中创建文件夹
十六、什么时候使用枚举? 枚举的定义是什么?
答:
当需要定义一组常量时,使用枚举类型
枚举的定义:
只能够取特定值中的一个
使用 enum 关键字
所有的枚举类型隐性地继承自 java.lang.Enum
public enum EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
十七、switch 语句中的表达式结果可以是枚举吗?
答:
enum EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
public class Stringstr {
public static void main(String[] args) {
EnumTest test = EnumTest.TUE;
switch (test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
default:
System.out.println(test);
break;
}
}
}