1、【单选题】Calendar类中,用于为指定的日历字段增加或减去指定的时间量的方法是?( )。 A.int get(int field) B.void add(int field,int amount) C.void set(int field,int value) D.void set(int year,int month,int date) 【正确答案】B 【答案解析】本题考查Calendar类中的方法 void add(int field,int amount);方法为给定的时间分量的值加上给定的值,若给定的值为负数,则是减去给定的值。 2、【单选题】如果要按照特定顺序保存元素,应当使用的容器是( ) A.HashMap B.ArrayList C.TreeSet D.数组 【正确答案】C 【答案解析】本题考查TreeSet保存元素,会以特定的顺序保存元素选项C正确。 3、【单选题】如下变量的定义: String str1 = “haohao”; String str2 = “haohao”; 以上代码中创建了( )对象 A.0 B.1 C.2 D.3 【正确答案】B 【答案解析】Java为了提高性能,静态字符串(字面量、常量、常量连接)在常量池中创建,并尽量使用同一个对象,重用静态字符串。对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象。 本题中两个变量都指向内容相同的字符串,所以只有1个对象。选项B正确。 4、【单选题】下列哪个方法可以使线程从运行状态进入阻塞状态( )。 A.run() B.yield() C.sleep() D.start() 【正确答案】C 【答案解析】此题目考查的是线程状态的变化。处于运行状态的线程,当执行sleep()方法时,会进入阻塞状态。选项C正确 5、【单选题】下列( )方法用来定义线程要执行的任务。 A.start() B.run() C.sleep() D.wait() 【正确答案】B 【答案解析】此题目考查的是每个线程要执行的任务需要在run()方法中定义 选项A 用于启动线程 选项C用来休眠线程 选项D让某个线程处于等待状态 选项B正确。 6、【单选题】实现Point类的equals方法,具体逻辑为:“成员变量x和y分别相等的Point对象被视为相等”。
public class Point {
private int x;
private int y;
...
public boolean equals(Object obj) {
《填入代码》
}
}
《填入代码》处应填入的代码正确的是: A.
if(obj.x == this.x || obj.y == this.y){
return true;
}
return false;
B.
if(!(obj instanceof Point)) return false;
if(((Point)obj).x == ((Point)obj).y && this.x == this.y){
return true;
}
return false;
C.
if(!(obj instanceof Point)) return false;
if(((Point)obj).x == this.x && ((Point)obj).y == this.y){
return true;
}
return false;
D.
if(obj.x == this.x && obj.y == this.y){
return true;
}
return false;
【正确答案】C 【答案解析】本题考查equals方法的重写。 选项A错误,必须将参数强制转换到Point类型,才能访问Point类中的x和y 选项B错误,不符合题目中的需求,需要比较的是两个对象的x和y 选项C正确 选项D错误必须将参数强制转换到Point类型,才能访问Point类中的x和y 7、【单选题】Java中,如下字符串"你好北京"中的每个字符占用的内存字节数是( )。 A.0 B.1 C.2 D.3 【正确答案】C 【答案解析】本题考查字符串中字符的内存分配 Java中,字符串底层个是由字符数组构成,而每个字符占用内存2个字节 选项C正确。 8、【单选题】分析以下程序:
1 public class TestEquals{
2 public static void main(String[]args){
3 String str1=new String("haohao");
4 String str2=new String("haohao");
5 if(str1.equals(str2)){
6 System.out.println("Equal");
7 }
8 }
9 }
该程序的执行结果是( )。
A.程序执行后无输出
B.程序执行后输出“Equal”
C.程序在第5行出现编译错误
D.程序执行后出现异常
【正确答案】A
【答案解析】本题考查String类中的equals()方法。
boolean equals(Object object);重写自父类Object的equals()方法。在String类中,用于区分大小写的比较两个字符串内部字符是否相同。本题中创建2个字符串对象,str1与str2对象的字符内容大小写不同所以str1.equals(str2)
返回false,不执行if语句体,所以没有任何内容输出选项A正确
9、【单选题】JDK中javadoc是用来生成文档注释,文档注释会生成( )文件
A…txt文本文件
B…doc word文档文件
C…java java文件
D…html 网页文档文件
【正确答案】D
【答案解析】本题考查JDC中的文档注释工具
JAVA中,可以通过JDK中提供的javadoc工具,可以将形如/**...*/
的内容转换为HTML文档说明
选项D正确。
10、【单选题】下面属于线程安全的类是( )。
A.ArrayList
B.StringBuilder
C.HashMap
D.Hashtable
【正确答案】D
【答案解析】本题考查集合类中属于线程安全的类
ArrayList和HashMap都是非线程安全的
Vector和Hashtable都是线程安全的。
11、【单选题】测试线程是否处于活动状态的方法是()。
A.getState()
B.isAlive()
C.isDaemon()
D.isRun()
【正确答案】B
【答案解析】此题目考查的是如何获取线程信息。
选项A 获取线程的状态
选项B 测试线程是否处于活动状态
选项C 测试线程是否为守护线程
选项D 没有改方法
选项B正确。
12、【单选题】阅读代码:
public class Cell{
private int row;
private int col;
//getter()和setter()
}
能够通过该类中的row属性,比较该类多个对象的大小,可以实现的接口是( )。 A.List B.Iterator C.Comparable D.Map 【正确答案】C 【答案解析】本题考查Comparable接口。类通过实现Comparable接口,并重写接口中compareTo()方法,可以实现对该类的多个对象进行比较 选项C正确。 13、【单选题】SimpleDateFormat类的哪个方法可以将Date转化成String对象?( )。 A.equals B.toString C.parse D.format 【正确答案】D 【答案解析】本题考查SimpleDateFormat类中的方法 String format(Date date);用来将日期格式化成特定格式的字符串 选项D正确 14、【单选题】
int[][]arr = new int[3][];
System.out.println(arr[0].length);
运行结果是( )。 A.会出现编译错误。 B.运行期会抛出ArithmeticException异常 C.运行期会抛出IOException异常 D.运行期会抛出NullPointerException异常 【正确答案】D 【答案解析】此题目考查的是当对一个null值的对象,访问其属性或方法,程序会出现NullPointerException异常。 二维数组没有初始化内部数组,则二维数组中的数组都是null值,选项D正确。 15、【单选题】
String str = new String("abc DEF");
String newstr = str.toLowerCase();
String newstr2 = str.toUpperCase();
System.out.println(newstr);
System.out.println(newstr2);
下面哪个选项是正确的( )。 A.ABC def abc DEF B.abc def ABC DEF C.abc def ABC def D.ABC DEF abc def 【正确答案】B 【答案解析】本题考查字符串字符大小写转换函数 toLowerCase(),将字符串英文字符全部小写 toUpperCase(),将字符串英文字符全部大写 str.toLowerCase(),之后,生成新字符串对象,内容为"abc def"。 str.toUpperCase(),之后,生成新字符串对象,内容为"ABC DEF" 选项B正确。 16、【单选题】给出以下代码,请问该程序运行的结果是()。
1.public class Demo{
2.public static void main(String args[]){
3. StringBuilder s=new StringBuilder("Hello");
4.if(s.length()>5&&
5.(s.append("there").equals("False")));
6.System.out.println("value is "+s);
7.}
8.}
A.打印输出 value is Hello B.打印输出 value is Hello there C.无内容打印输出 D.4、5行代码编译错误 【正确答案】A 【答案解析】本题考查StringBuilder对象的API方法 第4行s.length()=5,s.length()>5为false,由于使用短路与,&&后不再做运算。 第5行直接使用if表达式后使用分号,第6行不再是if语句体中的语句,会直接 执行,与变量s进行“+”运算后结果是value is Hello 选项A正确 17、【单选题】下列程序输出结果是( )。
String str = "华为 is a very good company!";
boolean bo1 = str.startsWith("华为")&&str.endsWith("company");
System.out.println(bo1);
A.true B.false C.编译错误 D.运行时异常 【正确答案】B 【答案解析】本题考查startsWith()和endsWith()方法 字符串str以"华为"开头,str.startsWith(“华为”)结果是true 字符串str以"!"结尾,str.endsWith(“company”);结果是false true&&false结果是false,选项B正确 18、【单选题】对保存在List中的数据进行查找,方法不正确的是( )。 A.对元素进行遍历,依次比较 B.对内容有序的List可以进行二分法查找 C.调用indexOf方法查找 D.无论是否有序都可以用二分法查找,比线性查找快很多 【正确答案】D 【答案解析】本题考查对List集合元素的查找 选项D说法不正确,二分查找法,必须是对有序的元素。 19、【单选题】在JAVA中,下面关于String类和StringBuilder类的描述正确的是( )。 A.StringBuilder类的对象调用tostring()方法将转换为String类型 B.两个类都有append()方法 C.可以直接将字符串“test”赋值给声明的Stirng类和StringBuilder类的变量 D.两个类的实例的值都能够被改变 【正确答案】A 【答案解析】本题考查StringBuilder和String类的区别 选项A正确,toString()方法,即是转换到字符串类型的方法。 选项B错误,String类没有append()方法 选项C错误,StringBuilder类不能直接赋值 选项D错误,字符串对象一旦创建,内容不可变 20、【单选题】 请选出能够正确的创建如下类的子类的选项( )。
public class Fu{
public void play() throws IOException{
//...
}
}
A.
public class Zi extends Fu{
void play() throws IOException{
//...
}
}
B.
public class Zi extends Fu{
void play() throws Exception{
//...
}
}
C.
public class Zi extends Fu{
public void play() throws IOException{
//...
}
}
D.
public class Zi extends Fu{
public void play() throws Exception{
//...
}
}
【正确答案】C 【答案解析】此题目考查的是继承中的方法重写修饰符和异常类型的声明 子类重写父类的方法,方法的修饰符权限必须大于或等于父类方法的修饰符 选项AB错误 子类重写父类的方法,方法声明的异常类型必须与父类相同或是父类中方法 声明异常类型的子类型。D错误 选项C正确。 21、【单选题】阅读代码:
public class Cell implemens Comparable<Cell>{
int row;
int col;
//getter()和setter()
//code here
}
//若要cell类对象能在TreeSet集合中按特定要求排序,code here处,需要添加的代码段是()。 A.
public void compareTo(Cell o){
this.row - o.row;
}
B.
public boolean compareTo(Cell o){
return this.row > o.row;
}
C.
public int compareTo(Cell o){
return this.row - o.row;
}
D.
public int compareTo(Object o){
return this.row - o.row;
}
【正确答案】C 【答案解析】本题考查compareTo()方法。 compareTo()方法的定义格式为int compareTo(Object o); 如果在实现接口的给定了泛型,方法中的参数即为传入泛型的参数类型 选项A,B方法的返回值类型错误。 选项D,方法中的参数应该是Cell,因为类实现接口的时候给出了Cell类型 因此,选项C正确。 22、【单选题】下列程序段运行后,输出( )。
String str = "123az45d67xyz89";
str = str.replaceAll("[a-z]+", "***");
System.out.println(str);
A.123az45d67xyz89
B.***az***d***xyz***
C.123***45***67***89
D.123456789
【正确答案】C
【答案解析】本题考查replaceAll()使用正则,根据正则替换原有字符,选项C正确。
23、【单选题】阅读如下代码:
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aaa");
list.add("aaa");
list.add("aaa");
迭代该集合中的元素,下列待填入处应补充的是( )。
for(/*待填入*/){
System.out.print(str);
}
A.List list : String str
B.String str : List list
C.list : String str
D.String str : list
【正确答案】D
【答案解析】本题考查使用增强的for循环,迭代集合ArrayList
增强的for循环使用如下:
For(String str : list){…}
选项D正确
24、【单选题】下列创建线程并启动线程的代码中,/*code here*/
处应该添加的代码是( )。
public class Test01 {
public static void main(String[] args)throws Exception {
Thread t = new Thread(/*code here*/);
t.start();
}
}
A.new Runnable()
B.
new Runnable {
public void run() {
//..
}
}
C.
new Runnable() {
public void run() {
//..
}
}
D.
new Thread {
public void run() {
//..
}
}
【正确答案】C 【答案解析】此题目考查的是通过内部类创建线程。 选项A错误,Runnable是接口不能直接创建对象。 选项B错误,new Runnable后缺少小括号。 选项C正确。 选项D错误,new Thread后缺少小括号。 25、【单选题】下列创建一个新的文件的代码段中1和2处应该添加的代码是:( )。
File file = new File("c://a.txt");
if(/*1*/){
try {
/*2*/
} catch (IOException e) {
e.printStackTrace();
}
}
A.!file.exists();
file.createNewFile();
B.!file.exists();
file.mkdir();
C.File!=null
file.createNewFile();
D.file.isDirectory()
file.createNewFile();
【正确答案】A
【答案解析】此题目考查的是如何通过File类创建一个文件。
判断文件是否存在的方法是:exists();
创建文件的方法是:createNewFile();
选项A正确
26、【单选题】对于以下字符串 str="likeqin,yeqianwen,linzixiang"
通过下列程序获取到三个名字。
程序如下:
String[] names =();
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
空白处应该填写的代码是:( )。 A.split(",",str) B.str.split(",") C.str.toArray(",") D.Arrays.toArray(str,","); 【正确答案】B 【答案解析】本题考查字符串的拆分。 本题完成将一个字符串拆分的功能,String类中提供了一个String[] split(",") 方法,根据特定的分隔符,返回一个字符串数组。 并遍历该数组,打印数组中每个元素。 27、【单选题】阅读下列代码:
class Emp{
private int empNo;
private String ename;
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public int hashCode() {
return empNo;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Emp other = (Emp) obj;
if (empNo != other.empNo)
return false;
return true;
}
public static void main(String[] args) {
Emp e1 = new Emp();
e1.setEmpNo(1001);
e1.setEname("苍老师");
Emp e2 = new Emp();
e2.setEmpNo(1001);
e2.setEname("Robin");
System.out.println(e1==e2);
System.out.println(e1.equals(e2));
}
}
运行该类,输出结果是( );
A.false false
B.false true
C.true false
D.true true
【正确答案】B
【答案解析】本题考查equals
和==
的区别
Object类中默认equals()
方法和==
没有区别,本类中重写了equals()
方法,如果empNo相同,两个Emp对象的equals()方法,即会返回true。
选项B正确。
28、【单选题】给出以下代码,请问该程序的运行结果是( )。
String s1 ="ab";
String s2 ="abcd";
String s3="cd";
String s4 =s1+s3;
s1=s4;
System.out.println("s1"+((s1==s2)?"==":"!=")+"s2");
A.s1==s2
B.s1!=s2
C.s1
D.s1=="abcd"
【正确答案】B
【答案解析】本题考查字符串常量与变量的操作
String s4 = s1+s3
,会产生新的对象。
String s2 = "abcd"
,s2是常量池中的一个对象,
s2==s4
,返回false
,s1=s4
,s1指向常量池中“abcd”对象,所以s1!=s2
选项B正确。
29、【单选题】阅读如下代码,在//插入代码处添加代码,正确的选项是( )。
public class Cell{
int row;
int col;
public Cell(){}
public Cell(int row,int col){
this.row = row;
this.col = col;
}
public static void main(String args[]){
List<Cell> cells = new ArrayList<Cell>();
cells.add(new Cell(2,3));
cells.add(new Cell(5,1));
cells.add(new Cell(3,2));
//对该集合中对象进行排序
Collections.sort(cells,
//插入代码
);
}
}
A.
new Comparator<Cell>(){
public int compare(Cell c1,Cell c2){
return c1.row - c2.row;
}
}
B.
new Comparator<Cell>(){
public boolean compare(Cell c1,Cell c2){
return c1.row > c2.row;
}
}
C.
new Comparator<Cell>{
public int compare(Cell c1,Cell c2){
return c1.row - c2.row;
}
}
D.
new Comparator<Cell>{
public boolean compare(Cell c1,Cell c2){
return c1.row > c2.row;
}
}
【正确答案】A 【答案解析】本题考查Comparator接口 Collections工具类中,sort方法,根据特定的比较规则 对集合中的元素进行排序。调用sort方法需要传入一个实现了Comparator接口的实现类对象。也可以直接使用匿名内部类的方式实现。 Comparator接口中的compare()方法返回int类型,选项BD错误 匿名内部类的格式为:new Comparator(){//…},选项A正确 30、【单选题】完成如下需求,下列选项正确的是( )。 定义方法,对字符串中的字符进行排序。 例如字符串“bcdefag”排序后结果:“abcdefg”; A.public void sortString(String str){ char [] arr = str.toCharArray(); Arrays.sort(arr); String temp = String.valueOf(arr); return temp; } B.public String sortString(String str){ char [] arr = str.toCharArray(); Arrays.sort(arr); String temp = String.valueOf(arr); System.out.println(temp); } C.字符串对象,创建之后,内容不可改变,以上需求不合理,无法实现。 D.public String sortString(String str){ char [] arr = str.toCharArray(); Arrays.sort(arr); String newString = String.valueOf(arr); return newString; } 【正确答案】D 【答案解析】本题考查字符串与字符数组。 本题需求定义一个方法实现,根据需求, 确定方法返回值为排序后的新的字符串对象,方法返回类型为String 方法中需要一个不确定的字符串对象,参与运算,方法的参数为一个字符串对象 所以方法应该为形如public String method(String str){} 方法中实现字符排序的思路如下: 1、根据源字符串生成字符数组,使用toCharArray()方法 2、对字符数组排序,使用Arrays工具类中的sort()方法 3、将排序后的字符数组,转换成字符串对象,使用valueOf()方法 4、将新的字符串对象返回,方法中必须使用return语句. 选项A,定义返回值类型为void的方法,方法不允许使用return返回值,错误 选项B,定义返回值类型为String的方法,方法必须有return语句返回值,错误 选项C,字符串对象不可改变,改变之后会产生新的对象,需求是可以实现的,错误 选项D,符合方法定义语法,内部实现可以完成需求,正确。 31、【单选题】Iterator进行迭代集合中元素,并将其移除《插入代码》处应填入的代码是( )。
ArrayList<String> list = new ArrayList<String>();
list.add("苍老师");
list.add("陈老师");
list.add("王老师");
《插入代码》
A.
Iterator<String> it = list.iterator();
while(it.hasNext()){
it.next();
it.remove();
}
B.
Iterator<String> it = list.iterator();
while(it.hasNext()){
it.remove();
}
C.
Iterator<String> it = list.iterator();
while(it. hasNext()){
String str = it.next();
list.remove(str);
}
D.
Iterator<String> it = list.iterator();
while(it.hasNext()){
list.remove();
}
【正确答案】A 【答案解析】本题考查Iterator的使用。 Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素 如果通过集合对象删除,程序在运行期间会抛出异常。选项CD错误 Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素 但是可以通过迭代器Iterator对象删除集合中元素,需要迭代一个元素 删除一个元素,选项A正确。 选项B没有迭代元素,直接删除,会抛出异常。 32、【单选题】下列自定义方法用于实现获取指定子串在字符串中出现次数 public int getSubCount(String str,String substr){ int count = 0; int index = 0; while((index = str.indexOf(substr, index))!=-1){ count++; index =____________________________________________; } return count; } 完成如上功能,空白处应该填写( )。 A.index + substr.length(); B.index + str.length(); C.index + substr.size(); D.index + str.size(); 【正确答案】A 【答案解析】本题考查通过infexOf()和length()方法结合,检索已知字符串中,某个子串出现的 次数。 定义方法的思路如下: 1、确定方法的返回值类型 如何确定方法的返回类型?根据需求,功能中需要有运算结果,结果为子串出现的次数,返回int类型。 2、确定方法的参数列表 如何确定方法的参数列表?分析功能中是否有不确定的数据参与运算。本题需求中计算的某个字符串中,子串出现的次数,所以有两个字符串类型的参数,一个用于查找的字符串,一个查找哪一个子串。 根据以上思路定义出方法为:public int subString(String str,String subStr){}; 方法中,需要使用循环依次查找子串,出现依次,计数变量自增1,直到找不到子串,循环结束。 当查找到有一个子串,就从该子串的下一个位置继续查找。所以空白处应该使用index+strSub.length(); 选项A正确。 33、【单选题】ArrayList的初始化内容如下:
ArrayList<String> list = new ArrayList<String>();
list.add("java");
list.add("aaa");
list.add("java");
list.add("java");
list.add("bbb");
下面可以删除list中所有的"java"的代码是( )。 A.
for (int i = list.size() - 1; i >= 0; i--){
if ("java".equals(list.get(i))) {
list.remove(i);
}
}
B.
for (int i = 0; i < list.size(); i++) {
if ("java".equals(list.get(i))) {
list.remove(i);
}
}
C.
list.remove("java");
D.
list.removeAll("java");
【正确答案】A 【答案解析】A选项:从最后一个元素开始倒序对比检查,如果等于"java"就删除它,从后面删除元素不会破坏前面每个元素的下标位置,能保证每个元素都被遍历到,正确。B选项:从第一个元素开始对比检查,如果某个元素被删除了,后面的元素的下标位置都会发生变化。下标位置的变化会导致某些元素被漏查,例如删除了第一个元素,原本下标为1的元素现在变成了下标为0的元素,往前移了一位,下次程序会遍历下标为1的元素。把下标为0的元素漏查了。因此错误。选项A正确。 34、【单选题】对于catch子句的排列,下列哪种是正确的( ) A.父类异常在先,子类异常在后 B.子类异常在先,父类异常在后 C.有继承关系的异常不能在同一个try程序段内 D.只能有子类异常 【正确答案】B 【答案解析】此题目考查的是多个异常的捕获顺序。 如果一段代码可能出现多个异常类型,使用catch捕获的时候 先要捕获子类型的异常,再捕获其父类型的异常 选项B正确。 35、【单选题】先阅读下面的程序片段:
String str1=new String("haohao");
String str2=new String("haohao");
StringBuffer str3=new StringBuffer("haohao");
对于上述定义的变量,以下表达式的值为true的是( )。
A.str1==str2;
B.str1.equals(str2);
C.str1==str3;
D.str2==str3;
【正确答案】B
【答案解析】本题考查String对象和StringBuffer对象。
使用new创建字符串对象,对象存在于堆内存中。
本题程序片段中在堆内存中创建了3个对象
A,C,D都是比较是否是一个对象,都错误。
B选项中,使用equals()方法比较两个字符串对象,由于String类重写了equals()方法,比较两个对象内部字符内容是否相同,因为相同所以返回true,选项B正确。
36、【单选题】下列选项中,( )是所有异常错误的父类。
A.Exception
B.Throwable
C.Error
D.RuntimeException
【正确答案】B
【答案解析】此题目考查的是java中所有异常的父类是Throwable,直接子类是
Error和Exception。
Error描述的系统错误,程序无法处理
Exception 程序异常,可以处理
RuntimeException,描述的是运行时异常
选项B正确。
37、【单选题】关键字()可以在方法内部抛出异常对象?
A.catch
B.throws
C.throw
D.synchronized
【正确答案】C
【答案解析】此题目考查的是异常的抛出。
当程序满足某种特定条件,可以使用throw 具体的异常对象的方式抛出该异常对象
选项C正确。
38、【单选题】如下程序:
String str = "I can do it because I think I can";
int index1 = str.indexOf("can");
int index2 = str.lastIndexOf("can");
int result = index1 + index2;
result结果是:( )。
A.2
B.30
C.32
D.-1
【正确答案】C
【答案解析】本题考查字符串检索
int indexOf(String str) 在字符串中检索str,返回其第一次出现的位置,如果找不到返回-1.
int lastIndexOf(String str)str在字符串中多次出现时,将返回最后一个出现的位置。本题中index1 = 2;index2 = 30;result=2+30=32;
选项C正确。
39、【单选题】当方法遇到异常又不知如何处理时,下列哪种说法是正确的()。
A.捕获异常
B.抛出异常
C.声明异常
D.嵌套异常
【正确答案】C
【答案解析】此题目考查的是方法中的异常如果在方法内部不处理,
需要通知调用者处理,此时在方法声明的时候,使用throws关键字
声明该方法中可能出现的异常。
选项C正确。
40、【单选题】下列哪个方法用于创建一个抽象路径名指定的目录和其父目录( )。
A.createNewFile();
B.createNewFiles();
C.mkdir();
D.mkdirs();
【正确答案】D
【答案解析】此题目考查的是File类哪个方法用来创建层级目录
选项A错误,createNewFile();用来创建文件
选项B错误,File类中没有该方法
选项C错误,mkdir()用于创建当前目录
选项D正确。
41、【多选题】下列对线程的说法中正确的是( )。
A.线程就是程序
B.线程是一个程序的单个执行单元
C.多线程是指一个程序的多个执行单元
D.多线程用于实现并发
【正确答案】B,C,D
【答案解析】此题目考查的是线程的概念。
选项A错误。进程中所包含的一个或多个执行单元,称为线程。
多线程能够使多个执行单元并发执行。
42、【多选题】
下列对File类的描述正确的是( )。
A.创建File类对象,即在磁盘上创建了一个目录或文件
B.通过File类可以访问文件中的内容
C.File类中的delete()方法,可以删除文件或目录,如果删除目录,只能删除空目录
D.File类中的isDirectory()方法用于判断当前对象表示的是否是一个目录。
【正确答案】C,D
【答案解析】此题目考查的是File类以及类中的方法。
选项A错误,创建File对象,该对象为内存对象,并非是创建了一个目录或文件,
如果在磁盘上创建该对象所表示的文件或目录,需要调用API方法来实现。
选项B错误,File类不可以访问文件中的内容,只能操作该文件。
选项CD正确。
43、【多选题】对下列运算结果,判断正确的是( );
A."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为true
B."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为false
C."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 1;
该表达式结果返回true
D."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 4;
该表达式结果返回true
【正确答案】A,D
【答案解析】本题考查正则表达式
String类中的matches()方法和split()方法都支持正则表达式。
matches()方法用于判断已知字符串是否匹配某个正则
split()方法用于根据正则拆分字符串
选项A,B正则“\d[a-z]{2,8}[0-9]+”表示1位数字开头,2~8位字母,1位或多位数字,字符串"1az098"匹配正确,选项A正确
选项C,D 正则"[,]+“表示1位或多位逗号字符,split()方法,使用1位或多位逗号字符
为分隔符拆分字符串,拆分后字符串数组中为4个元素,选项D正确
选项A,D正确
44、【多选题】腾讯QQ号是从10000开始的,后续号码逐渐增大,下列正则表达式中可以表示所有QQ号的是()
A.^\d{5,}$
B.^[1-9][0-9]{4,8}$
C.^[1-9]\d{4,}$
D.^[1-9][0-9]{4,}$
【正确答案】C,D
【答案解析】本题考查5位以上数字1-9开头的数字,正则的表示方法。
选项CD正确。
45、【多选题】可以表示6位任意数字的正则是( )。
A.^[0-9]{6}$
B.^\d{6}$
C.^[0~9]{6}$
D.^\D{6}$
【正确答案】A,B
【答案解析】本题考查正则
正则表示任意数字:[0-9]或\d,选项CD错误,{6}表示6位,选项AB均正确。
46、【多选题】下列异常类中,属于RuntimeException的子类的是:( )。
A.FileNotFoundException
B.IOException
C.ClassCastException
D.ArrayIndexOutOfBoundsException
【正确答案】C,D
【答案解析】此题目考查的是Java中异常类型的分类。
Java中有两种异常,检查异常和运行时异常,检查异常必须处理,运行时异常可以不处理,选项AB为检查异常,CD为运行时异常,即为RuntimeException的子类,选项CD正确。
47、【多选题】下列是格式正确的XML标记的是( )。
A.<name>张三<name>
B.<name>张三</Name>
C.<name>张三</name>
D.<name/>
【正确答案】C,D
【答案解析】此题目考查的是XML的基本格式
选项A 结尾标记最少”/"
选项B XML区分大小写,开始标记和结尾标记大小写不一致。
选项CD正确。
48、【多选题】关于集合框架,说法正确的是( )。
A.与数组不同,集合框架是容量可变的容器
B.集合框架不能保存基本类型,但是可以将它们转换为包装类后保存
C.集合框架中的List, Set, Map接口都是Collection接口的子接口
D.集合类除了提供可变容量的存储外,还提供了对数据的算法
【正确答案】A,B,D
【答案解析】本题考查集合框架
选项C错误,Map接口不是Collection接口的子接口。
49、【多选题】下列选项中,对Object类描述正确的是( )。
A.Java中所有的类,都默认自动继承了Object类
B.Java中所有的类都从Object类中继承了toString()方法、
hashCode()方法和equals()等方法
C.Object类中toString()方法的返回值是一个字符串,
equals方法的返回值为1或0
D.定义类的时候,类中必须重写Object类中的toString(),equals(),hashCode()方法
【正确答案】A,B
【答案解析】本题考查有关Object类的说法
选项AB正确
选项C错误,equals()方法返回true或false
选项D错误,自定义类建议重写Object类中的3个方法,但不是必须。
50、【多选题】关于Java 异常,下列说法正确的是()。
A.异常是定义了程序中遇到的可恢复的错误,而不是编译时的语法错误
B.try……catch语句中对try 内语句监测,如果发生异常,则把异常信息放入Exception类的对象中
C.throws 用来表示一个方法有可能抛出异常给上一层,则在调用该方法时可以捕捉或抛出异常,否则无法编译通过
D.main方法不可以使用 throws 抛出异常
【正确答案】A,B,C
【答案解析】此题目考查的是异常概述。
选项D错误,任何方法都可以抛出异常。