Java中的常用类的选择题总结练习

常用类的选择题练习

  • Java选择题练习:(牛客网)
  • Java选择题练习:regex类(正则表达式)(牛客网)
  • Java选择题练习:String类(牛客网)
  • Java选择题练习:Object类(牛客网)
  • Java选择题练习:基本数据类型(牛客网)

Java选择题练习:(牛客网)

1.Java Application 源程序的主类是指包含有( )方法的类。

正确答案: A
A、public static void main方法
B、toString方法
C、init方法
D、actionPerfromed方法

解析:java程序种类:
1.内嵌于web文件中,有浏览器观看的applet
2.可独立运行的application
3.服务器端的servlets

2.如果类的方法的返回值为空,该方法的返回类型应是:( )

正确答案: A
A、void
B、null
C、abstract
D、default

解析:没有返回值一般都是说构造函数,void叫返回值为空。

Java选择题练习:regex类(正则表达式)(牛客网)

1.正则表达式语法中 \d 匹配的是?()

正确答案: A
A、数字
B、非数字
C、字母
D、空白字符

解析:
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\w 匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。

Java选择题练习:String类(牛客网)

1.以下代码的输出的正确结果是()

public class Test {
     
    public static void main(String args[]) {
     
        String s = "祝你考出好成绩!";
        System.out.println(s.length());
    }
}

正确答案: D
A、24
B、16
C、15
D、8

解析:length得到的是字符,不是字节。如果是s.getBytes(“GBK”).length就是求的字节数。如果是GBK,一个中文字符占2字节,如果是UTF-8则是3个字节

2.不考虑反射,String类型变量所指向内存空间中的内容是不能被改变的 。 ( )

正确答案: A
A、正确
B、错误

解析:指向的内容在常量池中不可以变,但是可以改变string的指向。

3.以下程序执行后,错误的结果是()

public class Test {
     
    private String name = "abc";
    public static void main(String[] args) {
     
        Test test = new Test();
        Test testB = new Test();
        String result = test.equals(testB) + ",";
        result += test.name.equals(testB.name) + ",";
        result += test.name == testB.name;
        System.out.println(result);
    }
}

正确答案: A B C
A、true,true,true
B、true,false,false
C、false,true,false

D、false,true,true

解析:
1.test.equals(testB),两个对象用equals()函数比较,如果两个对象是一个则返回true,如果不是String的实例并且是两个不同的对象则返回false,当两个对象是String的实例时,则比较字符串内容是否相同.相同则返回true, 不相同返回false.
2、应该注意到作为成员变量的 name 是使用字面量直接赋值的 ( privateString name =“abc”; ) 这种赋值的执行过程是先看字符串常量池中有没有 value 数组为 [‘a’, ‘b’, ‘c’] 的 String 对象,如果没有的话就创建一个,有的话就拿到他的一个引用。
3、name 没有被static 修饰,所以每实例化一个对象都会执行 private String name =“abc”; 第一次执行的时候发现字符串常量池没有 value 数组为 [‘a’, ‘b’, ‘c’]的String 对象,所以创建一个,拿到他的一个引用,但是第二次的时候发现已经有了这样的对象了, 所以只是拿到这个拿到这个对象的一个引用而已。
4、执行 test.name == testB.name; 的时候比较的是两个name指向的内存是不是同一个(比较引用本身没有意义),所以 test.name == testB.name; 的结果是true。
Java中的常用类的选择题总结练习_第1张图片

4.String s = new String(“xyz”);创建了几个StringObject?

正确答案: A
A、两个或一个都有可能
B、两个
C、一个
D、三个

解析:如果在常量池中已经存在“xyz”,那么不会继续创建,只创建一个new String(“xyz”)的对象。如果常量池中没有,则会创建两个对象,一个是对象的值“xyz”,一个是new String(“xyz”)的对象。

  • 1.String对象的两种创建方式:
    第一种方式: String str1 = “aaa”; 是在常量池中获取对象(“aaa” 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象),
    第二种方式: String str2 = new String(“aaa”) ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 “aaa” 字符串对象)。
    System.out.println(str1==str2);//false
  • 2.String类型的常量池比较特殊。它的主要使用方法有两种:
    直接使用双引号声明出来的String对象会直接存储在常量池中。
    如果不是用双引号声明的String对象,可以使用 String 提供的 intern 方法。 String.intern() 是一个 Native 方法,它的作用是: 如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用; 如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。
    String s1 = new String(“AAA”);
    String s2 = s1.intern();
    String s3 = “AAA”;
    System.out.println(s2);//AAA
    System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象,
    System.out.println(s2 == s3);//true, s2,s3指向常量池中的”AAA“

5.执行如下代码段后,变量s1引用的字符串值是( )。

String s1 = "ABCD";
String s2 = "1234";
System.out.println(s1 + s2);

正确答案: A
A、ABCD
B、1234
C、ABCD1234
D、1234ABCD

Java选择题练习:Object类(牛客网)

1.以下 _____ 不是 Object 类的方法()

正确答案: D
A、clone()
B、finalize()
C、toString()
D、hasNext()

解析:Java中的常用类的选择题总结练习_第2张图片

Java选择题练习:基本数据类型(牛客网)

1.What is the result of compiling and executing the following fragment of code:

Boolean flag = false;
if (flag = true)
{
     
    System.out.println("true");
}
else
{
     
    System.out.println("false");
}

正确答案: C
A、The code fails to compile at the “if” statement.
B、An exception is thrown at run-time at the “if” statement.
C、The text“true” is displayed.
D、The text“false”is displayed.
E、Nothing is displayed.

解析:
A、The code fails to compile at the “if” statement.代码在if语句处编译失败。
B、An exception is thrown at run-time at the “if” statement.运行时在if语句处抛出异常。
C、The text“true” is displayed.显示“true”。
D、The text“false”is displayed.显示“false”。
Nothing is displayed.什么都不显示
    Boolean修饰的变量为包装类型初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此 赋值后flag值为true,输出文本true。 如果使用==比较,则输出文本false。if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。

2.设有下面两个赋值语句:

a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();

下述说法正确的是()

正确答案: D
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。

解析:
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D

你可能感兴趣的:(选择题,java,正则表达式)