一、选择题
1. 以下选项中关于int和Integer的说法错误的是( B D)。(选择二项)
A.int是基本数据类型,Integer是int的包装类,是引用数据类型
B.int的默认值是0,Integer的默认值也是0
C.Integer可以封装了属性和方法提供更多的功能
D.Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能
int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况
Integer i=5,使用了自动装箱功能 Integer i=5,int j=i;使用了自动拆箱功能
2. 分析如下Java代码,该程序编译后的运行结果是( A)。(选择一项)
A.null
B.abcdef
C.编译错误
D.运行时出现NullPointerException异常
String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”
3. 以下关于String类的代码的执行结果是( B)。(选择一项)
A.s1 == s2
B.s1.equals(s2)
C.s1 == s2
s1.equals(s2)
D.以上都不对
4. 在Java中,以下File类的方法中(C )用来判断是否是目录。(选择一项)
A.isFile( )
B.getFile( )
C.isDirectory( )
D.getPath( )
File文件是否存在+exists()
File是否是目录+isDirectory()
File是否是文件+f.isFile()
Fie最后修改时间+lastModified()
File的大小+f.length());
File的文件名+f.getName()
File文件的目录路径+f.getPath()
5. 分析下面代码的结果(A )。(选择一项)
A.true true false true
B.true true true false
C.true false true true
D.false true false true
二、简答题
1. 什么是自动装箱和自动拆箱?
自动装箱:
基本类型的数据处于需要对象的环境中时,会自动转为“对象”。
自动拆箱:
每当需要一个值时,对象会自动转成基本数据类型,没必要再去显式调用intValue()、doubleValue()等转型方法。
2. String、StringBuffer、StringBuilder区别与联系。
String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。
StringBuffer和StringBuilder非常类似,均代表可变的字符序列。 这两个类都是抽象类AbstractStringBuilder的子类,方法几乎一模一样
3. String str=”bjsxt”; 和String str= new String(“bjsxt”); 的区别。
一个在字符串常量区中定义了一个区域,简单的说创建了一个对象,一个引用
第二个在字符常量区里定义了一个区域,在堆里创建了一个区域,在栈里创建了一个引用
4. File类的方法mkdir跟mkdirs,有什么区别?
mkdir在指定目录存在的条件下才会生成对应目录 mkdirs是不论指定目录是否存在都会生成相应目录树
5. 简述枚举的使用。
枚举在需要定义一组常量的时候使用
三、编码题
1. 验证键盘输入的用户名不能为空,长度大于6,不能有数字。
提示:使用字符串String类的相关方法完成
可以使用Scanner的nextLine()方法,该方法可以接口空的字符串。
1 packageGaoQiJava300.eight;2
3 importjava.util.Scanner;4
5 public classInputId {6 public static voidmain(String[] args) {7 while (true){8 System.out.println("请输入用户名");9 Scanner input = newScanner(System.in);10 String inputstr =input.nextLine();11 if (inputstr.equals(" ")) {12 System.out.println("输入用户名为空,请重新输入");13 continue;14 }15 if (inputstr.length() < 6) {16 System.out.println("输入用户名长度小于6,请重新输入");17 continue;18 }19 for (int a = 0; a < inputstr.length(); a++)20 if (inputstr.charAt(a) > 48 &&inputstr.charAt(a) < 57) {21 System.out.println("输入用户名含有数字,请重新输入");22 break;23 }24 }25 }26 }
2. 接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。
提示:使用包装类Integer、Double和日期转换类DateFormat实现
1 packageGaoQiJava300.eight;2
3
4 importjava.text.ParseException;5 importjava.text.SimpleDateFormat;6 importjava.util.Date;7 importjava.util.Scanner;8
9 public classTransTest {10
11 public static void main(String[] args) throwsParseException {12 Scanner input=newScanner(System.in);13
14 System.out.println("请输入年龄");15 String inage=input.next();16 Integer age=Integer.parseInt(inage);17
18 System.out.println("请输入分数");19 String inscore=input.next();20 Double score=Double.parseDouble(inscore);21
22
23 System.out.println("请输入用户生日 格式:2019-5-5");24 String inbirthday=input.next();25 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");26 Date birthday=simpleDateFormat.parse(inbirthday);27
28 System.out.println("分数是"+score+",年龄是"+age+",生日是"+simpleDateFormat.format(birthday));29 }30 }
3. 根据交通信号灯颜色决定汽车停车、行驶和慢行
提示:使用枚举实现
1 packageGaoQiJava300.eight;2
3
4 importjava.util.Scanner;5
6 public classTestEnum {7
8 enumColor{9 red,yellow,green10 }11
12 public static voidmain(String[] args) {13 Scanner input=newScanner(System.in);14 System.out.println("请输入当前交通灯颜色");15 String color=input.nextLine();16 if(Color.values()[0].toString().equals(color)) {17 System.out.println("停止");18 }else
19 if(color.equals(Color.values()[1].toString())) {20 System.out.println("等待");21 }else
22 if(color.equals(Color.values()[2].toString()))23 System.out.println("通行");24 }25 }