Java面试题 1

1、【单选题】
(单选题)继承父类用哪个关键字?( )
A.interface
B.extends
C.implements
D.abstract
【正确答案】B
【答案解析】无

2、【单选题】
(单选题)File表示文件信息操作,下面对File方法描述不正确的是?
A. createNewFile():创建文件
B.isFile() 判断当前file对象是否是一个文件
C.exists() 判断file对象表示的文件或目录是否存在
D.delete():删除file对象表示的目录或文件,如果要删除一个目录,那么此目录有内容才可以删除。
【正确答案】D
【答案解析】正确答案D,delete():删除file对象表示的目录或文件如果要删除一个目录,那么此目录必须没有内容才可以删除,如果有子目录有文件,那么不能删除不可直接删除多级目录,必须从最底层开始逐级删除

3、【单选题】
(单选题)反射的作用以下描述正确是?
A.在运行中分析类的能力
B.在编译期查看对象
C.运行数组操作代码
D.以上都不对
【正确答案】A
【答案解析】A

4、【单选题】
(单选题)NIO与IO的区别?
A.IO是面向流的, NIO是面向缓冲区的。
B.IO是非阻塞的, NIO是面向流的.
C. IO是面向流的, NIO是面向缓冲区的。
D. IO是阻塞的, NIO是面向流的.
【正确答案】A
【答案解析】无

5、【单选题】
(单选题)试图变异运行下面的代码会发生什么情况?( )
public class MyClass{
Static int i;
public static void main(String[] args){
System.out.println(i);
}
}
A.错误,变量i没有初始化
B.输出null
C.输出1
D.输出0
【正确答案】D
【答案解析】无

6、【单选题】
(单选题)下列String类的什么方法返回指定字符串的一部分
A.extractstring()
B.substring()
C.Substring()
D.Middlestring()
【正确答案】B
【答案解析】可以通过substring方法来截取某一段的字符串

7、【单选题】
(单选题)下面程序的运行结果是
String s1 = “abc”;
String s2 = new String(“abc”);
System.out.println(s1s2);
String s3 = “你好吗”;
String s4 =”你”;
String s5 =”好吗”;
System.out.println(s3
(s4+s5))
A.true false
B.false true
C.true true
D.false false
【正确答案】D
【答案解析】s1==s2); 比较的是地址.因为2个对象.所以false,由于s4和s5是变量,在编译的时候会开辟出一个新的地址来存储s4与s5链接后的字符串. 所以结果是false

8、【单选题】
(单选题)下列哪个关键字可以对对象加互斥锁( )
A.transient
B.synchronized
C.serialize
D.static
【正确答案】B
【答案解析】无

9、【单选题】
(单选题)下列输出结果是( )
int a = 0;
while ( a < 5 ) {
switch(a){
case 0 :
case 3 :
a = a + 2;
case 1 :
case 2 :
a = a + 3;
default :
a = a + 5;
}
}
System.out.print ( a );
A.0
B.5
C.10
D.其他
【正确答案】C
【答案解析】无

10、【单选题】
(单选题)以下哪个方法可以向StringBuffer对象的指定位置添加数据
A.add()
B.insert()
C.append()
D.into()
【正确答案】B
【答案解析】考察StringBuffer的排序规则

11、【单选题】
(单选题)当需要在文件中写入字符而不是字节时,最好选用下面的哪个类( )
A.java.io.PrintWriter
B.java.io.RandomAccessFile
C.java.io.PrintStream
D.java.io.OutputStream
【正确答案】A
【答案解析】无

12、【单选题】
(单选题)下列那一个不属于java的基本数据类型( )
A.int
B.String
C.float
D.byte
【正确答案】B
【答案解析】无

13、【单选题】
(单选题)实现下列哪个接口,可以启用比较功能?
A.Runnable接口
B.Iterator接口
C.Serializable接口
D.Comparator接口
【正确答案】D
【答案解析】comparator接口是用来进行数据比较的

14、【单选题】
(单选题)变量命名规范说法正确的是( )
A.变量由字母、下划线、数字、$符号随意组成;
B.变量不能以数字作为开头;
C.A和a在java中是同一个变量;
D.不同类型的变量,可以起相同的名字;
【正确答案】B
【答案解析】无

15、【单选题】
(单选题)下列那条语句能编译通过( )
A.String String=”String”;
B.float float=”3.14”; 
C.int int = 11;      
D.int i= 1.1; 
【正确答案】A
【答案解析】无

16、【单选题】
(单选题)下列哪个方法可以使线程从运行状态进入其他阻塞状态?
A.sleep
B.wait
C.yield
D.start
【正确答案】A
【答案解析】对于线程的理解

17、【单选题】
(单选题)以下那个关键字是代表当前对象的引用?( )
A.super
B.this
C.static
D.new
【正确答案】B
【答案解析】无

18、【单选题】
(单选题)下面哪些是正确的描述了关键字synhronized()
A.允许两个进程并行运行但其之间相互通信
B.保证任何时候只有一个线程访问一个方法或对象
C.保证两个或多个进程同时启动和结束
D.保证两个或多个线程同时启动和结束.
【正确答案】B
【答案解析】无

19、【单选题】
(单选题)在JAVA中ArrayList类实现了可变大小的数组,方便遍历与随机访问元素。若获得了ArrayList类中fruitTypeList,则下列语句能实现判断列表中是否存在字符串“葡萄”的是( )
A.fruitTypeList.add(“葡萄”);
B.fruitTypeList.get(“葡萄”);
C.fruitTypeList.remove(“葡萄”);
D.fruitTypeList.contains(“葡萄”);
【正确答案】D
【答案解析】无

20、【单选题】
(单选题)对于线程同步的特征理解错误的是?( )
A.每个对象都有多个的同步锁。
B.当一个线程开始执行同步代码块时,并不意味着必须以不间断的方式运行,进入同步代码块的线程可以执行Thread.sleep()或执行Thread.yield()方法,此时它并不释放对象锁,只是把运行的机会让给其他的线程。
C.在静态方法前面可以使用synchronized修饰符。
D.Synchronized声明不会被继承,如果一个用synchronized修饰的方法被子类覆盖,那么子类中这个方法不在保持同步,除非用synchronized修饰。
【正确答案】A
【答案解析】每个对象都有唯一的对象锁,而不是多个。

21、【单选题】
(单选题)看下面的代码,写出输出的结果( )
public class Ex2 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
expand(a);
changeArray(a);
printArray(a);
}
public static void expand(int[] a){
int[] newArray = new int[a.length * 2];
System.arraycopy(a, 0, newArray, 0, a.length);
a = newArray;
}
public static void changeArray(int[] a){
a[0] = 10;
}
public static void printArray(int[] a){
for(int i = 0; i<a.length; i++){
System.out.print(a[i] + “\t”);
}
System.out.println();
}
}
A.10 2 3 4 5
B.1 2 3 4 5
C.10 2 3 4 5 0 0 0 0 0
D.1 2 3 4 5 0 0 0 0 0
【正确答案】A
【答案解析】无

22、【单选题】
(单选题)下列关于Thread类提供的线程控制方法的说法中,错误的一项是?
A.在线程A中执行线程B的join()方法,则线程A等待直到B执行完成
B.线程A通过调用interrupt()方法来中断其阻塞状态
C.若线程A调用方法isAlive()返回值为true,则说明A正在执行中
D.currentThread()方法返回当前线程的引用
【正确答案】D
【答案解析】考察对于线程的理解

23、【单选题】
(单选题)对于HashMap集合说法正确的是( )
A.底层是数组结构
B.底层是链表结构
C.可以存储null值和null键
D.不可以存储null值和null键
【正确答案】C
【答案解析】无

24、【单选题】
(单选题)关于Channel下列说法错误的是?
A.NIO中通道可以异步地读写.
B.NIO中既可以从通道中读取数据,又可以写数据到通道。
C.FileChannel是NIO中Channel的具体实现类.
D.SocketChannel不能通过TCP读写网络中的数据.
【正确答案】D
【答案解析】无

25、【单选题】
(单选题)以下程序的运行结果是:( )
public class Increment{
public static void main(String args[]) {
int a;
a = 6;
System.out.print(a);
System.out.print(a++);
System.out.print(a);
}
}
A.666
B.667
C.677
D.676
【正确答案】B
【答案解析】无

26、【单选题】
(单选题)当一个任务通过ThreadPoolExecutor的execute(Runnable)方法欲添加到线程池时,下面说法错误的是。( )。
A.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。
B.如果此时线程池中的数量大于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。
C.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过 handler所指定的策略来处理此任务
D.如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。
【正确答案】B
【答案解析】正确答案B 应该是 如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。

27、【单选题】
(单选题)下面描述函数重写错误的是( )
A.要有子类继承或实现。
B.子类方法的权限必须大于等于父类的权限。
C.父类中被private权限修饰符的方法可以被子类重写。
D.子类重写接口中的抽象方法,子类的方法权限必须是public的
【正确答案】C
【答案解析】无

28、【单选题】
(单选题)下列说法中错误的一项是
A.线程就是程序
B.线程是一个程序的单个执行流
C.多线程是指一个程序的多个执行流
D.多线程用于实现并发
【正确答案】A
【答案解析】基础

29、【单选题】
(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )
A.NullPointerException
B.ClassCastException
C.FileNotFoundException
D.IndexOutOfBoundsException
【正确答案】C
【答案解析】无

30、【单选题】
(单选题)定义接口用什么关键字?( A )
A.interface
B.extends
C.implements
D.abstract
【正确答案】A
【答案解析】无

31、【多选题】
(多选题) 关于String类的indexOf说法不正确的是?
A.返回指定字符在字符串中第一次出现的索引
B.返回指定子字符串在字符串第一次出现的索引
C.返回指定字符在字符串中最后一次出现的索引
D.返回指定子字符串在此字符串最后一次出现的索引
【正确答案】C,D
【答案解析】基础知识,考察Java中String类的indexOf()方法

32、【多选题】
(多选题)下列属于线程的生命状态是?()
A.新建状态:创建一个线程。
B.就绪状态:此线程具备除了时间片外的所有资源。
C. 运行状态:抢占到时间片后进入运行期。
D.阻塞状态:由运行状态被阻塞。
【正确答案】A,B,C,D
【答案解析】线程的生命状态:
新建状态:创建一个线程
就绪状态:此线程具备除了时间片外的所有资源
运行状态:抢占到时间片后进入运行期
阻塞状态:由运行状态被阻塞
死亡状态:线程结束。

33、【多选题】
(多选题)下列关于JDK的说法正确的是( )
A.开发一个Java程序,需要完整的JDK
B.运行一个Java程序,需要完整的JDK
C.运行一个Java程序,只需要JDK中的JRE
D.以上说法都不对
【正确答案】A,C
【答案解析】无

34、【多选题】
(多选题)下列各项可以用作标识符的是?( )
A.String
B.Int
C.finalize
D. T T T
【正确答案】A,B,C,D
【答案解析】无

35、【多选题】
(多选题)以下选项中是反射机制的作用是( )
A.在运行时判断任意一个对象所属的类。
B.在运行时构造任意一个类的对象。
C.在运行时判断任意一个类所具有的成员变量和方法。
D.在运行时调用任意一个对象的方法
【正确答案】A,B,C,D
【答案解析】无

36、【多选题】
(多选题)已知如下代码:( )
switch(m){
case 0:System.out.print(“Condition 0”);
case 1:System.out.print(“Condition 1”);
case 2:System.out.print(“Condition 2”);
case 3:System.out.print(“Condition 3”);
default:System.out.print("Other Condition “);
}
当m的值为什么时能输出"Condition 2”
A.0
B.1
C.2
D.3
【正确答案】A,B,C
【答案解析】无

37、【多选题】
(多选题)链表具有的特点是( )
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比
【正确答案】A,C,D
【答案解析】无

38、【多选题】
(多选题)请阅读以下代码,不可以完善此段代码的正确选项是( )
public class ExceptionTest {
class TestException extends Exception {}
public void runTest () throws TestException {}
public void test () /* Point X*/ {
runTest ();
}
}
A.throws Exception
B.Catch (Exception e).
C.Throws RuntimeException.
D.Catch (TestException e). E. No code is necessary.
【正确答案】B,C,D
【答案解析】无

39、【多选题】
(多选题)关于构造方法,下列说法正确的是:( )
A.每个类中都有至少一个构造方法
B.一个类中可以有多个构造方法
C.构造方法可以有返回值
D.构造方法可以有多个参数
【正确答案】A,B,D
【答案解析】无

40、【多选题】
(多选题)下列有关线程的说法错误的是( )
A.启动一个线程是调用start()方法,是线程所代表的虚拟处理机处于可运行状态,这意味着线程此时就会立即运行
B.notify()方法可以确切的唤醒某个处于等待状态的线程
C.wait()方法可以使一个线程处于等待状态,但不会释放所持有对象的锁
D.sleep()方法使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法时,需要捕捉InterruptedException异常
【正确答案】A,B,C
【答案解析】无

41、【多选题】
(多选题)(static)以下哪些论述是正确的()
A.静态方法中不能调用非静态方法
B.可以在不产生任何一个对象的情况下调用静态方法
C.静态方法不能被覆盖
D.静态方法能够用类名直接调用
【正确答案】A,B,D
【答案解析】无

42、【多选题】
(多选题)在JAVA中,下列哪些说法是正确的( )
A.java源文件的扩展名为.java
B.写好的java源程序可以直接运行
C.编写的源程序必须先编译后才能运行
D.程序员可以读懂扩展名为.class的文件
【正确答案】A,C
【答案解析】无

43、【多选题】
(多选题)ArrayList和Vector的区别说法不正确的是( )
A.ArrayList是线程安全的,Vector是线程不安全
B.ArrayList是线程不安全的,Vector是线程安全的
C.ArrayList底层是数组结构,Vector底层是链表结构
D.ArrayList底层是链表结构,Vector底层是数组结构
【正确答案】A,C,D
【答案解析】无

44、【多选题】
(多选题)final关键字可以修饰以下哪几个?( )
A.方法
B.常量
C.类
D.变量
【正确答案】A,B,C
【答案解析】无

45、【多选题】
(多选题)选择Java语言中的基本数据类型( )
A. byte
B.Integer
C.long
D.String
【正确答案】A,C
【答案解析】无

46、【多选题】
(多选题)已知有如下代码,下列哪些表达式返回 true( )
String s=new String(“hello”);
String t =new String(“hello”);
char c [ ] ={‘h’,’e’,’l’,’l’,’o’};
A.s.equals(t);
B.t.equals©;
C.s= =t ;
D.t.equals (new String(“hello”));
【正确答案】A,D
【答案解析】无

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

48、【多选题】
(多选题)阅读以下代码,以下答案哪个不正确()
import java.util.*;
public class TestListSet{
public static void main(String args[]){
List list = new ArrayList();
list.add(“Hello” );
list.add(“Learn” );
list.add(“Hello” );
list.add(“Welcome” );
Set set = new HashSet();
set.addAll(list);
System.out.println(set.size());
}
}
A.编译不通过
B.编译通过,运行时异常
C.编译运行都正常,输出 3
D.编译运行都正常,输出 4
【正确答案】A,B,D
【答案解析】无

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

50、【多选题】
(多选题)下面的哪些声明是合法的?( )
A.long l = 4990
B.int i = 4L
C.float f = 1.1
D.double d = 34.4
【正确答案】A,D
【答案解析】无

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值