尚学堂-第八章答案

一、选择题

  1. 以下选项中关于int和Integer的说法错误的是( )。(选择二项)

A.int是基本数据类型,Integer是int的包装类,是引用数据类型

B.int的默认值是0,Integer的默认值也是0

C.Integer可以封装了属性和方法提供更多的功能

D.Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能

  1. 分析如下Java代码,该程序编译后的运行结果是( )。(选择一项)
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异常

  1. 以下关于String类的代码的执行结果是( )。(选择一项)
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.以上都不对

  1. 在Java中,以下File类的方法中( )用来判断是否是目录。(选择一项)

A.isFile( )

B.getFile( )

C.isDirectory( )

D.getPath( )

  1. 分析下面代码的结果( )。(选择一项)
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. 什么是自动装箱和自动拆箱?
    自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的互相转换。例如,在jdk1.5之后,Integer i =5;会自动封装成包装类。而Integer i = 5;int j = i;中i也可以自动拆箱成为int类型。

  2. String、StringBuffer、StringBuilder区别与联系。
    StringBuffer和StringBuilder非常类似,均代表可变的字符序列。 这两个类都是抽象类AbstractStringBuilder的子类,方法几乎一模一样。
    区别:
    StringBuffer JDK1.0版本提供的类,线程安全,做线程同步检查, 效率较低。
    StringBuilder JDK1.5版本提供的类,线程不安全,不做线程同步检查,因此效率较高。 建议采用该类。

  3. String str=”bjsxt”; 和String str= new String(“bjsxt”); 的区别。
    String str=”bjsxt”; 这条语句在常量池中生成“bjsxt”的引用值并赋给str。String str= new String(“bjsxt”); 这条语句既在常量池中生成了了“bjsxt”,同时也创建了一个string对象,把对象的引用赋值给str。

  4. File类的方法mkdir跟mkdirs,有什么区别?
    mkdir创建目录,如果中间目录名缺失则创建失败,mkdirs创建目录,如果中间目录名缺失会自动创建。

  5. 简述枚举的使用。

三、编码题

  1. 验证键盘输入的用户名不能为空,长度大于6,不能有数字。

    提示:使用字符串String类的相关方法完成

    可以使用Scanner的nextLine()方法,该方法可以接口空的字符串。

import java.util.Scanner;

public class Eighth1 {
	public static void main(String[] args) {
		System.out.println("请输入用户名:");
		Scanner scanner = new Scanner(System.in);
		String s = scanner.nextLine();
		while(!isLegal(s)) {
			System.out.println("请重新输入用户名:");
			s = scanner.nextLine();
		} 
		System.out.println("输入正确");
	}
	
	public static boolean isLegal(String s) {
		if (s.isEmpty()) {
			System.out.println("用户名不能为空");
			return false;
		}else if (s.length()<6) {
			System.out.println("用户名长度不能小于6");
			return false;
		}else if (hasNum(s)) {
			System.out.println("用户名中不可包含数字");
			return false;
		}
		return true;
	}
	
	
	public static boolean hasNum(String s) {
		for(int i=0;i<s.length();i++) {
			if(Character.isDigit(s.charAt(i))) {
				return true;
			}
		}
		return false;
	}
}

在这里插入图片描述
2. 接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。

提示:使用包装类Integer、Double和日期转换类DateFormat实现


import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Eighth2 {
	public static void main(String[] args) throws ParseException {
		String age, score, admisionTime;
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入您的年龄:");
		age = scanner.nextLine();
		System.out.println("请输入您的分数:");
		score = scanner.nextLine();
		System.out.println("请输入您入学时间(格式例:1999-9-9):");
		admisionTime = scanner.nextLine();
		
		Integer age1 = Integer.valueOf(age);
		Double score1 = Double.valueOf(score);
		DateFormat d1 = new SimpleDateFormat("yyyy-mm-dd");
		Date admisionTime1 = d1.parse(admisionTime);
		System.out.println("年龄为:"+age1+",分数为:"+score1+",入学时间为:"+admisionTime);
		
	}
}

在这里插入图片描述

  1. 根据交通信号灯颜色决定汽车停车、行驶和慢行

    提示:使用枚举实现

public class Eighth3 {
	public static void main(String[] args) throws InterruptedException {
		boolean flag = true;
		while(flag) {
				for(int i=0;i<3;i++) {
				
				switch (TrafficLight.values()[i]) {
				case 红灯:
					System.out.println("红灯:汽车停止");
					break;
				case 黄灯:
					System.out.println("黄灯:汽车慢行");
					break;
				case 绿灯:
					System.out.println("绿灯:汽车通行");
					break;
				}
				Thread.sleep(3000);
			}
		}
		
	}
}

enum TrafficLight{
	红灯,黄灯,绿灯
}

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值