java课后测试题

这是一份关于Java编程的基础测试题,涵盖了Linux命令、数据类型、运算符、类图、异常处理、文件操作、内部类、接口、日期处理、单元测试、加密算法等多个Java编程核心知识点。题目包括选择题和判断题,旨在检验考生对Java基础知识的理解和掌握程度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、实验楼Linux中可以通过(ABC)查看用户登录情况。
A .who
B .who am i
C .who mom likes
D .who are you
2、在 Linux 里面如何知道自己属于哪些用户组呢?(A)
A .使用 groups 命令
B .addgroups
C .查看 /etc/group 文件
D .lsgroups
3、表达式15&240的值为(B)
A .FF
B .0
C .255
D .1
4、下列关于课本P29示例程序的说法,正确的是(ABCD)
A .如果注释掉第一行“import java.util.;”,则“System.out.println(Arrays. toString(a));”和“Scanner scanner = new Scanner(System.in);”两句会报错。
B .折半查找时,必须保证数组是有序的。
C .该程序所示的排序方法为冒泡排序法。
D .count>N/2说明查找结束,没有找到该数字。
5、关于课本P23示例程序的说法,正确的是(BCD)
A .程序等待用户在命令行输入数据时,是在Scanner reader = new Scanner(System.in);一句发生阻塞。
B .在命令行运行该程序时,使用ctrl+c可以结束阻塞。
C .输入0.00也可以结束程序的执行,输出sum的值。
D .当用户输入0.3并回车后,程序再次阻塞,该阻塞是由于执行了x = reader.nextDouble();一句。
6、下列错误的初始化语句是(ABD)
A .char str[]=“hello”;
B .char str[100]=“hello”;
C .char str[]={‘h’,‘e’,‘l’,‘l’,‘o’};
D .char str[]={‘hello’};
7、定义float x = 0.5f; double y = 0.5,则x==y结果为false。(B)
A .true
B .false
8、下列关于创建对象的说法,错误的是(CD)
A .创建一个对象包括对象的声明和为对象分配变量两个步骤。
B .使用Student stu;声明对象变量后,stu的内存中还没有任何数据。
C .引用型成员变量的默认初值为0。
D .对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。
E .String a=“ab”+“cd”;创建了3个对象。
9、下列说法正确的是(AD)
A .println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。
B .如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。
C .可以使用import java.
;将类库中的所有的类都包含进去。
D .java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
10、下列说法正确的是(C)
A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
B .double类型的成员变量的默认值为0,局部变量没有默认值。
C .对成员变量的赋值操作只能放在方法中。
D .面向对象语言中的“类”相当于C语言中的“函数”。
11、下列关于UML类图的说法,正确的是(AC)
A .抽象类和抽象方法一般用斜体表示。
B .一般情况下,方法的属性用+表示private,用-表示public。
C .在UML 里,一个类的属性能显示它的名字,类型,初始化值。
D .继承用一个带三角的直线表示,由父类指向子类。
12、将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?(B)
interface Com {
int M = 200;
int f();
}class ImpCom implements Com {
【代码】
}
A .public int f(){return 100+M;}
B .int f(){return 100;}
C .public double f(){return 2.6;}
D .public abstract int f();
13、下列关于abstract关键字的说法,正确的是(BCDF)
A .可以使用static修饰abstract方法。
B .非abstract类中不可以有abstract方法。
C .不能使用new创建abstract类的对象。
D .不允许使用final和abstract同时修饰一个方法.
E .可以使用public abstract void eat(){};来声明抽象方法eat()。
F .抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。
14、下列关于Override的说法,正确的是(ABC)
A .子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。
B .除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。
C .子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。
D .重写方法可以操作被子类隐藏的成员变量和方法。
15、以下是File类构造方法的是(ABCD)
A .File(File parent, String child)
B .File(String pathname)
C .File(String parent, String child)
D .File(URI uri)
16、下列关于内部类的说法,正确的是(ABD)
A .其他类不可以用某个类的内部类声明对象。
B .内部类字节码文件的名字格式是“外嵌类名$内部类名”。
C .内部类的类体可以声明类变量和类方法。
D .内部类在成员位置上,因此可以被private修饰。
17、以下关于File类常用方法的叙述,错误的是(B)
A .public long length():获取文件长度
B .public int hashCode():计算此文件的哈希码
C .public String toString():返回此抽象路径名的路径名字符串
D .public Boolean isFile():判断一个文件是否是普通文件,而不是目录
18、下列哪个叙述是正确的?(C)
A .创建File对象可能发生异常。
B .BufferedRead流可以指向FileInputStream流。
C .BufferedWrite流可以指向FileWrite流。
D .RandomAccessFile流一旦指向文件,就会刷新该文件。
19、InputStream类继承自FileInputStream,可以以字节为单位读取文件。(B)
A .true
B .false
20、下列关于正则表达式的说法,正确的是(ABDE)
A .\ba\w*\b匹配以字母a开头的单词
B .\d+匹配1个或更多连续的数字。
C .\b\w{6}\b 匹配6个及以上字符的单词。
D .[0-9]代表的含意与\d就是完全一致的:一位数字
E .\S+匹配不包含空白符的字符串。
F .(\d{1,3}.){3}\d{1,3}用来匹配 IP地址。
21、下列说法正确的是(D)
A .Java 8之前,对日期进行运算,使用DateFormat类。
B .需要人类能理解的时间,建议使用Date类的toString()。
C .现在国际上通用的标准时间是GMT。
D .new Date(System.currentTimeMillis())等价于new Date()
22、下列哪个表达式是正确的(无编译错误)?(C)
A .int m =Float.parseFloat(“567”);
B .int m =Short.parseShort(“567”)
C .byte m =Integer.parseInt(“2”);
D .float m =Float.parseDouble(“2.9”)
23、下列关于TreeSet泛型类常用方法的介绍,正确的是(BCD)
A .public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。
B .public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。
C .public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。
D .public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
24、对于如下代码,下列哪个叙述是正确的?(D)
public class E {
public static void main (String args[]) {
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
System.out.println(s3);
}
}
A .程序出现编译错误。
B .无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
C .无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。
D .无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。
25、已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?(BE)
A .for(Object o : list)
B .for(Object o : getCollection())
C .for(Object o : list.iterator())
D .for(lterator i ; list.iterator() ; i.hasNext() )
E .for(lterator i=list.iterator(); i.hasNext(); )
26、What is the output of the following code?(下面代码的运行结果是?)(F)
LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth()

  • " “+ date.getDayOfMonth());
    A .2018 APRIL 4
    B .2018 APRIL 30
    C .2018 MAY 10
    D .Another date
    E .The code does not compile.
    F .A runtime exception is thrown.
    27、接口RowSet继承了接口__,可以调用RowSet中的方法__来填充其数据区。(C)
    ①Statement ②ResultSet ③update ④populate
    A .①③
    B .①④
    C .②③
    D .②④
    28、假定源文件名为HelloWorld.java.代码如下,(B)
    public class HelloWorld {
    public static void main(String[] args) {
    String hw = “Hello World”;
    System.out.printf(”%s\n", hw);
    System.out.printf("%s\n", 1/0);
    }
    }
    A .将会产生编译时错误,javac Hello.java无法执行
    B .将会产生运行时错误,java Hello无法执行
    C .将会产生逻辑错误,1/0 不符合数学逻辑
    D .程序可以正常编译运行
    29、有关Java密码学算法,下面说法正确的是(CDF)
    A .对称密码和非对称密码的秘钥都是使用KeyGenerator产生
    B .cp.init(Cipher.ENCRYPT_MODE, k);指定秘钥K进行解密,使用的是对称算法
    C .byte text2[]=cp.doFinal(text1);完成对数据的加密或者解密
    D .Java中,RSA算法的加密,解密都是调用modPow()实现的。
    E .MessageDigest m=MessageDigest.getInstance(“MD5”);
    //…
    m.update(x.getBytes(“UTF8” ));完成x的摘要计算
    F .MessageDigest m=MessageDigest.getInstance(“MD5”);
    //…
    byte s[ ]=m.digest( );完成摘要计算
    30、实验中客户端对传给服务器的后缀表达式进行对称加密使用的加密算法的选用,下面说法正确的是(BCDF)
    A .选用公钥算法比如RSA算法更安全
    B .应该选用对称算法如DES,AES等,可以用Cipher cp=Cipher.getInstance(…)指定算法类型
    C .非对称算法常用来进行密钥分发,签名/验签
    D .Java中,对称算法进行加密还是解密由Cipher 的init()方法指定
    E .Java中,对称算法进行加密还是解密由Cipher 的nal()方法指定
    F .传输中要使用混合密码系统
    31、结对编程时,协作使用到的git命令与个人不同的有(D)
    A .git add
    B .git clone
    C .git commit
    D .git pull
    E .git push
    32、Activity的前台的生命周期是(C)。
    A .从onCreate(Bundle)开始到onDestroy()结束
    B .从onStart()开始到onStop()结束
    C .从onResume()开始到onPause()结束
    D .从onStart()开始到onRestart()结束
    33、Activity 的生命周期存在于(A)
    A .从onCreate(Bundle)开始到onDestroy()结束
    B .从onStart()开始到onStop()结束
    C .从onResume()开始到onPause()结束
    D .从onStart()开始到onRestart()结束
    34、有关TDD(Test Driven Devlopment, 测试驱动开发),下面说法正确的是(AE)
    A .实验中实现Java单元测试的工具是JUnit
    B .TDD的目标是"Keep the bar green, to Keep the code clean"
    C .实验中assertEquals(“不及格”, MyUtil.percentage2fivegrade(55));是对边界情况进行测试
    D .实验中assertEquals(“不及格”, MyUtil.percentage2fivegrade(55));是对异常情况进行测试
    E .实验中assertEquals(“不及格”, MyUtil.percentage2fivegrade(55));是对正常情况进行测试
    35、针对以下代码的的调试,下面说法正确的是(AEG)
    1 package ljp;
    2 public class HelloJDB {
    3 public static void main(String[] args) {
    4 int i = 5;
    5 int j = 6;
    6 int sum = add(i, j);
    7 System.out.println(sum);
    8
    9 sum = 0;
    10 for(i=0; i< 100; i++)
    11 sum += i;12
    13 System.out.println(sum);
    14 }
    15
    16 public static int add(int augend, int addend){
    17 int sum = augend + addend;
    18 return sum;
    19 }
    20}
    A .IDEA中可以设置条件断点 i50,这样循环执行到i等于50时停下
    B .IDEA中可以设置条件断点 i=50,这样循环执行到i等于50时停下
    C .JDB中可以设置条件断点 i=50,这样循环执行到i等于50时停下
    D .JDB中可以设置条件断点 i
    50,这样循环执行到i等于50时停下
    E .IDEA中和JDB中都可以单步运行到i等于50
    F .JDB中要想调试程序,用javac编译时一定带上-d参数
    G .JDB中要想调试程序,用javac编译时一定带上-g参数
    36、如果有以下的程序代码:
    Int x=100;
    Int y=100;Integer wx=x;Integer wy=y;
    System.out.println(xy);
    System.out.println(wx
    wy);
    在JDK5以上的环境编译与执行,则显示的结果是(A)
    A .true、true
    B .true、false
    C .false、true
    D .编译失败
    37、如果有以下的程序代码:
    int x = 200;int y = 200;
    Integer wx = x;
    Integer wy = y;
    System.out.println(x == wx);
    System.out.println(y == wy);
    在 JDK5 以上的环境编译与执行,请问显示结果为何?(A)
    A .true、true
    B .true、false
    C .false、true
    D .编译失败
    38、如果有以下的程序代码:
    int[] arr1 = {1, 2, 3};int[] arr2 = new int[arr1.length]
    arr2 = arr1;for(int value : arr2) {
    System.out.printf("%d", value);
    }
    以下描述何者正确?(A)
    A .执行时显示123
    B .执行时显示12300
    C .执行时出现 ArrayIndexOutOfBoundException 错误
    D .编译失败
    39、如果有以下程序代码:
    String[] strs=new String[5];
    以下描述正确的是(C)
    A .产生5个String 实例
    B .产生1个String 实例
    C .产生0个String 实例
    D .编译失败
    40、如果有以下程序片段:
    public class Some{
    public int x;
    public Some(int x){
    x=x;
    }
    }
    以下描述正确的是(BC)
    A .new Some(10)创建对象后,对象成员x值为10
    B .new Some(10)创建对象后,对象成员x值为0
    C .Some s = new Some(10)后,可使用s.x取得
    D .编译失败
    41、如果有以下程序片段:
    public class Some{
    private final int x;
    public some(){}
    public Some(int x){
    this.x=x;
    }
    }
    以下描述正确的是(D)
    A .new Some(10)创建对象后,对象成员x值为10
    B .new Some(10)创建对象后,对象成员x值为0
    C .Some s = new Some(10)后,可使用s.x取值
    D .编译失败
    42、如果有以下程序片段:
    class Some{
    void doService(){
    System.out.println(“some service”);
    }
    }
    class Other extends Some{
    @Override
    void doService(){
    System.out.println(“others srrvice”);
    }
    }
    public class Main{
    public static void main(String[] args){
    Other other = new Other();
    other.doService();
    }
    }
    以下描述正确的是(C)
    A .编译失败
    B .显示some service
    C .显示other service
    D .先显示some service后显示other service
    43、如果有以下程序片段:
    class Some{
    String ToString(){
    return “Some instance”;
    }
    }
    public class Main{
    public static void main(String[] args){
    Some some = new Some();
    System.out.println(some);
    }
    }
    以下描述正确的是(B)
    A .显示Some Instance
    B .显示Some@XXXX,XXXX为十六进制的数字
    C .发生ClassCastException
    D .编译失败
    44、如果有以下程序片段:
    public class Main {public static void main(String[] args) {try {int number = Integer.parseInt(args[0]);
    System.out.println(number++);
    } catch(NumberFormatException ex) {
    System.out.println(“必须输入数字”);
    }
    }
    }
    执行时若没有指定命令行自变量,以下描述何者正确?(C)
    A .编译错误
    B .显示"必须输入数字"
    C .显示 ArrayIndexOutOfBoundException 堆栈追踪
    D .不显示任何讯息
    45、如果有以下程序片段:
    public class Main {public static void main(String[] args) {
    Object[] objs = {“Java”, “7”};
    Integer number = (Integer) objs[1];
    System.out.println(number);
    }
    }
    根据图 8.2,以下描述何者正确?(C)
    A .编译错误
    B .显示 7
    C .显示 ClassCastException 堆栈追踪
    D .不显示任何讯息
    46、FileInputStream的建构式使用throws宣告了FileNotFoundException,如果有以下程序片段:
    public class FileUtil {public static String readFile(String name) {
    FileInputStream input = null;39try {
    input = new FileInputStream(name);

    } catch(_____________________ ex) {

    }
    }
    }
    请问空格处填入以下哪些选项可以通过编译?(ACD)
    A .Throwable
    B .Error
    C .IOException
    D .FileNotFoundException
    47、如果有以下程序片段:
    import java.util.;public class Main {public static void main(String[] args) {foreach(new HashSet());foreach(new ArrayList());
    }private static void foreach(___________ elements) {for(Object o : elements) {

    }
    }
    }
    空白部份指定哪些型态可以通过编译?(CD)
    A .HashSet
    B .ArrayList
    C .Collection
    D .Iterable
    48、如果有以下程序片段:
    import java.util.
    ;class Student {
    String number;
    String name;int score;
    Student(String number, String name, int score) {this.number = number;this.name = name;this.score = score;
    }
    }public class Main {public static void main(String[] args) {
    Set students = new TreeSet<>();
    students.add(new Student(“B1234”, “Justin”, 90));
    students.add(new Student(“B5678”, “Monica”, 100));
    …foreach(students);
    }private static void foreach(Collection students) {for(Student student : students) {
    System.out.println(student.score);
    }
    }
    }
    以下描述何者正确?(D)
    A .依 score 从小至大显示结果
    B .依 toString()自然排序由小至大显示结果
    C .依 hashCode()自然排序由小至大显示结果
    D .抛出 ClassCastException
    49、输入输出串流的父类别是哪两个?(AC)
    A .InputStream
    B .Reader
    C .OutputStream
    D .Writer
    50、以下哪两个类别为 Reader、Writer 提供缓冲区作用?(BD)
    A .BufferedInputStream
    B .BufferedReader
    C .BufferedOutputStream
    D .BufferedWriter
    51、以下哪两个类别分别拥有 readObject()、writeObject()方法?(BC)
    A .BufferedInputStream
    B .ObjectInputStream
    C .ObjectOutputStream
    D .BufferedOutputStream
    52、如果有以下程序片段:
    BufferedReader reader = new BufferedReader(new ________________);
    空白部份指定哪些型态可以通过编译?(BC)
    A .FileInputStream(“Account.data”)
    B .FileReader(“Main.java”)
    C .InputStreamReader(new FileInputStream(“Main.java”))
    D .ObjectReader(“Account.data”)
    53、哪些 JDBC 驱动程序可以有跨平台的特性?(CD)
    A .TYPE 1
    B .TYPE 2
    C .TYPE 3
    D .TYPE 4
    54、JDBC 相关接口或类别,是放在哪个套件之下加以管理?(C)
    A .java.lang
    B .javax.sql
    C .java.sql
    D .java.util
    55、使用 JDBC 时,通常会需要处理哪个受检异常( Checked Exception)?(B)
    A .RuntimeException
    B .SQLException
    C .DBException
    D .DataException
    56、关于 Connection 的描述,何者正确?(AB)
    A .可以从 DriverManager 上取得 Connection
    B .可以从 DataSource 上取得 Connection
    C .在方法结束之后 Connection 会自动关闭
    D .Connection 是线程安全( Thread-safe)
    57、取得 Connection 之后,如何取得 Statement 对象?(A)
    A .conn.createStatement()
    B .conn.buildStatement()
    C .conn.getStatement()
    D .conn.createSQLStatement()
    58、使用 Statement 的 executeQuery()方法,会传回哪个型态?(C)
    A .int
    B .boolean
    C .ResultSet
    D .Table
    59、如果有以下的程序代码:
    System.out.println(10/3);
    以下描述正确的是(A)
    A .执行时显示3
    B .执行时显示3.3333…
    C .执行时出现错误
    D .编译失败
    60、如果有以下的程序代码:
    float radius = 88.2;double area = 2 * 3.14 * radius * radius;
    System.out.println(area);
    以下描述何者正确?(D)
    A .执行时显示 48853.6272
    B .执行时显示 48853
    C .执行时出现错误
    D .编译失败
    1、域名解析服务器(ARP)负责将域名转化为IP地址,从而与主机连接。(B)
    A .true
    B .false
    2、下列关于URL类的说法,正确的是(BD)
    A .URL 类自身可根据 RFC2396 中定义的转义机制编码或解码URL 部分。
    B .URL类继承自java.lang.Object,实现了Serializable接口。
    C .public String getHost()返回主机的MAC地址。
    D .构造方法URL(String protocol, String host, int port, String file, URLStreamHandler handler) 可根据指定的 protocol、host、port 号、file 和 handler 创建 URL 对象。
    3、一个URL对象通常包含最基本的三部分信息:协议、地址和端口号。(B)
    A .true
    B .false
    4、下列关于InetAddress类的说法,正确的是(ACD)
    A .InetAddress的子类有Inet4Address, Inet6Address。
    B .getByName(String host)和getHostName()的返回值均为InetAddress类型。
    C .IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。
    D .public String toString()将此 IP 地址转换为 String。返回的字符串具有以下形式:主机名/字面值 IP 地址。
    5、下列说法错误的是(C)
    A .IP地址标识Internet上的计算机,端口号标识服务器上的进程。
    B .端口号为1-65535之间的整数。
    C .安全Shell(SSH)服务占用端口21,万维网(WWW)服务的超文本传输协议(HTTP)占用端口80。
    D .0-1023端口被预先定义的服务通信占用。
    6、下列说法正确的是(AB)
    A .客户端使用Socket类建立负责连接到服务器的套接字对象。
    B .Socket(InetAddress address, int port, InetAddress localAddr, int localPort)创建一个套接字并将其连接到指定远程地址上的指定远程端口。
    C .getInetAddress()的返回值是String类型的套接字连接地址。
    D .public int getPort()返回此套接字绑定到的本地端口。
    7、ServerSocket的构造方法public ServerSocket()创建非绑定服务器套接字。如果打开套接字时发生IO错误,则抛出IOException异常。(A)
    A .true
    B .false
    8、下列关于ServerSocket类的说法正确的是(BD)
    A .accept()方法在连接传入之前一直阻塞。返回值为boolean类型。
    B .public String toString()方法作为 String 返回此套接字的实现地址和实现端口。
    C .setSoTimeout(int timeout) 通过指定超时值启用/禁用 SO_TIMEOUT,以秒为单位。
    D .public boolean isBound()返回 ServerSocket 的绑定状态。如果将 ServerSocket 成功地绑定到一个地址,则返回 true。
    9、下列关于TCP和UDP的说法,正确的是(ABD)
    A .TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
    B .通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
    C .UDP和TCP都属于网络层协议。
    D .UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
    10、如果DatagramSocket构造函数不能正确地创建一个DatagramSocket,会抛出以下哪个异常?(C)
    A .IOException
    B .UnknownHostException
    C .SocketException
    D .MalformedURLException
    11、以下哪个类的对象中包含Internet地址?(C)
    A .Applet
    B .Datagramsocket
    C .InetAddress
    D .AppletContext
    12、以下能够支持TCP/IP连接的类是(CD)
    A .InetAddress
    B .Packet
    C .Socket
    D .ServerSocket
    13、构成World Wide Web基础的关键协议是http协议。(A)
    A .true
    B .false
    14、Java的大部分网络类都包含在Java .applet包中。(B)
    A .true
    B .false
    15、为了获取远程主机的文件等内容,当创建URL对象后,需要使用哪个方法获取信息?(C)
    A .getPort
    B .getHost
    C .openStream()
    D .openConnection()
    16、使用流式套接字编程时,为了向对方发送数据,则需要使用哪个方法?(C)
    A .getInetAddress()
    B .getLocalPort()
    C .getOutputStream()
    D .getInputStream()
    17、使用UDP套接字通信时,常用哪个类把要发送的信息打包?(D)
    A .String
    B .DatagramSocket
    C .MulticastSocket
    D .DatagramPacket
    18、已经建立的URL对象不能被改变。(A)
    A .true
    B .false
    19、当找不到客户的服务器地址时会抛出(B)
    A .IOException
    B .UnknownHostException
    C .SocketException
    D .MalformedURLException
    20、使用UDP套接字通信时,哪个方法用于接收数据?(B)
    A .read()
    B .receive()
    C .accept()
    D .listen()
    1、下面代码中共有(C)个线程?
    public class ThreadTest {
    public static void main(String args[]){
    MyThread myThread =new MyThread();
    Thread t1=new Thread(myThread);
    Thread t2=new Thread(myThread);
    t1.start();
    t2.start();
    }
    }class MyThread extends Thread {

    }
    A .1
    B .2
    C .3
    D .4
    2、Java中,可以继承(B)类定义线程
    A .Runnable
    B .Thread
    C .Future
    D .Executor
    3、以下(AB)方法会使线程进入阻塞状态?
    A .Thread.sleep()
    B .wait()
    C .notify()
    D .interrupt()
    4、如果有以下代码段:
    Thread thread = new Thread(new ______________() {
    public void run() {…}
    });
    空白部分指定哪些类型可以通过编译?(AB)
    A .Runnable
    B .Thread
    C .Future
    D .Executor
    5、调用线程的interrupt()方法 ,会抛出(CD)异常对象?
    A .IllegalStateException
    B .RuntimeException
    C .InterruptedException
    D .SecurityException
    6、下列哪个叙述是错误的?(A)
    A .线程新建后,不调用start方法也有机会获得CPU资源
    B .如果两个线程需要调用同一个同步方法,那么一个线程调用该同步方法时,另一个线程必须等待。
    C .目标对象中的run方法可能不启动多次
    D .默认情况下,所有线程的优先级都是5级。
    7、对于下列程序,哪个叙述是正确的?(A)
    public class E {
    public static void main(String args[]) {
    Target target =new Target();
    Thread thread =new Thread(target);
    thread.start();
    }
    }class Target implements Runnable{
    public void run(){
    System.out.println(“ok”);
    }
    }
    A .JVM认为这个应用程序共有两个线程。
    B .JVM认为这个应用程序只有一个主线程。
    C .JVM认为这个应用程序只有一个thread线程。
    D .thread的优先级是10级。
    8、对于下列程序,哪个叙述是正确的?(B)
    A .JVM认为这个应用程序共有两个线程。
    B .JVM认为这个应用程序只有一个主线程。
    C .JVM认为这个应用程序只有一个thread线程。
    D .程序有编译错误,无法运行。
    9、进程和程序的一个本质区别是(A)
    A .前者为动态的,后者为静态的。
    B .前者存储在内存,后者存储在外存。
    C .前者在一个文件中,后者在多个文件中。
    D .前者分时使用CPU,后者独占CPU。
    10、进程的基本状态有:新建、运行、阻塞、死亡。(A)
    A .true
    B .false
    11、下列说法正确的是(ABD)
    A .Java语言的一大特性就是内置对多线程的支持。
    B .main方法返回时,JVM就会结束Java应用程序。
    C .Java应用程序中第一个线程结束后,JVM结束Java应用程序。
    D .Java语言使用Thread类及其子类对象来表示线程。
    12、下列关于线程状态与生命周期的说法,错误的是(BC)
    A .在线程没有结束run()方法之前,不要让线程再调用start()方法,否则将发生IllegalThreadStateException异常。
    B .run()方法负责通知JVM有新的线程等候切换。
    C .执行sleep()结束后,该线程进入运行状态,得到CPU的使用权。
    D .进入阻塞状态时,线程不能进入排队队列。
    13、JVM的线程调度器的任务是使高优先级的线程能始终运行,一旦时间片有空闲,则使具有同等优先级的线程以轮流的方式顺序使用时间片。(A)
    A .true
    B .false
    14、下列关于setPriority方法的说法,错误的是(C)
    A .该方法更改线程的优先级。
    B .该方法传入的参数为,要为线程设定的优先级。
    C .该方法首先调用线程的 checkAccess 方法,且不带任何参数。这可能抛出IllegalArgumentException异常。
    D .如果优先级不在MIN_PRIORITY到MAX_PRIORITY范围内,则抛出IllegalArgumentException异常。
    15、当线程使用CPU资源的时间到时后,即使线程没有完成自己的全部操作,Java调度器也会中断当前线程的执行,把CPU的使用权切换给下一个排队等待的线程。(A)
    A .true
    B .false
    16、下列关于守护线程的说法,正确的是(ABCD)
    A .thread.setDaemon(true)必须在thread.start()之前设置,否则会报IllegalThreadStateException异常。
    B .如果用户线程已经全部退出运行,只剩下守护线程存在,那么虚拟机也就退出了。
    C .将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。
    D .守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。
    17、不可以在非同步方法中使用wait()、notify()、notifyAll()。(A)
    A .true
    B .false
    18、下列关于线程常用的方法的叙述,错误的是(CD)
    A .让run方法执行完毕,线程就变成死亡状态。
    B .如果线程在休眠时被打断,JVM会抛出InterruptedException异常。
    C .一个已运行的线程没有进入死亡状态时,如果再给线程分配实体,则先前的实体会被垃圾收集器收集掉。
    D .当线程进入死亡状态后,线程就不能够调用isAlive()方法了。
    19、线程在新建和死亡状态,调用isAlive()方法返回的值是false。(A)
    A .true
    B .false
    20、以下代码中有两个线程:(B)
    public class E {
    public static void main(String args[]) {
    Target target =new Target();
    Thread thread =new Thread(target);
    target.run();
    for(int i= 0;i<=10;i++) {
    System.out.println(“yes”);
    try{ Thread.sleep(1000);
    }
    catch(InterruptedException exp){}
    }
    }
    }class Target implements Runnable{
    public void run() {
    for(int i= 0;i<=10;i++) {
    System.out.println(“ok”);
    try{
    Thread.sleep(1000);
    }
    catch(InterruptedException exp){}
    }
    }
    }
    A .true
    B .false
    1、命令“CREATE DATABASE <数据库名字>”用来创建一个数据库。(A)
    A .true
    B .false
    2、以下不属于驱动的四种类型的是(C)
    A .JDBC-ODBC Bridge Driver
    B .Native API Driver
    C .MySQL JDBC Driver
    D .JDBC-Net Driver
    E .Native Protocal Driver
    3、提供Java存取数据库能力的包是(A)
    A .java.sql
    B .java.awt
    C .java.lang
    D .java.swing
    4、JDBC是允许用户在不同数据库之间做选择的一个抽象层。JDBC允许开发者用JAVA写数据库应用程序,而不需要关心底层特定数据库的细节。(A)
    A .true
    B .false
    5、下列属于常用数据库的是(ACDE)
    A .Access
    B .XAMMP
    C .MySQL
    D .Oracle
    E .SQL Server
    6、下列属于数据操作语言的是(AB)
    A .insert
    B .update
    C .create
    D .select
    7、下列属于Java语言中的接口的是(BCD)
    A .DriverManager
    B .Collection
    C .ResultSet
    D .Statement
    8、下列说法错误的是(B)
    A .Statement的executeQuery()方法会返回一个结果集
    B .Statement的executeUpdate()方法会返回是否更新成功的boolean值
    C .使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值
    D .ResultSet中的next()方法会使结果集中的下一行成为当前行
    9、下面的选项不是关系数据库基本特征的是(A)
    A .不同的列应有不同的数据类型
    B .不同的列应有不同的列名
    C .与行的次序无关
    D .与列的次序无关
    10、接口Statement中定义的execute方法的返回类型是(C)
    A .ResultSet
    B .int
    C .boolean
    D .double
    11、下列关于JDBC说法正确的是(AC)
    A .JDBC提供了访问数据库的通用API,不同的数据库厂商根据各自数据库的特点提供了对JDBC的实现
    B .JDBC只提供了访问Oracle数据库的API
    C .Oracle公司提供了对JDBC的API的实现
    D .JDBC只提供了对Java程序员的API
    12、下列操作数据库时遇到的异常情况说法正确的是(BD)
    A .java.sql.SQLException: Unknown column ‘sid’ in ‘field list’ (SQL语句表名错误)
    B .java.sql.SQLException:结果集已耗尽 (结果集用尽或未调用next)
    C .java.sql.SQLException: Data too long for column ‘id’ at row 1(列名定义过长)
    D .java.sql.SQLException: No suitable driver(URL拼写错误)
    13、JDBC编程的异常类型分为(AC)
    A .SQLException
    B .SQLError
    C .SQLWarning
    D .SQLFatal
    E .SQLTruncation
    14、DataSource是__类型,可以调用DataSource的方法__获得数据库连接。(D)
    ①Delegate ②Factory ③Connect ④getConnection
    A .①③
    B .①④
    C .②③
    D .②④
    15、接口RowSet继承了接口
    ,可以调用RowSet中的方法__来填充其数据区。(C)
    ①Statement ②ResultSet ③update ④populate
    A .①③
    B .①④
    C .②③
    D .②④
    16、以下哪些是定义在ResultSet中用于Cursor定位的方法:(ABCEF)
    A .next()
    B .beforeFirst()
    C .afterLast()
    D .isBeforeFirst()
    E .absolute(int)
    F .relative(int)
    17、executeUpdate返回的类型是int,代表的含义是受影响的记录(A)
    A .true
    B .false
    18、可以通过关闭MySQL数据库服务器所占用的命令行窗口来关闭MySQL数据库。(B)
    A .true
    B .false
    19、如果MySQL服务器和MySQL管理工具驻留在同一台计算机上,主机名可以是localhost或127.0.0.1。(A)
    A .true
    B .false
    20、典型的JDBC程序按照“注册JDBC Driver->获得与数据库的物理连接->执行SQL命令->创建不同类型的Statement->如果有结果集,处理结果集->释放资源”的顺序编写。(B)
    A .true
    B .false
    1、现有以下代码,哪些选项插入到第5行可以通过编译?(BDF)
    1.import java.util.;
    2.
    3.Class FindStuff {
    4.public static void main (String[]args) {
    5.//insert code here
    6.c.put (“X”, 123);
    7. }
    8.}
    A .Map c= new SortedMap();
    B .HashMap c= new HashMap();
    C .HashMap c= new Hashtable();
    D .SortedMap c= new TreeMap();
    E .ArrayList c= new ArrayList();
    F .Map c = new LinkedHashMap();
    2、已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?(BE)
    A .for(Object o : list)
    B .for(Object o : getCollection())
    C .for(Object o : list.iterator())
    D .for(lterator i ; list.iterator() ; i.hasNext() )
    E .for(lterator i=list.iterator(); i.hasNext(); )
    3、现有以下代码,哪个选项插入将输出“abc”?(D)
    class ForInTest {static List list=new ArrayList();public static void main (String [] args) {list. add(“a”); list. add(“b”);list. add( “c”);//insert code here
    System.out.print (o);
    }
    }
    A .for (Iterator o : list.iterator(); o.hasNext (); )
    B .for (Iterator o : list)
    C .for (Object o : list.iterator())
    D .for (Object o : list)
    4、以下代码的输出结果为(C)
    public class Demo{public static void main (String[] args){
    List al=new ArrayList();
    a1.add(“l”);
    a1.add(“2”);
    a1.add(“2”);
    a1.add(“3”);
    System.out.println (al);
    }
    }
    A .[1,2,3]
    B .[1,2,3,3]
    C .[1,2,2,3]
    D .[2,1,3,2]
    5、创建一个只能存放String的泛型ArrayList的语句是哪项?(B)
    A .ArrayList al=new ArrayList();
    B .ArrayList al=new ArrayList()
    C .ArrayList al=new ArrayList();
    D .ArrayList al =new List();
    6、下列哪些项是泛型的优点?(AC)
    A .不用向下强制类型转换
    B .代码容易编写
    C .类型安全
    D .运行速度快
    7、List接口的特点是?(C)
    A .不允许重复元素,元素无顺序
    B .不允许重复元素,元素有顺序
    C .允许重复元素,元素有顺序
    D .允许重复元素,元素无顺序
    8、表示键值对概念的接口是?(D)
    A .Set
    B .List
    C .Collection
    D .Map
    9、实现了Set接口的类是哪项?(C)
    A .ArrayList
    B .HashTable
    C .HashSet
    D .Collection
    10、集合API 中Set接口的特点是?(D)
    A .不允许重复元素,元素有顺序
    B .允许重复元素,元素无顺序
    C .允许重复元素,元素有顺序
    D .不允许重复元素,元素无顺序
    11、下列关于泛型类的子类的说法,正确的个数为(B)
    ①LinkedList泛型类创建一个链表结构的对象。
    ②Stack泛型类创建一个堆栈对象。
    ③HashMap泛型类创建散列映射。
    ④DelayQueue泛型类创建一个无界阻塞队列。
    ⑤TreeSet泛型类创建树映射。
    ⑥Vector创建可增长的对象数组。
    A .6
    B .5
    C .4
    D .3
    12、下列关于LinkedList泛型类常用方法的介绍,正确的是(ABCD)
    A .public E getLast()返回此列表的最后一个元素。如果此列表为空,则抛出NoSuchElementException。
    B .public void addFirst(E e) 将指定元素插入此列表的开头。e为要添加的元素。
    C .public boolean add(E e)等效于addLast(E)。
    D .public boolean remove(Object o) 覆盖类 AbstractCollection 中的 remove。
    13、下列关于HashMap泛型类常用方法的介绍,正确的是(AD)
    A .public boolean isEmpty()如果此映射不包含键-值映射关系,则返回 true。
    B .public V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则抛出异常。
    C .public V put(K key, V value) 在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则以先定义的值为准。
    D .public Object clone()返回此 HashMap 实例的浅表副本:并不复制键和值本身。
    14、下列关于TreeSet泛型类常用方法的介绍,正确的是(BCD)
    A .public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。
    B .public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。
    C .public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。
    D .public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
    15、下列关于TreeMap泛型类常用方法的介绍,错误的是(C)
    A .public K firstKey()返回此映射中当前第一个(最低)键。
    B .public void clear()从此映射中移除所有映射关系。在此调用返回之后,映射将为空。
    C .public Object clone()返回此 TreeMap 实例的浅表副本。(键和值本身也被复制。)
    D .public Collection values()返回此映射包含的值的 Collection 视图。该 collection 的迭代器将按相关键的升序返回这些值。
    16、Stack泛型类中的public int search(Object o)返回对象在堆栈中的位置,以 1 为基数。如果对象 o 是堆栈中的一个项,此方法返回距堆栈顶部最近的出现位置到堆栈顶部的距离;返回值 -1 表示此对象不在堆栈中。(A)
    A .true
    B .false
    17、链表调用get(int index)方法的速度比顺序存储结构的集合调用get(int index)方法的速度快。(B)
    A .true
    B .false
    18、ArrayList使用顺序结构,LinkedList使用链式结构。(A)
    A .true
    B .false
    19、如果链表中存放的对象不是字符串数据,那么创建对象的类必须实现Comparable接口。(A)
    A .true
    B .false
    20、下列关于String类的说法,正确的是(AB)
    A .String类为final类,不能拥有子类。
    B .String常量对象是用双引号括起的字符序列。
    C .在String s = new String(“Hello!”);中,对象变量s中存放的是实体。
    D .System.out.println(s);可以输出String对象的引用。
    21、下列值不为true的表达式是(C)
    A .“john” = = “john”
    B .“john”.equals(“john”)
    C .“john” = “john”
    D .“john”.equals(new String(“john”))
    22、下列属于引用数据类型的是(AC)
    A .String
    B .char
    C .用户自定义的Student类类型
    D .int
    23、实体相同但引用不同的两个字符串,使用“==”比较结果为false。(A)
    A .true
    B .false
    24、使用构造方法String(byte[] bytes, int offset, int length, Charset charset),通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。其中,offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。(A)
    A .true
    B .false
    25、下列说法错误的是(C)
    A .两个常量进行并置运算,得到的仍是常量。
    B .并置时只要有一个是变量,Java就会在动态区存放所得到的信String对象的实体和引用。
    C .P177的程序运行后,testOne.equals(testTwo)的结果为false。
    D.testTwo.equals(you+hi)的结果为true。
    26、String类中的length()方法用来获取一个String对象的字符序列的长度,单位为字节。(B)
    A .true
    B .false
    27、观察下列代码,输出结果全部正确的一组是(E)
    String s1 = “Let’sJava”;
    String s2 = new String(“Let’sJava”);
    String s3 = "Let’s.
    ";
    String s4 = “Let’s”;out.println(s1 == s2);//①out.println(s1.equals(s2));//②out.println(s1.matches(s3));//③out.println(s1.contains(s3));//④out.println(s1.contains(s4));//⑤
    A .①false;②true;③false;④true;⑤true
    B .①true;②true;③true;④true;⑤false;
    C .①false;②false;③false;④false;⑤true
    D .①false;②true;③true;④false;⑤false
    E .①false;②true;③true;④false;⑤true
    F .①false;②true;③false;④true;⑤true
    28、public boolean startsWith(String prefix)方法,如果参数是空字符串,则抛出异常。(B)
    A .true
    B .false
    29、下列关于public int compareTo(String anotherString)的说法,正确的是(ACDE)
    A .按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode值。
    B .如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个正整数。
    C .如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:this.charAt(k)-anotherString.charAt(k)
    D .如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差
    E .compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
    30、对于String s1 = “c:\book\ java programmer.doc”,lastIndexOf("\")的值为7.(B)
    A .true
    B .false
    31、下列关于substring方法的说法,正确的是(ACD)
    A .public String substring(int beginIndex)返回的子字符串从指定索引处的字符开始,直到此字符串末尾。
    B .public String substring(int beginIndex, int endIndex) 子字符串从指定的 beginIndex 处开始,直到索引 endIndex处的字符。
    C .“emptiness”.substring(9)返回值为""。
    D .“smiles”.substring(1, 5)返回值为"mile"。
    E .若beginIndex 大于 endIndex,则substring(int beginIndex, int endIndex)返回-1。
    32、下列说法错误的是(D)
    A .java.util包中的Data类重写了toString()方法。
    B .Arrays和Point都继承了toString方法。
    C .调用x.toString()方法的地方可以用""+x代替。
    D .定义int[] Numbers = {1, 2, 3}; String s1 = “”+Numbers;,则System.out.println(s1);调用了toString方法,可以将数组输出。
    33、下列关于字符串与字符数组、字节数组的说法,正确的是(ACD)
    A .getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin)方法的返回值为空。
    B .srcEnd是字符串中要复制的最后一个字符的索引。
    C .srcBegin 大于 srcEnd时,会抛出IndexOutOfBoundsException异常。
    D .要复制到 dst 子数组的字符从索引 dstBegin 处开始,并结束于索引dstbegin + (srcEnd-srcBegin) - 1
    34、下列关于正则表达式的说法,正确的是(ABDE)
    A .\ba\w*\b匹配以字母a开头的单词
    B .\d+匹配1个或更多连续的数字。
    C .\b\w{6}\b 匹配6个及以上字符的单词。
    D .[0-9]代表的含意与\d就是完全一致的:一位数字
    E .\S+匹配不包含空白符的字符串。
    F .(\d{1,3}.){3}\d{1,3}用来匹配 IP地址。
    35、下列通过测试的断言语句有几个?(B)
    ①assertEquals(true, “123”.matches("\d+"));
    ②assertEquals(true, “3.5”.matches("\d.\d"));
    ③assertEquals(true, “C:\Windows”.matches(“C:\Windows”));
    ④assertEquals(true, “hello hello”.matches("\b(?\w+)\b\s+\k\b"));
    ⑤assertEquals(“rplcmnt”,“replacement”.replaceAll("[aeiou]",""));
    ⑥assertEquals(true, ““Hello””.matches("(["’])[^"’]
    \1"));
    ⑦assertEquals("##",“xfooxxxxxxfoo”.replaceAll(".?foo","#"));
    ⑧assertEquals(“Let’s meet at [TIME].”,“Let’s meet at 12:38.”.replaceAll("((1|0?)[0-9]|2[0-3])?[0-5][0-9])","[TIME]"));
    A .7个
    B .6个
    C .4个
    D .3个
    36、下列说法正确的是(BCD)
    A .hasMoreTokens()方法返回语言符号的计数个数。
    B .StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。
    C .字符串分析器的计数变量的初始值等于字符串中的单词数目。
    D .与split()方法不同的是,StringTokenizer对象不使用正则表达式作为分割标记。
    37、以下两段程序的输出结果是完全一样的。(A)
    //【代码一】
    StringTokenizer st = new StringTokenizer(“this is a test”);
    while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
    }
    //【代码二】
    String[] result = “this is a test”.split("\s");
    for (int x=0; x<result.length; x++)
    System.out.println(result[x]);
    A .true
    B .false
    38、已知:
    StringBuffer a = new StringBuffer(“StringBuffer”); StringBuffer b = new StringBuffer(“StringBufferStringBuffer”); StringBuffer c = new StringBuffer(“StringBufferStringBufferStringBuffer”);
    则下列测试可以通过的个数为(C)
    ① assertEquals(‘S’,a.charAt(0));
    ② assertEquals(‘g’,a.charAt(6));
    ③ assertEquals(12,a.capacity());
    ④ assertEquals(52,c.capacity());
    ⑤ assertEquals(24,b.length());
    ⑥ assertEquals(5,a.indexOf(“gBu”));
    A .2
    B .3
    C .4
    D .5
    39、下列关于Date类和Calendar类的说法,错误的是(C)
    A .可以使用System类的静态方法public long currentTimeMillis()获取系统当前时间。
    B .Date类的public boolean equals(Object obj)方法覆盖了类 Object 中的 equals。
    C .若比较两个Calendar的时间日期先后,可以使用after()方法。after()返回值为布尔类型,其等价于compareTo(when)<0。
    D .使用Calendar类的静态方法getInstance()可以初始化一个日历对象。
    40、下列说法正确的是(D)
    A .Java 8之前,对日期进行运算,使用DateFormat类。
    B .需要人类能理解的时间,建议使用Date类的toString()。
    C .现在国际上通用的标准时间是GMT。
    D .new Date(System.currentTimeMillis())等价于new Date()
    41、Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?(F)
    LocalDate date = LocalDate.now();LocalTime time = LocalTime.now();LocalDateTime dateTime = LocalDateTime.now();ZoneId zoneId = ZoneId.systemDefault();ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);long epochSeconds = 0;Instant instant = ( );
    A .Instant.now()
    B .Instant.ofEpochSecond(epochSeconds)
    C .date.toInstant()
    D .dateTime.toInstant()
    E .time.toInstant()
    F .zonedDateTime.toInstant()
    42、What is the output of the following code?(下面代码的运行结果是?)(B)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 30);date.plusDays(2);date.plusYears(3);
    System.out.println(date.getYear() + " "
    +date.getMonth() + " “+ date.getDayOfMonth());
    A .2018 APRIL 2
    B .2018 APRIL 30
    C .2018 MAY 2
    D .2021 APRIL 2
    E .2021 APRIL 30
    F .2021 MAY 2
    G .A runtime exception is thrown.
    43、What is the output of the following code?(下面代码的运行结果是?)(F)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
    System.out.println(date.getYear() + " " + date.getMonth()
    +” "+ date.getDayOfMonth());
    A .2018 APRIL 4
    B .2018 APRIL 30
    C .2018 MAY 10
    D .Another date
    E .The code does not compile.
    F .A runtime exception is thrown.
    44、下列关于Math类的说法,正确的是(ABD)
    A .public static double cbrt(double a) 返回 double 值的立方根。如果参数为 NaN,那么结果为 NaN。
    B .public static double cos(double a) 返回角的三角余弦。如果参数为 NaN 或无穷大,那么结果为 NaN。
    C .public static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。如果参数为 NaN 或无穷大,那么结果为 NaN。
    D .public static double log10(double a) 返回 double 值的底数为 10 的对数。如果参数为正 0 或负 0,那么结果为负无穷大。
    45、调用 new Random(seed) 等效于:Random rnd = new Random(); rnd.setSeed(seed);(A)
    A .true
    B .false
    46、下列哪个叙述是正确的?(A)
    A .String 类是final 类,不可以有子类。
    B .String 类在java.util包中。
    C .“abc”“abc"的值是false .
    D .“abc”.equals(“Abc”)的值是true
    47、下列哪个表达式是正确的(无编译错误)?(C)
    A .int m =Float.parseFloat(“567”);
    B .int m =Short.parseShort(“567”)
    C .byte m =Integer.parseInt(“2”);
    D .float m =Float.parseDouble(“2.9”)
    48、对于如下代码,下列哪个叙述是正确的?(B)
    public class E{
    public static void main(String[] args){
    String strOne=“bird”;
    String strTwo=strOne;
    strOne=“fly”;
    System.out.println(strTwo);
    }
    }
    A .程序编译出现错误。
    B .程序标注的【代码】的输出结果是bird。
    C .程序标注的【代码】的输出结果是fly。
    D .程序标注的【代码】的输出结果是null。
    49、对于如下代码,下列哪个叙述是正确的?(D)
    public class E {
    public static void main (String args[]) {
    String s1 = args[1];
    String s2 = args[2];
    String s3 = args[3];
    System.out.println(s3);
    }
    }
    A .程序出现编译错误。
    B .无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
    C .无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。
    D .无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。
    50、下列哪个叙述是错误的?(C)
    A .“9dog”.matches(”\ddog")的值是true。
    B .“12hello567”.replaceAll("[123456789]+","@")返回的字符串是@hello@。
    C .new Date(1000)对象含有的时间是公元后1000小时的时间
    D ."\hello\n"是正确的字符串常量。
    1、下列关于内部类的说法,正确的是(ABD)
    A .其他类不可以用某个类的内部类声明对象。
    B .内部类字节码文件的名字格式是“外嵌类名$内部类名”。
    C .内部类的类体可以声明类变量和类方法。
    D .内部类在成员位置上,因此可以被private修饰。
    2、外部类访问内部类,必须建立内部类对象。(A)
    A .true
    B .false
    3、下面的类无法通过编译,第三行出现错误提示,因为类不可以被static修饰。(B)
    class Outer{
    int x = 3;
    static class Inner{
    void function() {
    System.out.println(x);
    }
    }
    }
    A .true
    B .false
    4、下列关于匿名类的叙述,错误的是(C)
    A .定义匿名内部类的前提是,内部类必须继承一个类或实现接口。
    B .匿名类的类体不可以声明static成员变量和static方法。
    C .不可以直接使用匿名类创建一个对象。
    D .匿名内部类的格式为:new 父类或接口(){定义子类的内容}。
    5、如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。(A)
    A .true
    B .false
    6、下列关于异常的说法,错误的是(AD)
    A .Java使用throws抛出一个异常,使用throw声明方法可能抛出异常。
    B .执行System.out.println(3/0);语句会报ArithmeticException异常。
    C .Java中的错误是以对象的方式呈现为java.lang.Throwable的各种子类实例。
    D .方法parseInt()在执行过程中可能抛出DataFormatException异常。
    7、如果超出JVM运行能力之外,如“byte[] arr=new byte[10241024600];”会抛出java.lang.OutOfMemoryError异常。(B)
    A .true
    B .false
    8、下列关于异常处理的说法,正确的是(ACD)
    A .一旦try部分抛出异常对象,那么try部分将立刻结束执行,转向执行相应的catch部分。
    B .catch代码块定义一定会执行的代码,它通常用于关闭资源。
    C .try-catch语句可以由几个catch组成,分别处理发生的异常。
    D .catch括号中列出的异常不得有继承关系,否则会发生编译错误。
    9、下列程序的运行结果为(B)
    public class FinallyDemo {public static void main(String[] args) {
    System.out.print(test(true));
    }static int test(boolean flag) {
    try {
    if (flag) {
    return 1;
    }
    } finally {
    System.out.print(“finally…”);
    }
    return 0;
    }
    }
    A .1finally…
    B .finally…1
    C .1finally…0
    D .1
    10、下列关于断言的说法,错误的是(D)
    A .断言语句通常用于调试代码。
    B .如果使用assert booleanException:messageException;形式的断言语句,当booleanException的值是false时,程序从断言语句处停止执行,并输出messageException的值。
    C .在调试程序时,可以使用-ea启动断言语句。
    D .String n = new AssertDemo().getName(“Magical”);
    assertThat(n, startsWith(“Ma”));无法通过测试,而assertThat(n, startsWith(‘M’));可以通过测试。
    11、下列说法正确的是(ABD)
    A .内部类的外嵌类的成员变量在内部类中仍然有效。
    B .内部类中的方法也可以调用外嵌类中的方法。
    C .内部类的类体中可以声明类变量和类方法。
    D .匿名类一定是内部类。
    12、下列无法通过编译的是(C)
    class OutClass {int m = 1;static float x; //Aclass InnerClass {
    int m =12; //B
    static float n =20.89f; //C
    InnerClass(){
    }
    void f() {
    m = 100;
    }
    }void cry() {
    InnerClass tom = new InnerClass(); //D
    }
    }
    A .A
    B .B
    C .C
    D .D
    13、下列说法正确的是(C)
    A .和接口有关的匿名类可以是抽象类。
    B .和类有关的匿名类还可以额外地实现某个指定的接口。
    C .和类有关的匿名类一定是该类的一个非抽象子类。
    D .和接口有关的匿名类的类体中可以有static成员变量。
    14、调用线程的interrupt()方法 ,会抛出哪些异常对象?(ADE)
    A .ClosedByInterruptException
    B .IllegalStateException
    C .RuntimeException
    D .InterruptedException
    E .SecurityException
    15、下面哪行代码插入注释处,会导致输出“oops”?(AC)
    class Calc {
    public static void main(String [] args) {
    try {
    int x = Integer.parseInt (“42a”) ;}
    catch (IllegalArgumentException e)
    {
    System.out.print (“oops”);
    }
    }
    }
    A .catch (IllegalArgumentException e)
    B .catch (IllegalStateException c)
    C .catch (NumberFormatException n)
    D .catch (ClassCastException c)
    16、下列关于自定义异常类的描述,正确的是(C)
    A .自定义异常必须继承Exception。
    B .自定义异常可以继承自Error。
    C .自定义异常可以更加明确定位异常出错的位置和给出详细出错信息。
    D .程序中已经提供了丰富的异常类,使用自定义异常没有意义。
    17、已知String s = null;下列代码会抛出NullPointerException异常的有(AC)
    A .if( (s!=null) & (s.length()>0) )
    B .if( (s!=null) && (s.length()>0) )
    C .if( (s
    null) | (s.length()0) )
    D .if( (s
    null) || (s.length()==0) )
    18、下列程序的运行结果是(BCD)
    class Calc {
    public static void func() throws Exception{
    try {
    throw new Exception();
    }
    finally {
    System.out.println(“B”);
    }
    }
    public static void main(String[] args) {
    try {
    func();
    System.out.println(“A”);
    }catch(Exception e) {
    System.out.println(“C”);
    }
    System.out.println(“D”);
    }
    A .A
    B .B
    C .C
    D .D
    19、下列不能使用在throw语句中的是(C)
    A .Error
    B .RuntimeException
    C .Object
    D .Throwable
    E .Exception
    20、在java中所有的异常类都继承自java.lang.Throwable类,它有两个直接子类,一个是Error类,另一个是Exception类。(A)
    A .true
    B .false
    21、下列说法正确的是(ACD)
    A .输入流的指向称为它的源。
    B .输出流的指向称为它的源。
    C .源和目的地也可以是键盘、内存或显示器窗口。
    D .java.io包提供大量流类。
    22、File类的对象主要用来获取文件本身的一些信息,如对文件的读写操作、获取文件所在目录、文件长度或文件读写权限等。(B)
    A .true
    B .false
    23、以下是File类构造方法的是(ABCD)
    A .File(File parent, String child)
    B .File(String pathname)
    C .File(String parent, String child)
    D .File(URI uri)
    24、以下关于File类常用方法的叙述,错误的是(B)
    A .public long length():获取文件长度
    B .public int hashCode():计算此文件的哈希码
    C .public String toString():返回此抽象路径名的路径名字符串
    D .public Boolean isFile():判断一个文件是否是普通文件,而不是目录
    25、可以使用public String[] list(FilenameFilter obj)或public File [] listFiles(FilenameFilter obj),列出目录下指定类型的文件。(A)
    A .true
    B .false
    26、下列说法错误的是(B)
    A .某文件对象调用方法delete()可以删除当前文件。
    B .某文件对象调用方法create()可以创建一个特定名称的文件。
    C .Runtime类位于java.lang包
    D .ec可以调用exec(String command)方法打开本地机器上的可执行文件或一个操作。
    27、InputStream类继承自FileInputStream,可以以字节为单位读取文件。(B)
    A .true
    B .false
    28、以下说法正确的是(A)
    A .调用FileInputStream构造方法,试图打开一个只读文件进行写入,会抛出FileNotFoundException异常。
    B .为了捕获错误,必须在try-catch语句之前创建输入流,在try-catch语句之中检测并处理这个异常。
    C .调用public int read()方法,若已达到文件末尾,则返回0。
    D .调用public int read()方法,若没有输出可用,则此方法自动返回0。
    29、下列关于public int read(byte[] b, int off, int len)方法的叙述,正确的是(ABC)
    A .此方法覆盖了InputStream类中的read方法。
    B .此方法从该输入流中将最多len个字节的数据读入一个byte数组中。
    C .此方法返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回-1。
    D .如果b为null,则会抛出IndexOutOfBoundsException异常。
    30、只要不关闭FileInputStream流,每次调用read方法就顺序地读取源中其余的内容,直到源的末尾或流被关闭。(A)
    A .true
    B .false
    31、下列说法正确的是(ABD)
    A .可以使用FileOutputStream类写入文件。
    B .FileOutputStream类的构造方法有FileOutputStream(File file)、FileOutputStream(String name)、FileOutputStream(File file, boolean append)等。
    C .对于FileOutputStream(String name)方法,参数name指定的文件称为输出流的源。
    D .如果输出流指向的文件是已存在的文件,输出流将刷新该文件,使得文件的长度为0。
    32、FileOutputStream输出流开通一个到达文件的通道,如果输出流指向的文件不存在,将抛出NullPointerException异常。(B)
    A .true
    B .false
    33、以下说法错误的是(B)
    A .为了更好地操作Unicode字符,可以使用字符输入/输出流。
    B .一个汉字在文件中占4个字节。
    C .调用flush()方法可以将当前缓冲区的内容写入目的地。
    D .FileReader和FileWriter分别是Reader和Writer的子类。
    34、正则表达式abc? 匹配(AB)
    A .ab
    B .abc
    C .abcc
    D .abccc
    35、下列关于BufferedReader和BufferedWriter的说法,错误的是(B)
    A .通过调用BufferedReader对象的readLine()方法,可以读取文本行。
    B .BufferedReader有一个向文件写入回行符的方法:newLine()。
    C .当BufferedWriter流调用flush()刷新缓存或调用close()方法关闭时,即使缓存没有溢出,,也会将缓存的内容写入目的地。
    D .可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写到目的地。
    36、RandomAccessFile类创建的流的指向既可以作为流的源,也可以作为流的目的地。(A)
    A .true
    B .false
    37、下列说法正确的是(ABD)
    A .字节数组输入流调用public int read();可以顺序从源中读出一个字节。
    B .调用public int read(byte[] b, int off, int len);可以顺序地从源中读出参数len指定的字节数。
    C .构造方法ByteArrayOutputStream(int size)构造的字节数组输出流指向一个默认为32字节的缓冲区。
    D .字符数组流CharArrayReader和CharArrayWriter分别使用字符数组作为流的源和目标。
    38、下列关于数据流的说法,正确的是(ABCD)
    A .数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型
    B .使用DataInputStream和DataOutputStream类创建的对象来读取数值时,不必再关心这个数值应当是多少个字节。
    C .DataInputStream类的public final int read(byte[] b)方法,如果b为 null,则抛出NullPointerException。
    D .readUTF()的作用,是从输入流中读取UTF-8编码的数据,并以String字符串的形式返回。
    39、ObjectOutputStream能够把对象写入到输出流中,而不需要每次写入一个字节。可以使用 writeObject 和 readObject 方法为类重写默认的反序列化。(A)
    A .true
    B .false
    40、下列关于Scanner类的说法,正确的是(BCD)
    A .使用Scanner和正则表达式来解析文件的特点是以空间换取时间。
    B .解析时如果单词不是数字型单词,调用nextInt()或nextDouble()方法将发生InputMismatchException异常。
    C .创建Scanner对象,指向要解析的文件,可以使用useDelimiter方法指定正则表达式作为分割标记。
    D .正则表达式\b((?!abc)\w)+\b可以用来匹配不包含abc的单词。
    41、下列哪个叙述是正确的?(C)
    A .创建File对象可能发生异常。
    B .BufferedRead流可以指向FileInputStream流。
    C .BufferedWrite流可以指向FileWrite流。
    D .RandomAccessFile流一旦指向文件,就会刷新该文件。
    42、为了向文件hello.txt尾加数据,下列哪个是正确创建指向hello.txt的流?(B)
    A .try { OutputStream out = new FileOutputStream (“hello.txt”);
    }
    catch(IOException e){}
    B .try { OutputStream out = new FileOutputStream (“hello.txt”,true);
    }
    catch(IOException e){}
    C .try { OutputStream out = new FileOutputStream (“hello.txt”,false);
    }
    catch(IOException e){}
    D .try { OutputStream out = new OutputStream (“hello.txt”,true);
    }
    catch(IOException e){}
    43、下列哪一个不是java.io类的子类?(E)
    A .BufferedReader
    B .BufferedWriter
    C .FileReader
    D .FileWriter
    E .PrintReader
    F .PrintWriter
    44、下列选项中,可以通过编译的是(AD)
    InputStream is = new BufferedInputStream(new FileInputStream(“zoo.txt”));
    InputStream wrapper = new _____;
    A .BufferedInputStream
    B .FileInputStream
    C .BufferedWriter
    D .ObjectInputStream
    E .ObjectOutputStream
    F .BufferedReader
    45、What is the result of executing the following code? (BDE)
    String line;
    Console c = System.console();
    Writer w = c.writer();if ((line = c.readLine()) != null)
    w.append(line);
    w.flush();
    A .The code runs without error but prints nothing.
    B .The code prints what was entered by the user.
    C .An ArrayIndexOutOfBoundsException might be thrown.
    D .A NullPointerException might be thrown.
    E .An IOException might be thrown.
    F .The code does not compile.
    46、Assuming zoo-data.txt is a multiline text file, what is true of the following method?(A)
    private void echo() throws IOException {
    try (FileReader fileReader = new FileReader(“zoo-data.txt”);
    BufferedReader bufferedReader = new BufferedReader(fileReader)) {
    System.out.println(bufferedReader.readLine());
    }
    }
    A .It prints the first line of the file to the console.
    B .It prints the entire contents of the file.
    C .The code does not compile because the reader is not closed.
    D .The code does compile, but the reader is not closed.
    E .The code does not compile for another reason.
    47、What are some reasons to use a character stream, such as Reader/Writer, over a byte stream, such as InputStream/OutputStream? (Choose all that apply.)(AC)
    A .More convenient code syntax when working with String data
    B .Improved performance
    C .Automatic character encoding
    D .Built-in serialization and deserialization
    E .Character streams are high-level streams
    F .Multi-threading support
    1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B)
    A .true
    B .false
    2、下列说法正确的是(ABCD)
    A .使用C语言编写代码指令时,不需要考虑机器指令的细节。
    B .源文件是按照编程语言的语法编写具有一定扩展名的文本文件。
    C .面向对象语言编写的程序需要消耗更多的内存,需要更快的CPU来保证其运行速度。
    D .代码块是程序执行时产生的一种行为,但是面向过程语言却没有为这种行为指定“主体”,即对象。
    3、下列关于面向对象编程的特点的叙述,错误的是(B)
    A .面向对象编程的三个特点为:封装、继承、多态。
    B .只能对一个类中的方法进行封装,不能对其属性进行封装。
    C .子类继承父类,可以添加子类独有的数据和数据上的操作。
    D .在 OOP中,继承的概念很好的支持了代码的重用性(reusability)。
    4、类体的内容由下列哪几部分组成(AB)
    A .声明变量
    B .定义方法
    C .导入相关的包
    D .定义其他所需的类
    5、对于P53代码,如果定义了一个Lader类的对象,则其具有computerArea()和setHeight()两个行为。(A)
    A .true
    B .false
    6、下列说法正确的是(ACD)
    A .成员变量的数据类型可以是Java中的任何一种数据类型。
    B .成员变量和局部变量的有效范围为整个类。
    C .方法返回的数据的类型可以是Java中的任何一种数据类型。
    D .方法体内可以对成员变量和方法体中声明的局部变量进行操作。
    7、如果局部变量与成员变量的名字相同,则局部变量被隐藏。(B)
    A .true
    B .false
    8、下列说法正确的是(C)
    A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
    B .double类型的成员变量的默认值为0,局部变量没有默认值。
    C .对成员变量的赋值操作只能放在方法中。
    D .面向对象语言中的“类”相当于C语言中的“函数”。
    9、下列关于UML类图的说法,正确的是(AC)
    A .抽象类和抽象方法一般用斜体表示。
    B .一般情况下,方法的属性用+表示private,用-表示public。
    C .在UML 里,一个类的属性能显示它的名字,类型,初始化值。
    D .继承用一个带三角的直线表示,由父类指向子类。
    10、下列说法错误的是(C)
    A .类是面向对象语言中最重要的一种数据类型,可以用类来声明变量。
    B .在用类声明对象后,还必须创建对象。
    C .用类声明的变量称为该类的一个全局变量。
    D .类是创建对象的模板,没有类就没有对象。
    11、下列关于构造方法的叙述,正确的是(ABDE)
    A .当程序用类创建对象时,需使用它的构造方法。
    B .类中的构造方法的名字必须与该类的名字完全相同,而且没有类型。
    C .如果类中定义一个或多个构造方法,则默认为无参数的构造方法。
    D .带有返回值的方法一定不是构造方法。
    E .允许在一个类中编写若干个构造方法,但参数必须不同。
    12、下列关于创建对象的说法,错误的是(CD)
    A .创建一个对象包括对象的声明和为对象分配变量两个步骤。
    B .使用Student stu;声明对象变量后,stu的内存中还没有任何数据。
    C .引用型成员变量的默认初值为0。
    D .对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。
    E .String a=“ab”+“cd”;创建了3个对象。
    13、下列关于对象的叙述,正确的是(ABD)
    A .通过使用运算符“.”,对象可以实现对自己的变量的访问和方法的调用。
    B .当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量。
    C .使用空对象会抛出UnknownTypeException异常。
    D .对于同一个类的两个对象obj1和obj2,若进行obj1=obj2操作,则obj1和obj2拥有同一个实体。
    E .即使一个类声明的两个对象具有相同的引用,其实体也不一定完全相同。
    14、关于类的叙述,正确的是(BDE)
    A .Java程序以类中的方法为“基本单位”。
    B .每个源文件都是一个独立的编译单位。
    C .与类所在源文件名称相同的类,称为主类。
    D .使用“javac Example4_5.java”编译P67的Example4_5.java时,自动编译了Rect.java和Lader.java。
    E .可以使用“javac .java”编译P67该目录下的所有Java文件。
    15、下列关于参数传值的说法,错误的是(B)
    A .对象调用方法时,参数变量必须有具体的值。
    B .方法如果改变参数的值,向参数传值的变量的值也会改变。
    C .可以向int型变量传递一个short值。
    D .如果改变参数变量所引用的实体,原变量的实体会发生同样的变化。
    E .对于可变参数,如一个参数代表x,那么x.length等于x所代表的参数的个数。
    16、下列关于P72例子8的叙述,错误的是(A)
    A .圆对象委托圆锥对象调用其方法setBottom(),然后圆锥对象再计算出自身的体积。
    B .执行Example4_8.java的“circular.setBottom(cicle);”一句,将circle对象的引用传递给circular对象的bottom。
    C .执行Example4_8.java的“circle.setRadius(50)”一句,bottom的实体和circle的实体发生一样的变化。
    D .执行Example4_8.java的“circle = new Circle(1000)”一句,circle对象有了不同于bottom的实体。
    17、下列关于实例变量和类变量的说法,错误的是(B)
    A .在声明成员变量时,用关键字static修饰的称作类变量,否则称为实例变量。
    B .分配给不同对象的类变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。
    C .创建类的对象时,类变量不再重新分配内存。
    D .类变量不仅可以通过某个对象访问,也可以直接通过类名访问。
    18、下列关于实例方法和类方法的叙述,正确的是(ABCD)
    A .类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。
    B .当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。
    C .实例方法不能通过类名调用,只能由对象来调用。
    D .不必创建对象就可以用类名直接调用static方法。
    19、以下对重载描述错误的是(B)
    A .方法重载只能发生在一个类的内部。
    B .构造方法不能重载。
    C .重载要求方法名相同,参数列表不同。
    D .方法的返回值类型不是区分方法重载的条件。
    20、下列说法正确的是(ABC)
    A .在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。
    B .构造方法中使用this时,可以省略this,即将this.method()直接写成method()。
    C .this不能出现在类方法中。
    D .当实例成员变量的名字和局部变量的名字相同时,可以省略成员变量前的“this.”和static变量前的“类名.”。
    21、在E:\中使用“javac Mycode\week3\HelloWorld.java”编译HelloWorld.java,编译通过后在E:\目录中产生字节码文件。(B)
    A .true
    B .false
    22、下列说法正确的是(AD)
    A .println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。
    B .如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。
    C .可以使用import java.
    ;将类库中的所有的类都包含进去。
    D .java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
    23、访问修饰符作用范围由大到小排序正确的是(D)
    A .private-protected-public
    B .public-private-protected
    C .private-public-protected
    D .public-protected-private
    24、下列关于访问权限的叙述,正确的是(ABD)
    A .类方法总是可以操作该类中的类变量,与访问限制符无关。
    B .当在其他类中创建一个该类的对象时,该对象不能访问自己的私有变量。
    C .public、protected、private均可以用来修饰类。
    D .如果源文件使用import语句引入另一个包的类,并创建了一个该类的对象,那么该类的这个对象不能访问自己的友好变量和友好方法。
    25、下列代码的执行结果均为true。(A)
    int i = 128;
    Integer i2 = 128;
    Integer i3 = new Integer(128);
    System.out.println(i == i2);
    System.out.println(i == i3);
    A .true
    B .false
    26、下列说法正确的是(B)
    A .Java应用程序由若干个类所构成,这些类必须在一个源文件中。
    B .Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
    C .Java源文件必须含有主类。
    D .Java源文件如果含有主类,主类必须是public类。
    27、下列说法正确的是(D)
    A .成员变量的名字不可以和局部变量的相同。
    B .方法的参数的名字可以和方法中声明的局部变量的名字相同。
    C .成员变量没有默认值。
    D .局部变量没有默认值。
    28、关于下列Hello类的叙述,正确的是(D)
    class Hello {
    Hello(int m){
    }
    int Hello() {
    return 20;
    }
    hello() {
    }
    }
    A .Hello类有2个构造方法。
    B .Hello类的int Hello()方法是错误的方法。
    C .Hello类没有构造方法。
    D .Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。
    29、关于下列Dog类的叙述,错误的是(D)
    class Dog {
    Dog(int m){
    }
    Dog(double m){
    }
    int Dog(int m){
    return 23;
    }
    void Dog(double m){
    }
    }
    A .Dog(int m)与Dog(double m)互为重载的构造方法。
    B .int Dog(int m)与void Dog(double m)互为重载的非构造方法。
    C .Dog类只有两个构造方法,而且没有无参数的构造方法。
    D .Dog类有3个构造方法。
    30、下列A类中【代码1】~【代码5】哪些是错误的?(AD)
    class Tom {private int x = 120;
    protected int y = 20;
    int z = 11;
    private void f() {
    x = 200;
    System.out.println(x);
    }
    void g() {
    x = 200;
    System.out.println(x);
    }
    }public class A {
    public static void main(String args[]) {
    Tom tom = new Tom();
    tom.x = 22; //【代码1】
    tom.y = 33; //【代码2】
    tom.z = 55; //【代码3】
    tom.f(); //【代码4】
    tom.g(); //【代码5】
    }
    }
    A .【代码1】
    B .【代码2】
    C .【代码3】
    D .【代码4】
    E .【代码5】
    31、下列E类的类体中哪些【代码】是错误的。(D)
    class E {
    int x; //【代码1】
    long y = x; //【代码2】
    public void f(int n) {
    int m; //【代码3】
    int t = n+m; //【代码4】
    }
    }
    A .【代码1】
    B .【代码2】
    C .【代码3】
    D .【代码4】
    1、if关键字后面的小括号内,表达式的值可以为10。(B)
    A .true
    B .false
    2、表达式0xaa | 0x55的值为(C)
    A .FF
    B .0
    C .255
    D .1
    3、表达式15&250的值为(B)
    A .FF
    B .0
    C .255
    D .1
    4、表达式10 ^ 12的值为(A)
    A .0x06
    B .120
    C .9
    D .14
    5、表达式-2 >> 1的值为(D)
    A .2^31 – 1
    B .2^15 – 1
    C .1
    D .-1
    6、表达式-2 >>> 1的值为(A)
    A .2^31 – 1
    B .2^15 – 1
    C .1
    D .-1
    7、下列与3
    4的值相等的是(D)
    A .3/2
    B .3<2
    C .32^2
    D .3<<2
    8、观察以下方法的定义,则该方法的返回类型为(A)
    ReturnType method(byte x, double y) {
    return (short)x/y
    2;
    }
    A .double
    B .short
    C .int
    D .byte
    9、在命令行输入“java demo 3”,下列程序的运行结果为(C)
    public class unsigned {public static void main(String args[]) {int i = Integer.parseInt(args[0]);switch(i) {case 1:System.out.println(“Spring”);break;case 2:System.out.println(“Summer”);break;case 3:System.out.println(“Autumn”);break;case 4:System.out.println(“Winter”);break;
    }
    }
    }
    A .Spring
    B .Summer
    C .Autumn
    D .Winter
    10、switch(i)中,i的类型可以为byte、char、short、int或long。(B)
    A .true
    B .false
    11、下列程序的运行结果为:(D)
    int i=10; do {
    i/=2;
    } while( i-- > 1 );
    System.out.println(i);
    A .1
    B .5
    C .2
    D .-1
    12、下列程序的运行结果为:(A)
    int i=10; do {
    i/=2;
    } while( --i > 1 );
    System.out.println(i);
    A .1
    B .5
    C .2
    D .-1
    13、下列程序的运行结果为:(B)
    int b[][] = {{1},{2,2},{2,2,2}};int sum = 0;for(int i = 0; i < b.length; i++) {
    for(int j = 0; j < b[i].length; j++) {
    sum += b[i][j];
    }
    }
    System.out.println(sum);
    A .32
    B .11
    C .2
    D .3
    14、定义i=2,则下面程序的运行结果为:(B)
    int i = 2;

switch(i) {
case 1:System.out.print(1);
case 2:case 3:System.out.print(3);
case 4:System.out.print(4);
}
A .3
B .34
C .4
D .无输出
15、下列哪个叙述是正确的?(A)
A .5.0/2+10的结果是double型数据。
B .(int)5.8+1.0的结果是int型数据。
C .苹’+ ‘果’的结果是char型数据。
D .(short)10+‘a’的结果是short型数据。
16、用下列哪个代码替换程序标注的【代码】会导致编译错误?(C)
public class E {
public static void main (String args[ ]) {
int m=10,n=0;
while(【代码】) {
n++;
}
}
}
A .m–>0
B .m++>0
C .m = 0
D .m>100&&true
17、假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误。(C)
A .short t=12+‘a’;
B .char c =‘a’+1;
C .char m =‘a’+x;
D .byte n =‘a’+1;
18、下列程序的输出结果是什么?(B)
public class E { public static void main (String args[ ]) {
char x=‘你’,y=‘e’,z=‘吃’;
if(x>‘A’){
y=‘苹’;
z=‘果’;
}
else
y=‘酸’;
z=‘甜’;
System.out.println(x+","+y+","+z);
}
}
A .你,苹,果
B .你,苹,甜
C .你,酸,甜
D .你,酸,果
19、下列程序的输出结果是什么?(B)
public class E {
public static void main (String args[ ]) {
char c = ‘\0’;
for(int i=1;i<=4;i++) {
switch(i) {
case 1: c = ‘J’;
System.out.print©;
case 2: c = ‘e’;
System.out.print©;
break;
case 3: c = ‘p’;
System.out.print©;
default: System.out.print(“好”);
}
}
}
}
A .Jep好
B .Jeep好好
C .Jep好好
D .Jeep好
20、下列程序的输出结果是什么?(A)
public class E {
public static void main (String []args) {
int x = 1,y = 6;
while (y–>0) {
x–;
}
System.out.print(“x=”+x+",y="+y);
}
}
A .x=-5,y=-1
B .x=-4,y=0
C .x=6,y=0
D .x=7,y=-1
21、下列关于标识符的说法,错误的是(B)
A .标识符由字母、下划线、美元符号和数字组成。
B .2016_Java可以作为标识符。
C .标识符中的字母区分大小写。
D .catch不可以作为标识符。
22、下列关于Java中整数类型的说法,正确的是(CD)
A .一个byte型变量占4bit。
B .unsigned int a = 3是合法的声明。
C .使用关键字long声明long型变量:long minutes = 0x72AL。
D .short类型的变量的取值范围是-215~215-1.
23、下列说法正确的是(AB)
A .Java语言有8种基本数据类型。
B .基本数据类型可分为逻辑类型、整数类型、字符类型、浮点类型。
C .short和Float都属于基本数据类型。
D .int a = 0144中的0144是十六进制表示法。
24、下列说法错误的是(BC)
A .“字符类型”中的“字符”指Unicode表中的一个字符。
B .使用System.out.println(“”)输出反斜线。
C .short类型与char类型均分配2个字节内存,两者取值范围一致。
D .使用(int)’A’观察一个字符在Unicode表中排序位置。
25、定义float x = 0.5f; double y = 0.5,则x==y结果为false。(B)
A .true
B .false
26、下列说法正确的是(ABD)
A .float a = 3.5;会导致编译错误。
B .byte b = (byte)(-150);则b的值为106。
C .byte c = 10;int d = (int)c;会导致精度的损失。
D .精度由高到低排序为:double float long int char short byte
27、关于课本P23示例程序的说法,正确的是(BCD)
A .程序等待用户在命令行输入数据时,是在Scanner reader = new Scanner(System.in);一句发生阻塞。
B .在命令行运行该程序时,使用ctrl+c可以结束阻塞。
C .输入0.00也可以结束程序的执行,输出sum的值。
D .当用户输入0.3并回车后,程序再次阻塞,该阻塞是由于执行了x = reader.nextDouble();一句。
28、以下哪些项是正确的char型变量的声明?(BE)
A .char ch = “R”;
B .char ch = ‘’
C .char ch = ‘ABCD’;
D .char ch = “ABCD”;
E .char ch = ‘\ucafe’;
F .char ch = ‘\u10100’
29、下列程序中哪些【代码】是错误的?(BCDE)
public class E {
public static void main(String args[]) {
int x = 8;
byte b = 127; //【代码1】
b = x; //【代码2】
x = 12L; //【代码3】
long y=8.0; //【代码4】
float z=6.89 ; //【代码5】
}
}
A .代码1
B .代码2
C .代码3
D .代码4
E .代码5
30、数组索引越界,编译可以通过,但运行时会发生ArrayIndexOutOfBoundsException异常。(A)
A .true
B .false
31、下列说法错误的是(B)
A .Java中数组的下标的数据类型是整型。
B .浮点型数组的默认值是0
C .数组创建后其大小不能改变。
D .向方法传递数组参数时,传递的是数组的引用。
32、对于int a[] = new int[3];下列哪个叙述是错误的?(B)
A .a.length的值是3。
B .a[1]的值是1。
C .a[0]的值是0。
D .a[a.length-1]的值等于a[2]的值。
33、下列错误的初始化语句是(ABD)
A .char str[]=“hello”;
B .char str[100]=“hello”;
C .char str[]={‘h’,‘e’,‘l’,‘l’,‘o’};
D .char str[]={‘hello’};
34、下面程序的运行结果是:(C)
public static void main(String args[]) {
int x=30;
int[] numbers=new int[x];
x=60;
System.out.println(numbers.length);
}
A .60
B .20
C .30
D .50
35、下面程序的运行结果是(B)
public static void main(String args[]) {
char s1[]=“ABCDEF\0”.toCharArray();
int i=0;
while(s1[i++]!=’\0’)
System.out.println(s1[i++]);
}
A .ABCDEF
B .BDF
C .ABCDE
D .BCDE
36、下列复制数组的方法,错误的是(C)
A .用循环语句逐个复制数组元素。
B .用arraycopy()方法。
C .用“=”复制。
D .用clone方法。
37、下列哪一个选项可以将数组a复制到b?(A)
A .arraycopy(a,0,b,0,a.length)
B .arraycopy(a,0,b,0,b.length)
C .arraycopy(b,0,a,0,a.length)
D .arraycopy(a,1,b,1,a.length)
38、下列关于课本P29示例程序的说法,正确的是(ABCD)
A .如果注释掉第一行“import java.util.;”,则“System.out.println(Arrays. toString(a));”和“Scanner scanner = new Scanner(System.in);”两句会报错。
B .折半查找时,必须保证数组是有序的。
C .该程序所示的排序方法为冒泡排序法。
D .count>N/2说明查找结束,没有找到该数字。
39、下列是正确的Java字符串的为(ABD)
A .""""
B .“Oxzabc”
C ."""
D ."\t\t\r\n"
E ."boolean"5
40、为一个boolean类型的变量赋值,下列方式正确的是(B)
A .boolean = 1;
B .boolean a = (9>=10);
C .boolean a = “true”;
D .boolean a == false;
1、下列不属于Java后继技术的是(D)
A .Android
B .JSP
C .XML
D .Python
2、下列关于Java语言特点的描述,正确的一组是(C)
A .面向过程;平台相关;动态
B .面向过程;多线程;静态
C .面向对象;平台无关;动态
D .面向对象;单线程;静态
3、下列说法错误的是(B)
A .字节码不能被任何平台直接识别、执行。
B .C/C++源程序所产生的可执行文件在所有平台上都能被执行。
C .Java语言和其他语言相比,最大的优势就是编写的软件能在执行码上兼容。
D .无论哪种编程语言编写的应用程序,都需要经过操作系统和处理器完成程序的运行。
4、下列不属于Java集成开发环境的是(A)
A .PyCharm
B .NetBean
C .MyEclipse
D .IntelliJ IDEA
5、Java编译器和Java解释器位于src中,因此编辑系统变量时,为Path添加的新值是“E:\JDK1.8\src”。(B)
A .true
B .false
6、下列关于系统环境设置的说法,错误的是(B)
A .设置JAVA_HOME的好处之一是便于Path值的维护。
B .Android通过当前机器设置的classpath的值来寻找所需JDK。
C .classpath设置中的“.;”是指可以加载应用程序当前目录及其子目录中的类。
D .如果已设置系统变量JAVA_HOME的值是E:\JDK1.8,就可以用%JAVA_HOME%代替E:\JDK1.8。
7、下列关于Java程序开发步骤的描述,正确的是(BE)
A .课本P9的程序Hello.java,若将第三行System.out.println(“大家好!”);改为System.out.print(“大家好!”);,运行结果不变。
B .使用命令提示符编译源文件时,可以用“-source”参数指定版本。
C .编译产生Hello.class文件,运行时可使用“java Hello.class”命令。
D .运行时,java命令后是该java源文件的名字(不包括扩展名)。
E .反编译是把编译器得到的字节码文件还原为源文件。
8、下列说法正确的是(A)
A .Java虚拟机首先执行类中的main方法。
B .Java中,多个/**/注释可以嵌套。
C .一个源文件中必须有public类。
D .Java字节码的扩展名是.java。
9、下列哪个是Java应用程序主类中正确的main方法?(D)
A .public void main (String args[ ])
B .static void main (String args[ ])
C .public static void Main (String args[])
D .public static void main (String args[ ])
10、Java编译器、反编译器、解释器分别是:①java.exe ②javac.exe ③javap.exe ④javaw.exe(D)
A .②④③
B .③②①
C .①③④
D .②③①
11、Java的出现标志着分布式系统的真正到来。(A)
A .true
B .false
12、下列关于编写源文件的说法,错误的是(C)
A .源文件的名字必须是某个类的名字。
B .如果源文件有public类,那么源文件的名字必须是这个类的名字。
C .源文件可以有多个public类。
D .源文件的扩展名必须是.java。
13、Windows下在命令行提示符使用“dir”查看所在目录下的文件。(A)
A .true
B .false
14、主类不一定由public修饰。(A)
A .true
B .false
15、public static void main (String args[ ])中的“main”和“args”都不可随意修改。(B)
A .true
B .false
16、下列说法正确的是(AC)
A .Java SE提供了标准的Java Development Kit(JDK)。
B .Java SE平台包含Java EE平台。
C .使用Java EE可以构建企业级的服务应用。
D .Java SE增加了附加类库,以便支持目录管理等功能。
17、如果在使用JDK 1.9编译器时没有显式地使用“-source”参数,则默认取值1.9。(A)
A .true
B .false
18、下列关于Java语言特点和地位的说法,正确的是(B)
①Java具备“一旦写成处处可用”的特点。
②Java的面向对象特性让Java成为编写网络应用程序的佼佼者。
③C语言是最基础和非常实用的语言之一,Java具有和C语言同等重要的地位。
④用于设计Web应用的JSP、设计手机应用程序的Android等很多新的技术领域都涉及了Java语言。
A .①③
B .①③④
C .②③④
D .①②③④
19、只要平台提供了Java运行环境,Java编写的软件就能在其上运行。(A)
A .true
B .false
20、Java的源码扩展名为何?编译完后是哪个扩展名?(C)
A …txt、.java
B …c、.class
C …java、.class
D …cpp、.java
21、对JVM来说,可执行文件的扩展名正确的是?(B)
A .
.java
B ..class
C .
.dll
D .*.pyc
22、在 Java 下载页面中,哪个下载选项安装后,会有 javac 编译器可以使用?(A)
A .JDK
B .JRE
C .JavaDoc
D .NetBeans
23、如果只是要运行 Java 程序,下载程序哪个安装即可?(B)
A .JDK
B .JRE
C .JavaDoc
D .Glassfish
24、Java 根据应用领域不同,区分为哪三大平台?(ABC)
A .Java SE
B .Java EE
C .Java ME
D .Android
25、以下哪些包括在JRE之中?(BCD)
A .开发工具程序
B .Java SE API
C .JVM
D .部署技术
26、如果在hello.java中撰写以下的程序代码:
public class Hello {
public static void main(String[] args) {
System.out.println(“Hello World”);
}
}
以下描述正确的是(D)
A .执行时显示Hello World
B .执行时出现NoClassDefFoundError
C .执行时出现出现找不到主要方法的错误
D .编译失败
27、如果在Main.java中撰写以下的程序代码:
public class Main
public static main(String[] args) {
System.out.println(“Hello World”);
}
}
以下描述何者正确?(D)
A .执行时显示Hello World
B .执行时出现NoClassDefFoundError
C .执行时出现出现找不到主要方法的错误
D .编译失败
28、如果在Main.java中撰写以下的程序代码:
public class Main {
public static void main() {
System.out.println(“Hello World”);
}
}
以下描述何者正确?(C)
A .执行时显示Hello World
B .执行时出现NoClassDefFoundError
C .执行时出现出现找不到主要方法的错误
D .编译失败
29、如果在Main.java中撰写以下的程序代码:
public class Main {
public static void main(string[] args) {
System.out.println(“Hello World”);
}
}
以下描述何者正确?(D)
A .执行时显示Hello World
B .执行时出现NoClassDefFoundError
C .执行时出现出现找不到主要方法的错误
D .编译失败
30、如果 C:\workspace\Hello\classes 中有以下原始码编译而成的 Main.class:
public class Main {
public static void main(String[] args) {
System.out.println(“Hello World”);
}
}
文本模式下你的工作路径是 C:\workspace,那么如何执行 Main 类别?(C)
A .java C:\workspace\Hello\classes\Main
B .java Hello\classes Main
C .java –cp Hello\classes Main
D .以上皆非
31、如果 C:\workspace\Hello\classes 中有以下原始码编译而成的 Main.class:
package cc.openhome;public class Main {
public static void main(String[] args) {
System.out.println(“Hello World”);
}
}
文本模式下你的工作路径是 C:\workspace,那么如何执行 Main 类别?(D)
A .java C:\workspace\Hello\classes\Main
B .java Hello\classes Main
C .java –cp Hello\classes Main
D .以上皆非
32、如果C:\workspace\Hello\src中有Main.java如下:
package cc.openhome; public class Main {
public static void main(String[]args) {
System.out.println(“Hello World”);
}
}
文本模式下你的工作路径是C:\workspace\Hello,那么如何编译与执行Main类别?(C)
A .javac src\Main.java java C:\workspace\Hello\classes\Main
B .javac –d classes src\Main.java java –cp classes Main
C .javac –d classes src\Main.java java –cp classes cc.openhome.Main
D .javac –d classes src\Main.java java –cp classes/cc/openhome Main

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值