zoukankan      html  css  js  c++  java
  • 常用工具类作业

    常用工具类作业

    一、    填空题

    1. 在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是____Number________的直接子类。
    2. 包装类Integer的静态方法可以将字符串类型的数字”123”转换成基本整型变量n,其实现语句是:__int n = integer.ParseInt(“123”);__________。
    3. 在Java中使用java.lang包中的__StringBufer和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对象调用方法   creatNewFile        创建一个目录,不包括所有必需但不存在的父目录,当且仅当已创建目录时,返回true;否则返回false。

     

    二、    选择题

    1.

    以下选项中关于intInteger的说法错误的是(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

     

     

    三、    判断题

    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. 7.       一个File对象可以代表一个文件或目录,它可以获取文件和目录属性,也可以访问文件内容。(   )
    8. 8.       在使用File类中的delete( )方法时,删除时可能文件不存在,所以我们最好先判断一下是否存在,不然会出现NullPointerException异常。(   
    9. 9.       程序调用自身的编程技巧称为递归。递归的特点是编程简单并且节省内存。(   )
    10. 10.    任何可用递归解决的问题也能使用循环解决,递归既花时间又耗内存,在要求高性能的情况下尽量避免使用递归。(   

     

    四、    简答题

    1. 自动装箱和自动拆箱

        装箱就是自动将基本数据类型转换为包装器类型;

      (1)  Integer it = 200;

      实际上是:Integer it3 = Integer.valueOf(100);

      自动装箱功能:把int类型自动装载到Integer中  先装箱,再赋值

      拆箱就是 自动将包装器类型转换为基本数据类型。

      (2)  Integer it2 = it+it1;

      实际上是:Integer it2 = Integer.valueOf(it2.intValue() + it3.intValue());

      先对it2 和 it3做拆箱功能,然后相加,得到一个int类型的值,然后在对这个int类型的值,做装箱操作,最后再赋值

     

    1. String、StringBuffer、StringBuilder区别与联系。

        (1):是否产生新的对象

                  String会产生新的对象,效率低下,浪费内存空间

                StringBuffer,StringBuilder,不会产生新的对象,都是在原本的缓冲区中操作

              (2):是否可变

                   String是不可变的

                   StringBuffer,StringBuilder可变的

              (3):是否安全

                  StringBuffer是安全的

                  StringBuilder是不安全

              (4):是否多线程

                   StringBuffer适合多线程操作

                   StringBuilder适合单线程操作

              (5):效率

                   StringBuilder>StringBuffer>String

    1. String str=”bjsxt”;和String str= new String(“bjsxt”);的区别

        1.当使用String str=" bjsxt ",这种方式时,先去内存的堆内存中找是否存在" bjsxt "这个字符串,若存在,则将地址引用。若不存在则创建。
        2.当使用String str=new String("bjsxt ");时,不管事先是否存在" bjsxt ",每次都会创建其新的对象。

    1. java.sql.Date和java.util.Date的联系和区别

        (1)    java.util.Date 就是在除了SQL语句的情况下面使用

        (2)    java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分

        (3)    它都有getTime方法返回毫秒数,自然就可以直接构建

        (4)    java.util.Date 是 java.sql.Date 的父类(注意拼写)

        (5)    java.util.Date是常用的表示时间的类,我们通常格式化或者得到当前时间都是用java.util.Date

        (6)    java.sql.Date在读写数据库的时候用java.sql.Date

     

    1. 递归的定义和优缺点

     

    五、    编码题

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

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

     1 public static void empty(String user){
     2         if(user==null||"".equals(user)){
     3             System.out.println("用户名不能为空!");
     4             return;
     5         }else if(user.length()>6){
     6             System.out.println("用户名长度不能大于6!");
     7             return;
     8         }
     9         for(int i=0;i<user.length();i++){
    10             char ch = user.charAt(i);
    11             if(ch>=48&&ch<57){
    12                 System.out.println("用户名不能有数字!");
    13                 return;
    14             }
    15         }
    16         System.out.println("用户名OK");
    17     }
    18     public static void main(String[] args) {
    19         Scanner sc = new Scanner(System.in);
    20         System.out.println("请输入用户名:");
    21         String user = sc.nextLine();
    22         empty(user);
    23         
    24         
    25     }

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

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

    public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入年龄:");
            String age1 = sc.nextLine();
            System.out.println("请输入分数:");
            String grade1 = sc.nextLine();
            System.out.println("请输入入学时间:");
            String enterDate1 = sc.nextLine();
            int age;
            age = Integer.parseInt(age1);//年龄转换为整数
            double grade =Double.parseDouble(grade1);//分数转换为浮点数
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date enterDate =df.parse(enterDate1);//入学时间转换为日期类型,
            } catch (ParseException e) {
                e.printStackTrace();
            }
            System.out.println("年龄	分数	入学时间");
         System.out.println(age+"	"+grade1+"	"+enterDate1);   
        }

    六、    可选题

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

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

     1 public static void main(String[] args) {
     2         //Math.random()方法
     3         for (int i = 1; i < 11; i++) {
     4             System.out.println("Math.random()随机生成第" + i + "个数是:");
     5             int r = (int) (Math.random() * 13) + 10;
     6             System.out.println(r);
     7         }
     8         System.out.println("============================");
     9         //Random类的nextDouble()实现
    10         Random ra = new Random();
    11         for (int j = 1; j < 11; j++) {
    12             System.out.println("Random类的nextDouble()随机生成第" + j + "个数是:");
    13             int r = (int)(ra.nextDouble() * 13) + 10;
    14             System.out.println(r);
    15         }
    16         System.out.println("============================");
    17         //Random类的nextInt()实现
    18         for (int k = 1; k < 11; k++) {
    19             System.out.println("Random类的nextDouble()随机生成第" + k + "个数是:");
    20              int b = (int)(ra.nextInt(13)+10);
    21             System.out.println(b);
    22         }
    23         
    24     }

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

     1 public static void main(String[] args) throws ParseException {
     2         //从键盘输入指定格式的字符串 (Scanner) 2015-12-3
     3         System.out.println("请输入日期(按照格式:2030-3-10):"); 
     4         Scanner scanner = new Scanner(System.in);
     5         String temp = scanner.nextLine();            
     6         //把输入的字符串变成Date(DateFormat)
     7         DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
     8         Date date = format.parse(temp);
     9         //把Date变成Calendar(setTime())
    10         Calendar calendar = Calendar.getInstance();
    11         calendar.setTime(date);
    12         //取出日历的日信息
    13         int dateOfMonth = calendar.get(Calendar.DATE);
    14         //输出日历头信息  日    一    二    三    四    五    六
    15         System.out.println("日	一	二	三	四	五	六");
    16         //输出该月1日之前的空白( 要知道该月1日是星期几)
    17         calendar.set(Calendar.DATE, 1);    
    18         int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
    19         for(int i=1;i<weekDay;i++){
    20             System.out.print('	');
    21         }        
    22         //输出该月的日历从1到最后一天(更多细节)
    23         int maxDay = calendar.getActualMaximum(Calendar.DATE);
    24         for(int i=1;i<=maxDay;i++){
    25             //如果是当天,输出*
    26             if(i==dateOfMonth){
    27                 System.out.print("*");
    28             }
    29             //输出每一天
    30             System.out.print(i+"	");
    31             //如果是周六换行
    32             weekDay = calendar.get(Calendar.DAY_OF_WEEK);
    33             if(weekDay==7){
    34                 System.out.println();
    35             }            
    36             //日历变成下一天!!!!!!
    37             calendar.add(Calendar.DATE, 1);
    38         }
    39     }
    40 
    41 3.    使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。使用递归实现
  • 相关阅读:
    K8s学习笔记
    NETCore在Centos下的内存泄漏排查
    搭建Linux下GO的开发环境
    Docker 运行mysql8.0挂载数据卷
    一张图解释Docker
    NetCore基于Consul+Ocelot+Docker+Jenkin搭建微服务架构
    Jenkins+Docker+Git实现自动化部署
    使用阿里云容器镜像服务示例
    Go重新学习记录
    软谋在线教育诚招php,java,.net,设计师讲师(可兼职)
  • 原文地址:https://www.cnblogs.com/topshark/p/10251951.html
Copyright © 2011-2022 走看看