阶段测试一错题

final abstract static 关键词修饰后有什么影响,可以修饰什么?

47.(多选题)ArrayList和Vector的区别说法不正确的是( )
A.ArrayList是线程安全的,Vector是线程不安全
B.ArrayList是线程不安全的,Vector是线程安全的
C.ArrayList底层是数组结构,Vector底层是链表结构
D.ArrayList底层是链表结构,Vector底层是数组结构

StringBuffer

NIO

线程的各种方法,阻塞,状态,run(),start(),join(),interrupt(),currentThread(),isAlive(

for循环,switch循环,while循环,doWhile循环

HashMap原理
ArrayList原理

a++ a--执行步骤

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

Synchronized声明
同步锁
Thread.sleep()   Thread.yield()
静态方法前面可以使用synchronized修饰符



在JAVA的异常处理模型中,能单独和finally一起使用的块是(  try )

单选题)为一个boolean类型变量赋值时,可以使用( B )方式
A.boolean = 1;
B.boolean a = (9 >= 10);
C.boolean a="真";
D.boolean a = = false;

下列输出结果是( 10 )
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 );

switch循环中的default语句

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



(单选题)当一个任务通过ThreadPoolExecutor的execute(Runnable)方法欲添加到线程池时,
下面说法错误的是。(B )。

A.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,
建新的线程来处理被添加的任务。
B.如果此时线程池中的数量大于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线
程来处理被添加的任务。
C.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于
maximumPoolSize,那么通过 handler所指定的策略来处理此任务
D.如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。

反射的作用以下描述正确是?A
A.在运行中分析类的能力
B.在编译期查看对象
C.运行数组操作代码
D.以上都不对

反射

ArrayList原理和方法

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

检查型异常



(单选题)看下面的代码,写出输出的结果( A )
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; iSystem.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

==和equals比较的是什么?
对象存储的地址值



String类的基本方法
substring();
concat();



多选题)已知如下代码,执行后的输出是什么?( AD )
public class Test{
public static void main(String arg[]){
int i = 5;
do{
System.out.print(i);
}while(--i>5);
System.out.print("finished");
}
}
A.5
B.4
C.6
D.finished



final关键字

面向对象的理解,详细,java的特点



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



(多选题)启动一个线程是用 run() 还是 start()? 下面说法错误的是()
A.启动一个线程是调用start()方法,
B.start()使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
C.调用start()意味着线程就会立即运行。
D.run()方法不会产生必须退出的标志来停止一个线程。
【正确答案】C,D
【答题时间】2021-03-30 08:35:15
【答案解析】启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

(多选题)启动一个线程是用 run() 还是 start()? 下面说法错误的是()
A.启动一个线程是调用start()方法,
B.start()使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
C.调用start()意味着线程就会立即运行。
D.run()方法不会产生必须退出的标志来停止一个线程。
【正确答案】C,D
【答题时间】2021-03-30 08:35:15
【答案解析】启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

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

(多选题)已知有如下代码,下列哪些表达式返回 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);
C.s= =t ;
D.t.equals (new String(“hello”));
【正确答案】A,D

(多选题)请阅读以下代码,不可以完善此段代码的正确选项是(  )
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



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

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

ArrayList和Vector的区别

你可能感兴趣的:(java)