java例题,Java练习题01

(单选题)下面哪些是正确的描述了关键字synhronized()

A.允许两个进程并行运行但其之间相互通信

B.保证任何时候只有一个线程访问一个方法或对象

C.保证两个或多个进程同时启动和结束

D.保证两个或多个线程同时启动和结束.

【正确答案】B

【答案解析】无

(单选题)下列String类的什么方法返回指定字符串的一部分

A.extractstring()

B.substring()

C.Substring()

D.Middlestring()

【正确答案】B

【答案解析】可以通过substring方法来截取某一段的字符串

(单选题)下列哪个关键字可以对对象加互斥锁( )

A.transient

B.synchronized

C.serialize

D.static

【正确答案】B

【答案解析】无

(单选题)下面描述函数重写错误的是( )

A.要有子类继承或实现。

B.子类方法的权限必须大于等于父类的权限。

C.父类中被private权限修饰符的方法可以被子类重写。

D.子类重写接口中的抽象方法,子类的方法权限必须是public的

【正确答案】C

【答案解析】无

(单选题)下列那条语句能编译通过( )

A.String String=”String”;

B.float float=”3.14”;

C.int int = 11;

D.int i= 1.1;

【正确答案】A

【答案解析】无

(单选题)下列关于Thread类提供的线程控制方法的说法中,错误的一项是?

A.在线程A中执行线程B的join()方法,则线程A等待直到B执行完成

B.线程A通过调用interrupt()方法来中断其阻塞状态

C.若线程A调用方法isAlive()返回值为true,则说明A正在执行中

D.currentThread()方法返回当前线程的引用

【正确答案】D

【答案解析】考察对于线程的理解

(单选题)对于下列代码: String str1="java";String str2="java"; String

str3=new String("java"); StringBuffer

str4=new StringBuffer("java");以下表达式的值为true的是

A.str1==str2;

B.str1==str4;

C.str2==str3;

D.str3==str4;

【正确答案】A

【答案解析】对于String类型的比较操作

(单选题)在JAVA中ArrayList类实现了可变大小的数组,方便遍历与随机访问元素。若获得了ArrayList类中fruitTypeList,则下列语句能实现判断列表中是否存在字符串“葡萄”的是( )

A.fruitTypeList.add(“葡萄”);

B.fruitTypeList.get(“葡萄”);

C.fruitTypeList.remove(“葡萄”);

D.fruitTypeList.contains(“葡萄”);

【正确答案】D

【答案解析】无

(单选题)设 a = 3,则表达式 (--a )<

A.16

B.8

C.24

D.12

【正确答案】B

【答案解析】无

(单选题)下列输出结果是( )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

【答案解析】无

(单选题)在JAVA中,以下哪个类的对象是以键值对的方式存储对象的( )

A.java.util.List

B.java.util.HashMap

C.java.util.ArrayList

D.java.util.LinkedList

【正确答案】B

【答案解析】无

(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )

A.NullPointerException

B.ClassCastException

C.FileNotFoundException

D.IndexOutOfBoundsException

【正确答案】C

【答案解析】无

(单选题)反射的作用以下描述正确是?

A.在运行中分析类的能力

B.在编译期查看对象

C.运行数组操作代码

D.以上都不对

【正确答案】A

(单选题)下面程序的运行结果是

String s1 = “abc”;

String s2 = new String(“abc”); System.out.println(s1==s2);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

(单选题)ArrayList类的底层数据结构是?

A.数组结构

B.链表结构

C.哈希表结构

D.红黑树结构

【正确答案】A

【答案解析】ArrayList集合的数据结构就是数组

(单选题)定义接口用什么关键字?( A )

A.interface

B.extends

C.implements

D.abstract

【正确答案】A

【答案解析】无

(单选题)关于Channel下列说法错误的是?

A.NIO中通道可以异步地读写.

B.NIO中既可以从通道中读取数据,又可以写数据到通道。

C.FileChannel是NIO中Channel的具体实现类.

D.SocketChannel不能通过TCP读写网络中的数据.

【正确答案】D

【答案解析】无

(单选题)关键字_____表示一个对象或者变量一旦赋值就不能修改?( )

A.static

B.final

C.constant

D.goto

【正确答案】B

【答案解析】无

(单选题)实现下列哪个接口,可以启用比较功能?

A.Runnable接口

B.Iterator接口

C.Serializable接口

D.Comparator接口

【正确答案】D

【答案解析】comparator接口是用来进行数据比较的

(单选题)变量命名规范说法正确的是( )

A.变量由字母、下划线、数字、$符号随意组成;

B.变量不能以数字作为开头;

C.A和a在java中是同一个变量;

D.不同类型的变量,可以起相同的名字;

【正确答案】B

【答案解析】无

(单选题)NIO与IO的区别?

A.IO是面向流的, NIO是面向缓冲区的。

B.IO是非阻塞的, NIO是面向流的.

C. NIO是面向流的, IO是面向缓冲区的。

D. NIO是阻塞的, IO是面向流的.

【正确答案】A

【答案解析】无

(单选题)提供 Java 存取数据库能力的包是( )

A.java.sql

B.java.awt

C.java.lang

D.java.swing

【正确答案】A

【答案解析】无

(单选题)以下程序段输出结果的是?

publicclassTest{

publicstaticvoidmain(String args[]){Stringstr="ABCDE";

str.substring(3);

str.concat("XYZ");

System.out.print(str);

}

}

A.DE

B.DEXYZ

C.ABCDE

D.CDEXYZ

【正确答案】C

【答案解析】对于String类常用的方法详解

(单选题)对于线程同步的特征理解错误的是?( )

A.每个对象都有多个的同步锁。

B.当一个线程开始执行同步代码块时,并不意味着必须以不间断的方式运行,进入同步代码块的线程可以执行Thread.sleep()或执行Thread.yield()方法,此时它并不释放对象锁,只是把运行的机会让给其他的线程。

C.在静态方法前面可以使用synchronized修饰符。

D.Synchronized声明不会被继承,如果一个用synchronized修饰的方法被子类覆盖,那么子类中这个方法不在保持同步,除非用synchronized修饰。

【正确答案】A

【答案解析】每个对象都有唯一的对象锁,而不是多个。

(单选题)给定如下JAVA程序代码片段,编译运行这段代码,结果是( )

HashMap map = new HashMap();

map.put(“name”,null);

map.put(“name”,”xiyangyang”);

System.out.println(map.get(“name”));

A.null

B.nullxiyangyang

C.xiyangyang

D.运行时出现异常

【正确答案】C

【答案解析】无

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

A.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。

B.如果此时线程池中的数量大于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。

C.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过 handler所指定的策略来处理此任务

D.如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。

【正确答案】B

【答案解析】正确答案B 应该是 如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。

(单选题)以下那个访问修饰符权限最大?( )

A.public

B.protected

C.private

D.默认修饰符

【正确答案】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; 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

【答案解析】无

(单选题)File表示文件信息操作,下面对File方法描述不正确的是?

A. createNewFile():创建文件

B.isFile() 判断当前file对象是否是一个文件

C.exists() 判断file对象表示的文件或目录是否存在

D.delete():删除file对象表示的目录或文件,如果要删除一个目录,那么此目录有内容才可以删除。

【正确答案】D

【答案解析】正确答案D,delete():删除file对象表示的目录或文件如果要删除一个目录,那么此目录必须没有内容才可以删除,如果有子目录有文件,那么不能删除不可直接删除多级目录,必须从最底层开始逐级删除

(单选题)当需要在文件中写入字符而不是字节时,最好选用下面的哪个类( )

A.java.io.PrintWriter

B.java.io.RandomAccessFile

C.java.io.PrintStream

D.java.io.OutputStream

【正确答案】A

【答案解析】无

(多选题)已知有如下代码,下列哪些表达式返回 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

【答案解析】无

(多选题)面向对象的特性()?( )

A.封装

B.继承

C.多态

D.多线程

【正确答案】A,B,C

【答案解析】无

(多选题)运算结果为true的是( )

A.A.( 5>3 ) ? !false:false

B.B.( false ) || ( 5 < 2 )

C.C.( true ) && ( 2 < 5 )

D.D. !( 2 < 5 )

【正确答案】A,C

【答案解析】无

(多选题)启动一个线程是用 run() 还是 start()? 下面说法错误的是()

A.启动一个线程是调用start()方法,

B.start()使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。

C.调用start()意味着线程就会立即运行。

D.run()方法不会产生必须退出的标志来停止一个线程。

【正确答案】C,D

【答案解析】启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

(多选题)对于异常(Exception),下列描述正确的是( )

A.异常的基类为 Exception,所有异常都必须直接或者间接继承它

B.异常可以用 try{…}catch(Exception e){…}来捕获并进行处理

C.如果某异常继承 RuntimeException,则该异常可以不被声明

D.异常可以随便处理,而不是抛给外层的程序进行处理

【正确答案】A,B,C

【答案解析】无

(多选题)选择Java语言中的基本数据类型( )

A. byte

B.Integer

C.long

D.String

【正确答案】A,C

【答案解析】无

(多选题)(abstract)关于 abstract,以下选项正确的是:()

A.A.abstract 类中可以没有 abstract 方法

B.B.abstract 类的子类也可以是 abstract 类

C.C.abstract 类不能创建对象,但可以声明引用

D.D.abstract 方法不能有方法体

【正确答案】A,B,C,D

【答案解析】无

(多选题)关于封装下面介正确的是( )

A.封装隐藏实现细节

B.封装提高重用性

C.封装提高安全性

D.只有被private修饰才叫封装

【正确答案】A,B,C

【答案解析】无

(多选题)在JAVA中,下列哪些说法是正确的( )

A.java源文件的扩展名为.java

B.写好的java源程序可以直接运行

C.编写的源程序必须先编译后才能运行

D.程序员可以读懂扩展名为.class的文件

【正确答案】A,C

【答案解析】无

(多选题)已知如下代码,执行后的输出是什么?( )

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

【正确答案】A,D

【答案解析】无

(多选题)下列各项可以用作标识符的是?( )

A.String

B.Int

C.finalize

D.$T$

【正确答案】A,B,C,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

【答案解析】无

(多选题)Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类 描述正确的是?

A.ArrayList和LinkedList均实现了List接口

B.ArrayList的查询速度比LinkedList快

C.添加和删除元素时,ArrayList的表现更佳

D.HashMap实现Map接口,它允许任何引用类型的键和值对象,并允许将null用作键或值

【正确答案】A,B,D

【答案解析】考察对于对象的理解

(多选题)关于 sleep()和 wait(),以下描述正确的一项是( )

A.A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法;

B.B.sleep 不释放对象锁,wait 放弃对象锁;

C.C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复;

D.D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态

【正确答案】A,B,C

【答案解析】无

(多选题)final关键字可以修饰以下哪几个?( )

A.方法

B.常量

C.类

D.变量

【正确答案】A,B,C

【答案解析】无

(多选题)下列数组的声明有哪些是对的?( )

A.int[] a;

B.int a[] = new int[3];

C.int[] a; a = {1,2,3,4,5};

D.int[] a = new int[3]{1,2,3};

【正确答案】A,B

【答案解析】无

(多选题)阅读以下代码,以下答案哪个不正确()

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.A.编译不通过

B.B.编译通过,运行时异常

C.C.编译运行都正常,输出 3

D.D.编译运行都正常,输出 4

【正确答案】A,B,D

【答案解析】无

(多选题) 关于String类的indexOf说法不正确的是?

A.返回指定字符在字符串中第一次出现的索引

B.返回指定子字符串在字符串第一次出现的索引

C.返回指定字符在字符串中最后一次出现的索引

D.返回指定子字符串在此字符串最后一次出现的索引

【正确答案】C,D

【答案解析】基础知识,考察Java中String类的indexOf()方法

(多选题)关于构造方法,下列说法正确的是:( )

A.每个类中都有至少一个构造方法

B.一个类中可以有多个构造方法

C.构造方法可以有返回值

D.构造方法可以有多个参数

【正确答案】A,B,D

【答案解析】无

(多选题)下列有关线程的说法错误的是( )

A.A.启动一个线程是调用start()方法,是线程所代表的虚拟处理机处于可运行状态,这意味着线程此时就会立即运行

B.B.notify()方法可以确切的唤醒某个处于等待状态的线程

C.C.wait()方法可以使一个线程处于等待状态,但不会释放所持有对象的锁

D.D.sleep()方法使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法时,需要捕捉InterruptedException异常

【正确答案】A,B,C

【答案解析】无

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值