常用API

(单选题)判断两个字符串的内容是否相同,下面哪个选项正确( )
A.= =
B.=
C.equals()
D.以上的都不对

【正确答案】C
【答案解析】equals()方法用来判断字符串的内容是否相同 ==用来比较字符串对象的地址是否相同 =用来赋值

(单选题)System.out.println(“5” + 2);的输出结果应该是()。
A.52
B.7
C.2
D.5

【正确答案】A
【答案解析】因为5是字符串类型的不会和2进行+运算,会进行拼接

(单选题)以下代码输出结果是()
public class Test {
public static void main (String [] args) {
String foo = “blue”;
String bar = foo;
foo = “green”;
System.out.println(bar);
}
}
A.运行时出现异常
B.代码会编译出错
C.输出结果为null
D.输出结果为"blue"

【正确答案】D
【答案解析】采用 String foo = "blue"定义方式定义的字符串放在字符串池中,通过 String bar = foo;他们指向了同一地址空间,就是同一个池子,当执行 foo = “green”; foo 指向新的地址空间。

(单选题)下面代码的运行结果为:()
public class foo{
public static void main (String[] args){
String s;
System.out.println(“s=” + s);
}
}
A.代码得到编译,并输出“s=”
B.代码得到编译,并输出“s=null”
C.由于String s没有初始化,代码不能编译通过
D.代码得到编译,但捕获到 NullPointException异常

【正确答案】C
【答案解析】Java中所有定义的基本类型或对象都必须初始化才能输出值。

(单选题)正则表达式"\d+.?\d{1,2}"在匹配下列字符串时结果失败的是( )
A.“12.5”
B.“1.025”
C.“0125”
D.“125.00”

【正确答案】B
【答案解析】\d+ 表示可以出现 1 次或是 n 次数字 . ? 表示"."可以出现 1 次,也可以不出现 \d{1,2} 表示最少出现 1 次 最多出现 2 次数字

(单选题)下面代码的执行结果是( )
import java.util.*;
public class ShortSet{
public static void main(String args[]){
Set s=new HashSet();
for(Short i=0;i<100;i++) {
s.add(i);
s.remove(i-1);
}
System.out.println(s.size());
}
}
A.1
B.100
C.Throws Exception.
D.None of the Above.

【正确答案】B
【答案解析】i是Short类型i-1是int类型,其包装类为 Integer,所以s.remove(i-1);不能移除Set集合中Shor类型对象。

(单选题)指出下列程序运行的结果( )
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.good and abc
B.good and gbc
C.test ok and abc
D.test ok and gbc

【正确答案】B
【答案解析】引用类型变量保存的是对象的地址,一个对象可以同时被多个变量所引用,并且操作,一个变量只能引用一个对象,对一个对象进行操作。

(单选题)以下代码的执行结果是( )
public class Base {
private void test() {
System.out.println(6 + 6 + “(Result)”);
}
static public void main(String[] a) {
new Base().test();
}
}
A.66(Result)
B.12(Result)
C.运行时出错。不能将一个int转成一个String。
D.Compilation Error.Incompatible type for +. Can’t add a string to an int.
运行时出错。不能将一个String与一个int相加。

【正确答案】B
【答案解析】字符串与基本数据类型链接的问题,如果第一个是字符串那么后续就都按字符串处理,比如上边例子要是 System.out.println("(Result)"+6 + 6 );那么结果就是(Result)66,如果第一个和第二个……第 n 个都是基本数据第 n+1 是字符串类型,那么前 n 个都按加法计算出结果在与字符串连接

(单选题)已知如下代码:
String s = “Example”;
下列选项中可以编译通过的是( )
A.s>>>=3;
B.s[3]= “X”;
C.int i = s.length;
D.s = s +10;

【正确答案】D
【答案解析】A 移位运算需要整数类型才可以; B s不是数组,数组才有length属性,字符串只有length()方法; C String类有length()方法而不是属性; D 属于字符串拼接操作。

(多选题)下列文档注释规范说明正确的是
A.@author Lee Boynton代表作者
B.@version 1.2.1代表版本号
C.@see import java.util.Arrays;代表参见
D.@since JDK1.8 代表JDK版本

【正确答案】A,B,C,D
【答案解析】此题目考查的是文档注释的规范,以上选项均正确 因此ABCD是正确的选项。

(多选题)以下关于hashCode说法正确的是( )
A.两个对象如果hashCode值不同,则两个对象可能相同。
B.两个对象如果hashCode值相同,则两个对象必定相同。
C.两个对象如果hashCode值相同,则两个对象可能相同。
D.两个对象如果hashCode值不同,则两个对象必定不同。

【正确答案】C,D
【答案解析】先通过 hashcode 来判断某个对象是否存放某个桶里,但这个桶里可能有很多对象,那么我们就需要再通过 equals 来在这个桶里找到我们要的对象。

(多选题)String s = new String(“hello”);
String t = new String(“hello”);
char c [ ] = {‘h’, ‘e’, ‘l’, ‘l’, ‘o’};
下列哪些表达式返回 true ( )
A.s.equals(t);
B.t.equals©;
C.s==t;
D.t.equals (new String(“hello”));

【正确答案】A,D
【答案解析】String类的equals方法已经覆盖了Object类的equals方法,比较的是两个字符串的内容是否相等,双等号比较的是两个对象的内存地址是否相等

文件操作

(单选题)下面是文档注释的是
A./** /
B.//
C./
/
D.//
/

【正确答案】A
【答案解析】此题目考查的是注释的了解,A选项是文档注释,BC是普通的注释,D选项格式错误 因此A是正确的选项。

(单选题)RandomAccessFile是java.io包中的一个兼有输入输出功能的类。以下说法正确的是()
A.可以选择文件中的任意位置开始操作
B.必须从文件中的终止位置开始操作
C.必须从文件中的起始位置开始操作
D.必须从文件中的某个固定位置开始操作

【正确答案】A
【答案解析】文件操作中经常需要的是随机访问,Java中的RandomAccessFile类提供了随意访问文件的功能,它继承了Object类,用DataInput和DataOutput接口来实现。接口中定义了从流中读/写基本类型的数据方法,因此也可以随意读/写数据文件的记录。

(多选题)有关javadoc命令生成文档叙述正确的是
A.如果是一个包命令为javadoc –d docDir nameOfPackage
B.如果是一个包命令为javadoc –d docDir nameOfPackages
C.如果文件在默认包中命令为javadoc –d docDir *.java
D.如果文件在默认包中命令为javadoc –d docDir *.javac

【正确答案】A,C
【答案解析】此题目考查的是javadoc命令生成文档的了解,BD语法错误,AC均正确 因此AC是正确的选项。

IO

(单选题)FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型( )
A.OutputStream
B.File
C.InputStream
D.BufferedOutputStream

【正确答案】A
【答案解析】请参考api文档手册

(单选题)Java I/O 程序设计中,下列描述正确的是( )
A.OutputStream用于写操作
B.InputStream用于写操作
C.I/O库不支持对文件可读可写API
D.InputStream是一个接口

【正确答案】A
【答案解析】B. InputStream用于读操作; C. I/O支持对文件的读写; D. InputStream是一个抽象类。

(单选题)下面哪个流类属于面向字符的输入流( )
A.ByteArrayInputStream
B.FileInputStream
C.ObjectInputStream
D.InputStreamReader

【正确答案】D
【答案解析】A、B、C 3个都是字节流

(单选题)计算机中的流是()
A.流动的字节
B.流动的对象
C.流动的文件
D.流动的数据缓冲区

【正确答案】D
【答案解析】流,最早从C语言中引入的。其可以看成是一个流动的数据缓冲区。数据从数据源方向经过缓冲区流向数据的目的地。在传送的过程中,其传送方式是串行的。在Java中的java.io包中定义了Java中常见流的接口与类。其中包括两个最基本的流的抽象类,它们分别是OutputStream与InputStream。其余的流都分别从这两个基本类中继承而来。

异常

(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )
A.NullPointerException
B.ClassCastException
C.FileNotFoundException
D.IndexOutOfBoundsException

【正确答案】C
【答案解析】A、B、D 3个异常都属于运行时异常

(单选题)下列选项中可以填写在’Point X’处的是()
public class ExceptionTest {
class TestException extends Exception {}
public void runTest () throws TestException {}
public void test () /* Point X*/{
runTest ();
}
}
A.throws TestException
B.catch (Exception e)
C.throws RuntimeException.
D.catch (TestException e).

【正确答案】A
【答案解析】方法上应使用 throws 抛出异常,test()方法中执行调用了runTest()方法,而runTest()方法抛出的是TestException异常,所以A符合要求。

(单选题)下面关于java.lang.Exception类的说法正确的是()
A.继承自Throwable
B.继承自Serialable
C.继承自Error
D.以上说法均不正确

【正确答案】A
【答案解析】Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception。

(单选题)下列不是异常体系中Exception类包括的异常类的有( )
A.Error
B.NullPointerException
C.SQLException
D.InputMismathException

【正确答案】A
【答案解析】一个程序在编译和运行时出现的错误我们统一称之为异常; 一个合理的应用程序不能截获的严重的问题属于错误。

(单选题)getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果()
public void getCustomerInfo() {
try {
// do something that may cause an Exception
} catch (java.io.FileNotFoundException ex) {
System.out.print(“FileNotFoundException!”);
} catch (java.io.IOException ex) {
System.out.print(“IOException!”);
} catch (java.lang.Exception ex) {
System.out.print(“Exception!”);
}
}
A.IOException!
B.IOException!Exception!
C.FileNotFoundException!IOException!
D.FileNotFoundException!IOException!Exception!

【正确答案】A
【答案解析】考察多个catch语句块的执行顺序。当用多个catch语句时,catch语句块在次序上有先后之分。从最前面的catch语句块依次先后进行异常类型匹配,这样如果父异常在子异常类之前,那么首先匹配的将是父异常类,子异常类将不会获得匹配的机会,也即子异常类型所在的catch语句块将是不可到达的语句。所以,一般将父类异常类即Exception老大放在catch语句块的最后一个。
多选题 (共计 2 题,总计 4分)

(多选题)关于异常(Exception),下列描述正确的是( )
A.异常的基类为 Exception,所有异常都必须直接或者间接继承它
B.异常可以用 try{ . . .}catch(Exception e){ . . .}来捕获并进行处理
C.如果某异常继承 RuntimeException,则该异常可以不被声明
D.异常可以随便处理,而不是抛给外层的程序进行处理

【正确答案】A,B,C
【答案解析】异常可以在自己方法内部处理,当自己无法解决时,需要抛出给调用者来处理。

(多选题)final、finally、finalize三个关键字的区别是()
A.final是修饰符(关键字)可以修饰类、方法、变量
B.finally在异常处理的时候使用,提供finally块来执行任何清除操作
C.finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作
D.finally和finalize一样都是用异常处理的方法

【正确答案】A,B,C
【答案解析】finally是关键字不是方法

线程

(单选题)下面程序的运行结果:()
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print(“ping”);
}
static void pong() {
System.out.print(“pong”);
}
A.pingpong
B.pongping
C.pingpong和pongping都有可能
D.都不输出

【正确答案】B
【答案解析】这里考的是Thread类中start()和run()方法的区别了。start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()

(单选题)Java语言中,负责并发管理的机制是()
A.垃圾回收
B.虚拟机
C.代码安全
D.多线程

【正确答案】D
【答案解析】Java语言中,负责并发管理的机制是多线程

(单选题)方法 resume()负责恢复哪些线程的执行( )
A.通过调用 stop()方法而停止的线程。
B.通过调用 sleep()方法而停止的线程。
C.通过调用 wait()方法而停止的线程。
D.通过调用 suspend()方法而停止的线程。

【正确答案】D
【答案解析】suspend 可以挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行,用 resume 是恢复挂起 的线程,让这个线程继续执行下去。

(单选题)关于 sleep()和 wait(),以下描述错误的一项是( )
A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法
B.sleep 不释放对象锁,wait 放弃对象锁
C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复
D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态

【正确答案】D
【答案解析】sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控 状态依然保持,到时后会自动恢复。调用 sleep 不会释放对象锁。 wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对 象锁进入运行状态。

(单选题)关于线程设计,下列描述正确的是( )
A.线程对象必须实现 Runnable 接口
B.启动一个线程直接调用线程对象的 run()方法
C.Java 提供对多线程同步提供语言级的支持
D.一个线程可以包含多个进程

【正确答案】C
【答案解析】A. 线程对象也可以继承Thread B. 启动线程需要调用start()方法 D. 一个进程可以包含多个线程

(单选题)java Thread中,run方法和start方法的区别,下面说法错误的是?
A.通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。
B.他们都可以实现了多线程运行。
C.run方法是thread的一个普通方法调用。
D.调用start方法后,一旦得到cpu时间片,就开始执行run()方法。

【正确答案】B
【答案解析】两种方法的区别: 1.start方法 用 start方法来启动线程,是真正实现了多线程, 通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。但要注意的是,此时无需等待run()方法执行完毕,即可继续执行下面的代码。所以run()方法并没有实现多线程。 2.run方法 run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码。

(单选题)以下哪个方法用于定义线程的执行体( )
A.start()
B.init()
C.run()
D.main()

【正确答案】C
【答案解析】run 方法是线程的执行体

(单选题)线程生命周期中正确的状态是()
A.新建状态、运行状态和终止状态
B.新建状态、运行状态、阻塞状态和终止状态
C.新建状态、可运行状态、运行状态、阻塞状态和终止状态
D.新建状态、可运行状态、运行状态、恢复状态和终止状态

【正确答案】C
【答案解析】线程生命周期:新建状态、可运行状态、运行状态、阻塞状态和终止状态

(单选题)下列程序的功能是在控制台上,每隔1秒钟显示字符串"Hello",能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是( )
public class Test implements Runnable{
public static void main(String[] args){
Test t=new Test();
Thread tt=new Thread(t);
tt.start();
}
public void run(){
for(;😉{
try{
__________
}catch(_________ e ){}
System.out.println(“Hello”);
}
}
}
A.Thread. sleep (1000) InterruptedException
B.sleep (1000) InterruptedException
C.t. sleep (1000) InterruptedException
D.Thread. sleep (1000) RuntimeException

【正确答案】A
【答案解析】睡眠需要笤俑Thread的sleep方法,传入参数为一个long类型毫秒值,本题中要求间隔时间为1秒,所以需要传入1000毫秒作为参数。打断睡眠程序会抛出InterruptedException异常。

(多选题)下面能让线程停止执行的有( )
A.sleep();
B.stop();
C.notify();
D.wait();

【正确答案】A,B,D
【答案解析】sleep:导致此线程暂停执行指定时间; stop:这个方法将终止所有未结束的方法,包括 run 方法; wait:当前正在被服务的线程需要睡一会,醒来后继续被服务。

(多选题)有关线程的哪些叙述是对的( )
A.一旦一个线程被创建,它就立即开始运行。
B.使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
D.一个线程可能因为不同的原因停止并进入就绪状态。

【正确答案】B,D
【答案解析】线程被创建后不可能立即开始运行。 不同优先级的线程间是抢先式的,同级线程间是轮转式的。 即使线程因为抢先而停止也不一定就进入可运行队列的前面。 而同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。

TCP

.以下哪个命令用于测试网络连通。
A.telnet
B.netstat
C.ping
D.ftp

【正确答案】C
【答案解析】

下列哪一个选项按照顺序包括了OSI模型的七个层次:( )
A.物理层 数据链路层 传输层 网络层 会话层 表示层 应用层
B.物理层 数据链路层 会话层 网络层 传输层 表示层 应用层
C.物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
D.网络层 传输层 物理层 数据链路层 会话层 表示层 应用层

【正确答案】C
【答案解析】

TCP通信建立在连接的基础上,TCP连接的建立要使用几次握手的过程。
A.2
B.3
C.4
D.5

【正确答案】B
【答案解析】

管理计算机通信的规则称为
A.协议
B.介质
C.服务
D.网络操作系统

【正确答案】A
【答案解析】

XML语法

(单选题)实体引用是一种合法的XML名字,前面带有一个符号( )
A.&
B.;
C.+
D.?

【正确答案】A
【答案解析】xml文档中实体符号是用&作为开头的

(单选题)在 XML 中用于注释的符号是( )
A.
B.<?-- --?>
C.<% %>
D.<!-- --!>

【正确答案】A
【答案解析】XML文档注释符号是

(单选题)XML( )提供了一种避免元素命名冲突的方法。
A.命名空间
B.DTD
C.XSD
D.XSL

【正确答案】A
【答案解析】定义xml文档时通过命名空间来避免重复的命名。

(单选题)XML的命名规则中说法正确的是( )
A.可以包含字母、数字、以及其他字符
B.名字可以任何字母、数字或符号开始
C.名字没有任何限制
D.以上均不正确

【正确答案】A
【答案解析】XML 元素必须遵循以下命名规则: 名称可以含字母、数字以及其他的字符; 名称不能以数字或者标点符号开始; 名称不能以字符 “xml”(或者 XML、Xml)开始; 名称不能包含空格; 可使用任何名称,没有保留的字词。

(单选题)<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT Customer EMPTY> <!ATTLIST Customer 称呼 CDATA #IMPLIED 姓名 CDATA #REQUIRED 职位 CDATA #REQUIRED>

关于上述DTD 定义的描述正确的是( )
A.Customer 元素能包含子元素,并且能为空
B.Customer 元素能包含文本,并且能为空
C.Customer 元素不能包含文本,也不能包含子元素
D.Customer 元素的所有实例的“称呼”属性必须有值,不能为空

【正确答案】C
【答案解析】EMPTY 表示元素不能包含文本,也不能包含子元素; #IMPLIED 属性可以没有值; #REQUIRED 属性必须有值。

(单选题)Schema与DTD的相同之处有( )
A.基于XML语法
B.支持命名空间
C.可扩展
D.对XML文档结构进行验证

【正确答案】D
【答案解析】DTD不遵循XML语法 DTD不支持命名空间 DTD不可扩展

(单选题)属性()用来表示XML文档所使用的字符集。
A.version
B.encoding
C.standalone
D.type

【正确答案】B
【答案解析】定义xml文档时,通过encoding属性来指定字符集

(单选题)下列可以解析XML的有( )
A.CSS
B.DTD
C.SAX
D.XSL

【正确答案】C
【答案解析】java 解析 xml 文件四种方式:SAX、DOM、JDOM、DOM4J

(多选题)以下说法符合xml语法规则的是( )
A.标记头和标记末的大小写一致
B.元素之间要正确的嵌套
C.结束标记可有可无
D.每个XML文档只能有一个根元素

【正确答案】A,B,D
【答案解析】XML语法规则: 必须有XML声明语句; 是否有DTD文件; 注意大小写; 给属性值加引号; 所有的标识必须有相应的结束标识; 所有的空标识也必须被关闭。

(多选题)下列选项中,哪一个是预定义实体?( )
A.<
B.&left;
C.>
D.&right;

【正确答案】A,C
【答案解析】表示>号

(多选题)以下声明正确的是( )
A.
B.<?xml-stylesheet type='txt/css' href='abc.css'?>
C.<?xml-stylesheet type="txt/css" href="abc.css"?>
D.<%xml-stylesheet type=“txt/css” href=“abc.css”%>

【正确答案】B,C
【答案解析】单引号,双引号都可以使用在属性上。

(多选题)在XML中,下列关于DOM的叙述是正确的( )
A.DOM是独立于开发语言和平台的,因此使用Visnal Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的
B.XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树
C.通过DOM API,软件开发人员可以控制XML文档的结构和内容
D.通过DOM在XML文档中只能按照顺序方式导航

【正确答案】A,B,C
【答案解析】选项D错误 SAX解析文档需要按照顺序 DOM可以随意

反射

假定Tester 类有如下test方法:
public int test(int p1, Integer p2)
以下哪段代码能正确地动态调用一个Tester 对象的test方法?(单选)
A.Class classType=Tester.class;
Object tester=classType.newInstance();
Method addMethod=classType.getMethod(“test”,new Class[]{int.class,int.class});
Object result=addMethod.invoke(tester,
new Object[]{new Integer(100),new Integer(200)});
B.Class classType=Tester.class;
Object tester=classType.newInstance();
Method addMethod=classType.getMethod(“test”,new Class[]{int.class,int.class});
int result=addMethod.invoke(tester,
new Object[]{new Integer(100),new Integer(200)});
C.Class classType=Tester.class;
Object tester=classType.newInstance();
Method addMethod=classType.getMethod(“test”,new Class[]{int.class,Integer.class});
Object result=addMethod.invoke(tester,
new Object[]{new Integer(100),new Integer(200)});
D.Class classType=Tester.class;
Object tester=classType.newInstance();
Method addMethod=classType.getMethod(“test”,new Class[]{int.class,Integer.class});
Integer result=addMethod.invoke(tester,
new Object[]{new Integer(100),new Integer(200)});

【正确答案】C
【答案解析】

多选题
以下哪些方法在Class类中定义?(多选)
A.getConstructors()
B.getPrivateMethods()
C.getDeclaredFields()
D.getImports()
E.setField()

【正确答案】A,C
【答案解析】

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐