一、选择题
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)。(选择一项)
1
2
3
4
5
6
|
public
static
void
main(String[ ] args) {
String str=””;
str.concat(
"abc"
);
str.concat(
"def"
);
System.out.println(str);
}
|
A.null
B.abcdef
C.编译错误
D.运行时出现NullPointerException异常
String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”
3. 以下关于String类的代码的执行结果是( B)。(选择一项)
1
2
3
4
5
6
7
8
9
10
|
public
class
Test2 {
public
static
void
main(String args[]) {
String s1 =
new
String(
"bjsxt"
);
String s2 =
new
String(
"bjsxt"
);
if
(s1 == s2)
System.out.println(
"s1 == s2"
);
if
(s1.equals(s2))
System.out.println(
"s1.equals(s2)"
);
}
}
|
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 )。(选择一项)
1
2
3
4
5
6
7
8
9
10
11
12
|
public
static
void
main(String args[]) {
String s =
"abc"
;
String ss =
"abc"
;
String s3 =
"abc"
+
"def"
;
String s4 =
"abcdef"
;
String s5 = ss +
"def"
;
String s2 =
new
String(
"abc"
);
System.out.println(s == ss);
System.out.println(s3 == s4);
System.out.println(s4 == s5);
System.out.println(s4.equals(s5));
}
|
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 package GaoQiJava300.eight; 2 3 import java.util.Scanner; 4 5 public class InputId { 6 public static void main(String[] args) { 7 while (true){ 8 System.out.println("请输入用户名"); 9 Scanner input = new Scanner(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 package GaoQiJava300.eight; 2 3 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 import java.util.Scanner; 8 9 public class TransTest { 10 11 public static void main(String[] args) throws ParseException { 12 Scanner input=new Scanner(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 package GaoQiJava300.eight; 2 3 4 import java.util.Scanner; 5 6 public class TestEnum { 7 8 enum Color{ 9 red,yellow,green 10 } 11 12 public static void main(String[] args) { 13 Scanner input=new Scanner(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 }