java高级考试题复习题1-Java常用工具类题库

Java常用工具类题库

一.填空题

  1. 在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是_Number的直接子类。
  2. 包装类Integer的静态方法可以将字符串类型的数字”123”转换成基本整型变量n,其实现语句是:__ Integer.parseInt(“123”)__。
  3. 在Java中使用java.lang包中的__ StringBuffer/StringBuilder 类来创建一个字符串对象,它代表一个字符序列可变的字符串,可以通过相应的方法改变这个字符串对象的字符序列。
  4. StringBuilder类是StringBuffer类的替代类,两者的共同点是都是可变长度字符串,其中线程安全的类是__StringBuffer____。
  5. DateFormat类可以实现字符串和日期类型之间的格式转换,其中将日期类型转换为指定的字符串格式的方法名是Format
  6. 使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是___(int)(Math.random()*31)+30 。
  7. JDK1.5后提供了enum关键字,用以定义枚举类。枚举类是一种特殊的类,可以有自己的属性、方法和构造方法。
  8. File对象调用方法 mkdir() 创建一个目录,不包括所有必需但不存在的父目录,当且仅当已创建目录时,返回true;否则返回false。
  9. 将字符串”123”转换成基本数据类型 Interger.parseInt(iStr) 。
  10. String类的trim()方法作用是 去除字符串首尾的空格 。
  11. "hamburger".substring(4, 8) 返回的结果是 urge 。
  12. String s = "a"+”b”+”c” 创建 5 个对象。
  13. System.currentTimeMillis()表示获得的是自1970-1-01 00:00:00.000 到当前时刻的时间距离,类型为long

二、 选择题

1.

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

 

 

 

 

A.

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

 

B.

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

 

C.

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

 

D.

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

 

2.

分析如下Java代码,该程序编译后的运行结果是(  D  )。(选择一项)

 

public static void main(String[ ] args) {

         String str=null;

         str.concat("abc");

         str.concat("def");

         System.out.println(str);

}

 

 

 

 

A

Null

 

B.

Abcdef

 

C.

编译错误

 

D.

运行时出现NullPointerException异常

 

3.

以下关于String类的代码的执行结果是(  B  )。(选择一项)

 

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.

以下关于StringBuffer类的代码的执行结果是(  D  )。(选择一项)

 

public class TestStringBuffer {

         public static void main(String args[]) {

                   StringBuffer a = new StringBuffer("A");

                   StringBuffer b = new StringBuffer("B");

                   mb_operate(a, b);

                   System.out.println(a + "." + b);

         }

         static void mb_operate(StringBuffer x, StringBuffer y) {

                   x.append(y);

                   y = x;

         }

}

 

 

 

 

A.

A.B 

 

B.

A.A

 

C.

AB.AB

 

D.

AB.B

 

5.

给定如下Java代码,编译运行的结果是(  C  )。(选择一项)

 

public static void main(String []args){

         String s1= new String("pb_java_OOP_T5");

         String s2 = s1.substring(s1.lastIndexOf("_"));

         System.out.println("s2="+s2);

}

 

 

 

 

 

A

s2=_java_OOP_T5

 

B.

s2=_OOP_T5

 

C.

s2=_T5

 

D.

编译出错

6.

对于语句String s="my name is kitty",以下选项中可以从其中截取”kitty”的是(  AB  )(选择二项)

 

 

 

 

A

s.substring(11,16)

 

B.

s.substring(11)

 

C.

s.substring(12,17)

 

D.

s.substring(12,16)

 

7.

分析下面的Java程序段,编译运行后的输出结果是(  D  )。(选择一项)

 

public class Test {

         public void changeString(StringBuffer sb) {

                   sb.append("stringbuffer2");

         }

         public static void main(String[] args) {

                   Test a = new Test();

                   StringBuffer sb = new StringBuffer("stringbuffer1");

                   a.changeString(sb);

                   System.out.println("sb = " + sb);

         }

}

 

 

 

 

A

sb = stringbuffer2stringbuffer1

 

B.

sb = stringbuffer1

 

C.

sb = stringbuffer2

 

D.

sb = stringbuffer1stringbuffer2

 

8.

给定如下Java代码,编译运行的结果是(  A  )。(选择一项)

 

public static void main(String[] args) {

         StringBuffer sbf = new StringBuffer("java");

         StringBuffer sbf1 = sbf.append(",C#");

         String sbf2 = sbf + ",C#";

         System.out.print(sbf.equals(sbf1));

         System.out.println(sbf2.equals(sbf));

}

 

 

 

 

A

true  false

 

B.

true  true

 

C.

false  false

 

D.

false  true

 

9.

分析下面的Java程序,编译运行后的输出结果是(  B  )。(选择一项)

 

public class Example {

         String str = new String("good");

         char[] ch = { 'a', 'b', 'c' };

         public static void main(String args[]) {

                   Example ex = new Example( );

                   ex.change(ex.str, ex.ch);

                   System.out.print(ex.str + "and");

                   System.out.print(ex.ch);

         }

         public void change(String str, char ch[]) {

                   str = "test ok";

                   ch[0] = 'g';

         }

}

 

 

 

 

A

Goodandabc

 

B.

Goodandgbc

 

C.

test okandabc

 

D.

test okandgbc

 

10.

以下程序片段中可以正常编译的是(  C   )。(选择一项)

 

 

 

 

A

String s = "Gone with the wind"; 

String k = s+t;

String t = "good";

 

B.

String s = "Gone with the wind";

String t;           

t = s[3]+"one";

 

C.

String s = "Gone with the wind";

String stanfard = s.toUpperCase();

 

D.

String s = "home directory";

String t = s – "directory";

 

11.

File类中的(  B  )方法可以用来判断文件或目录是否存在。(选择一项)

 

 

 

 

A

exist()

 

B.

exists()

 

C.

fileExist()

 

D.

fileExists()

 

12.

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

 

 

 

 

A

isFile( )

 

B.

getFile( )

 

C.

isDirectory( )

 

D.

getPath( )

 

13.

分析下面的Java程序,编译运行后的输出结果是(  B  )。(选择一项)

 

public class Example {

         String str = new String("good");

         char[] ch = { 'a', 'b', 'c' };

         public static void main(String args[]) {

                   Example ex = new Example( );

                   ex.change(ex.str, ex.ch);

                   System.out.print(ex.str + "and");

                   System.out.print(ex.ch);

         }

         public void change(String str, char ch[]) {

                   str = "test ok";

                   ch[0] = 'g';

         }

}

 

 

 

 

A

Goodandabc

 

B.

Goodandgbc

 

C.

test okandabc

 

D.

test okandgbc

 

14.

分析下面代码的结果(  A  )。(选择一项)

 

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.方法Integer.parseInt()的作用是将一个整数转变成String。( F )
2.JK1.5后提供了自动装箱和自动拆箱功能,从而可以实现基本数据类型和对应包装类之间的自动转换,简化了操作。( T )
3.执行语句String str="abcedf"; int len=str.length; 后,能够得到字符串的长度是6。( F )
4.运算符“==”用于比较引用时,如果两个引用指向内存同一个对象,则返回true。( T )
5.java.sql.Date类和java.util.Date类的关系是前者是后者的父类,其中前者没有提供无参数构造方法,而后者可以提供无参数构造方法来获取当前时间。( F )
6.求x的y次方,其表达式为:Math.pow(x,y)。( T )
7.一个File对象可以代表一个文件或目录,它可以获取文件和目录属性,也可以访问文件内容。( F )
8.在使用File类中的delete( )方法时,删除时可能文件不存在,所以我们最好先判断一下是否存在,不然会出现NullPointerException异常。( F )
9.Date d = new Date()表示的是当前时间。( T )
10.递归可以完全使用迭代来代替。( T )

四、 简答题

1.自动装箱和自动拆箱
2.String、StringBuffer、StringBuilder区别与联系。
3.String str=”bjsxt”;和String str= new String(“bjsxt”);的区别
4.java.sql.Date和java.util.Date的联系和区别
5.为什么要使用包装类,包装类的作用。
6.File类的方法mkdir跟mkdirs,有什么区别?
前一个是创建一个文件夹,后一个是把所有的都创建

1.简述枚举的使用。
2.递归算法的优点是什么?缺点是什么?

五、 编码题

1.验证键盘输入的用户名不能为空,长度大于6,不能有数字。
提示:使用字符串String类的相关方法完成

public class TestCheckUserName
{
    public static void main(String[] args)
    {
        //给出用户名
        Scanner input = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String userName = input.nextLine();
        //验证表单输入的用户名不能为空,
        if (userName == null || "".equals(userName))
        {
            System.out.println("用户名不能为空");
            return;
        }
        //长度大于6,
        if (userName.length() <= 6)
        {
            System.out.println("用户名长度必须大于6个字符");
            return;
        }
        //不能有数字
        for (int i = 0; i < userName.length(); i++)
        {
            //取出每个字符
            char ch = userName.charAt(i);//'3'  '4'
            //判断每个字符是否是数字
            //if(ch <='9'  && ch >='0'){
            if (ch <= 57 && ch >= 48)
            {
                System.out.println("用户名不能有数字");
                //break;//退出for循环
                return;//退出main方法
            }
        }
        System.out.println("用户名符合要求");
    }
}

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

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

public class TestStringConvert
{
    public static void main(String[] args)
    {
        //从键盘输入字符串形式的年龄,分数和入学时间
        Scanner input = new Scanner(System.in);
        System.out.print("请输入年龄:");
        String sage = input.nextLine();
        System.out.print("请输入分数:");
        String sscore = input.nextLine();
        System.out.print("请输入日期(yyyy/MM/dd):");
        String sdate = input.nextLine();
        //年龄转换String----int
        int age = 0;
        age = Integer.parseInt(sage);
        //分数转换 String ---double
        double score = 0.0;
        score = Double.parseDouble(sscore);
        //入学时间的转换String ---Date
        Date enterDate = null;
        DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        try
        {
            enterDate = sdf.parse(sdate);
        } catch (ParseException e)
        {
            e.printStackTrace();
            //return;
        }
        //输出结果
        System.out.println(age + "  " + score + "  " + enterDate);
    }
}

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

提示:使用枚举实现

//定义信号灯枚举
public enum Signal
{
    红, 绿, 黄
}
public class TestSignal
{
    public static void main(String[] args)
    {
        //指定信号灯颜色
        Signal s = Signal.红;
        //根据颜色决定汽车下步行动
        switch (s)
        {
            case 红:
                System.out.println("停车");
                break;
            case 绿:
                System.out.println("行驶");
                break;
            case 黄:
                System.out.println("慢行");
                break;
        }
    }
}//定义信号灯枚举
public enum Signal
{
    红, 绿, 黄
}
public class TestSignal
{
    public static void main(String[] args)
    {
        //指定信号灯颜色
        Signal s = Signal.红;
        //根据颜色决定汽车下步行动
        switch (s)
        {
            case 红:
                System.out.println("停车");
                break;
            case 绿:
                System.out.println("行驶");
                break;
            case 黄:
                System.out.println("慢行");
                break;
        }
    }
}

4.以树状结构输出计算机某个指定文件夹下的所有的文件和子文件夹名称。

提示:使用File的方法,并结合递归实现

public class TestDirectory
{
    public static void main(String[] args)
    {
        File file = new File("d:/101sxt");
        showTree(file, 1);
    }
    public static void showTree(File file, int level)
    {
        //获取当前目录下的文件和子文件夹(仅当前层次)
        File[] files = file.listFiles();
        //输出当前目录下的文件和子文件夹(仅当前层次)
        for (File f : files)
        {
            //根据级别level输出指定个数的-
            for (int i = 0; i < level; i++)
            {
                System.out.print("-");
            }
            //输出当前的一个文件或文件夹
            if (f.isDirectory())
            {
                System.out.println("[" + f.getName() + "]");
                //递归
                showTree(f, level + 1);
            } else
            {
                System.out.println(f.getName() + "\t" + f.length());
            }
        }
    }
}

5.将1990年3月3日通过Calendar来表示,并得出这天是该年的第几天?将该日期增加35天,是哪一天?使用代码来说明。

public class Test
{

    public static void main(String[] args)
    {
        Calendar calendar = Calendar.getInstance();
        //设置年月日
        calendar.set(1990, 3, 3);
        //得到该年的第几天
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println(dayOfYear);
        //增加35天
        calendar.add(Calendar.DAY_OF_YEAR, 35);
        //得到date对象
        Date date = calendar.getTime();
        System.out.println(date.toLocaleString());
    }
}
//或者采用如下代码实现
public static void main(String[] args) throws ParseException 
{
    Calendar ca = Calendar.getInstance();//创建一个日期实例
    DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
    Date date = df.parse("1990年3月3日");
    ca.setTime(date );//实例化一个日期
    System.out.println(ca.get(Calendar.DAY_OF_YEAR));                                                         ca.add(Calendar.DAY_OF_YEAR, 35);//加上35天
    System.out.println(df.format(ca.getTime()));//获取那一天
}

六、 可选题

1.生成10个[10,23)之间的随机整数

提示:分别使用Math.random()和Random类的nextDouble()或nextInt()实现

public class TestRandom
{
    public static void main(String[] args)
    {
        //实现1:生成10个[10,23)之间的随机整数             
        for (int i = 0; i < 10; i++)
        {
            int r = (int) (Math.random() * 13) + 10;
            System.out.print(r + "\t");
        }
        System.out.println();
        Random rand = new Random();
        //实现2:生成10个[10,23)之间的随机整数
        for (int i = 0; i < 10; i++)
        {
            int r = (int) (rand.nextDouble() * 13) + 10;
            System.out.print(r + "\t");
        }
        System.out.println();
        //实现3:生成10个[10,23)之间的随机整数
        for (int i = 0; i <= 10; i++)
        {
            int r = rand.nextInt(13) + 10;//[0,13)+10---[10,23)
            System.out.print(r + "\t");
        }
        System.out.println();
    }
}

2.手动定义一个枚举,表示十二个月的英文月份。

public enum Month
 {
    January, february, March, April, May, June,
   July, August, September, October, November, December
 }

3.打印某个月份的可视化日历

提示:使用DateFormat、Calendar类实现功能

public class VisualCalendar2
{
    public static void main(String[] args) throws ParseException
    {
        //从键盘输入指定格式的字符串 (Scanner) 2015-12-3
        System.out.println("请输入日期(按照格式:2030-3-10):");
        Scanner scanner = new Scanner(System.in);
        String temp = scanner.nextLine();
        //把输入的字符串变成Date(DateFormat)
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = format.parse(temp);
        //把Date变成Calendar(setTime())
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        //取出日历的日信息
        int dateOfMonth = calendar.get(Calendar.DATE);
        //输出日历头信息  日         一     二     三     四     五     六
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //输出该月1日之前的空白( 要知道该月1日是星期几)
        calendar.set(Calendar.DATE, 1);
        int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
        for (int i = 1; i < weekDay; i++)
        {
            System.out.print('\t');
        }
        //输出该月的日历从1到最后一天(更多细节)
        int maxDay = calendar.getActualMaximum(Calendar.DATE);
        for (int i = 1; i <= maxDay; i++)
        {
            //如果是当天,输出*
            if (i == dateOfMonth)
            {
                System.out.print("*");
            }
            //输出每一天
            System.out.print(i + "\t");
            //如果是周六换行
            weekDay = calendar.get(Calendar.DAY_OF_WEEK);
            if (weekDay == 7)
            {
                System.out.println();
            }
            //日历变成下一天!!!!!!
            calendar.add(Calendar.DATE, 1);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,148评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • 每天清晨六点半准时被闹钟吵醒,关上闹钟麻溜起床,洗漱,丝毫不敢耽搁。背起背包打开房门那一刻,回头望望胖胖:胖胖还在...
    夏寞之秋阅读 314评论 0 0
  • 3月7日晚上七点,我们迎来了2018年度“乡村青年教师社会支持公益计划”的开学典礼。在这次课程中,我们认识了一位平...
    小桥流水人家413阅读 715评论 0 3