java选择题

1下列关于继承的哪项叙述是正确的?
A 在java中类允许多继承
B 在java中一个类只能实现一个接口
C 在java中一个类不能同时继承一个类和实现一个接口
D java的单一继承使代码更可靠

正确答案: D

2 以下不属于构造方法特征的是()

正确答案: D
A 构造方法名与类名相同
B 构造方法不返回任何值,也没有返回类型
C 构造方法在创建对象时调用,其他地方不能显式地直接调用
D 每一个类只能有一个构造方法

3 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?()
正确答案: D
A KeyEvent
B AxtionEvent
C ItemEvent
D MouseEvent

4 以下哪个接口的定义是正确的?( )

正确答案: D
A interface B
{ void print() { } ;}
B interface B
{ static void print() ;}
C abstract interface B extends A1, A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
D interface B
{ void print();}t

5.关于Float,下列说法错误的是()
正确答案: C
A Float是一个类
B Float在java.lang包中
C Float a=1.0是正确的赋值方法
D Float a= new Float(1.0)是正确的赋值方法

解释

  1. Float是类,float不是类.
  2. 查看JDK源码就可以发现Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
  3. Float正确复制方式是Float f=1.0f,若不加f会被识别成double型,double无法向float隐式转换.
  4. Float a= new Float(1.0)是正确的赋值方法,但是在1.5及以上版本引入自动装箱拆箱后,会提示这是不必要的装箱的警告,通常直接使用Float f=1.0f.

6 以下代码的输出的正确结果是

public class Test {
public static void main(String args[]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}


正确答案: D
A 24
B 16
C 15
D 8

7 如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是()

正确答案: D
A 2530
B 55
C 2052055
D 25255

8 以下对继承的描述错误的是()
正确答案: A
A Java中的继承允许一个子类继承多个父类
B 父类更具有通用性,子类更具体
C Java中的继承存在着传递性
D 当实例化子类时会调用父类中的构造方法果按字符串相加得到25255

9 以下对继承的描述错误的是()
正确答案: A
A Java中的继承允许一个子类继承多个父类
B 父类更具有通用性,子类更具体
C Java中的继承存在着传递性
D 当实例化子类时会调用父类中的构造方法

10 静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。( )

正确答案: A
A 正确
B 错

11 以下程序的运行结果是:( )

TreeSet<Integer> set = new TreeSet<Integer>();
 TreeSet<Integer> subSet = new TreeSet<Integer>();
 for(int i=606;i<613;i++){
 if(i%2==0){
 set.add(i);
 }
 }
 subSet = (TreeSet)set.subSet(608,true,611,true);
 set.add(629);
 System.out.println(set+" "+subSet);

正确答案: C
A 编译失败
B 发生运行时异常
C [606, 608, 610, 612, 629] [608, 610]
D [606, 608, 610, 612, 629] [608, 610,629]

12 下列关于修饰符混用的说法,错误的是( )

正确答案: D
A abstract不能与final并列修饰同一个类
B abstract类中不应该有private的成员
C abstract方法必须在abstract类或接口中
D static方法中能直接调用类里的非static的属性

13 如下代码的 结果是什么 ?

class Base {
    Base() {
    System.out.print("Base");
    }
}
public class Alpha extends Base {
    public static void main( String[] args ) {
        new Alpha();
        //调用父类无参的构造方法
        new Base();
    }
}

正确答案: B
A Base
B BaseBase
C 编译失败
D 代码运行但没有输出
E 运行时抛出异常

14 假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),最终的输出结果是什么?

private List<Integer> nums;

//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size()) {
if (nums.get(k).equals(zero))
nums.remove(k);
k++;
}
}

正确答案: D
A [3, 5, 2, 4, 0, 0, 0, 0]
B [0, 0, 0, 0, 4, 2, 5, 3]
C [0, 0, 4, 2, 5, 0, 3, 0]
D [0, 4, 2, 5, 3]

解释List中的 get ( i )指的是获取下标(索引)为 i 的元素,也就是第 i+1 个元素

本题:

zero==0,如果get(k)==0,执行remove(k); ;

​ size8 ; k0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()–;

此时集合元素为 :**[**0,4,2,5,0,3,0]

​ size7; k1,因此get(1)==4 !=0 , 不执行remove(); k++,因没有删除元素,size()不变,

此时集合元素为:**[**0,4,2,5,0,3,0]

​ size7;k2,k++;

​ size7;k3,k++;

​ size7;k4,get(4)==0,remove(4) ; k++, size()–;

此时集合元素为: **[**0,4,2,5,3,0]

​ size6;k5,get(5)==0,remove(5);k++, size()–;

此时集合元素为: **[**0,4,2,5,3]

​ size5; k6 ;退出循环;最终输出此时集合元素为 **[**0,4,2,5,3]

一般更改删除集合元素,使用iterator()迭代器,不推荐使用这种;

15 int i, sum=0;
for(i=0;i<10;++i,sum+=i); i 的最终结果是?
正确答案: A
A 10
B 9
C 11
D 以上答案都不正确

16 设m和都是int类型,那么以下for循环语句的执行情况是( )

for (m = 0, n = -1; n = 0; m++, n++)
n++;

正确答案: D
A 循环体一次也不执行 循环体执行一次 是无限循环 有限次循环 循环结束判断条件不合法 运行出错
B 循环体执行一次 是无限循环
C 有限次循环
D 循环结束判断条件不合法

17 以下哪个I / O类可以附加或更新文件
正确答案: A
A RandomAccessFile()
B OutputStream()
C DataOutputStream()
D None of the above

18 下列叙述中,错误的是( )

正确答案:
A File类能够存储文件属性
B File类能够读写文件
C File类能够建立文件
D File类能够获取文件目录信息

File类的一下常用方法和说明

1.访问文件名相关方法:

  • String getName(); 返回此File对象所表示的文件名和路径名(如果是路径,则返回最后一级子路径名)。

  • String getPath(); 返回此File对象所对应的路径名。

  • File getAbsolutePath(); 返回此File对象所对应的绝对路径名。

  • String getParent(); 返回此File对象所对应目录(最后一级子目录)的父路径名。

  • boolean renameTo(File newName); 重命名此File对象所对应的文件或目录,如果重命名成功,则返回true:否则返回false.(A)

2.文件检测相关方法

  • boolean exists(); 判断File对象所对应的文件或目录是否存在。
  • boolean canWrite(); 判断File对象所对应的目录或文件是否可写。
  • boolean canRead(); 判断File对象所对应的目录或文件是否可读。
  • boolean isFile(); 判断File对象所对应的是否是文件,而不是目录。
  • boolean isDirectory(); 判断File对象所对应的是否是目录,而不是文件。
  • boolean isAbsolute(); 判断File对象所对应的文件或目录是否是绝对路径。该方法消除了不同平台的差异,可以直接判断File对象是否为绝对路径。在UNIX/Linux/BSD等系统上,如果路径名开头是一条斜线(/),则表明该File对象对应一个绝对路径;在Windows等系统上,如果路径开头是盘符,则说明它是绝对路径。

3.获取常规文件信息

  • long lastModified(); 返回文件最后修改时间。
  • long length(); 返回文件内容的长度。

4.文件操作相关的方法

  • boolean createNewFile(); 当此File对象所对应的文件不存在时,该方法将新建的一个该File对象所指定的新文件,如果创建成功则返回true;否则返回false.©
  • boolean delete(); 删除File对象所对应的文件或路径。
  • static File CreateTempFile(String prefix,String suffix);在默认的临时文件目录创建一个临时空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名。这是一个静态方法,可以直接通过File来调用。preFix参数必须至少是3个字节长。建议前缀使用一个短的、有意义的字符串。建议前缀使用一个短的、有意义的字符串,比如”hjb“ 或”main”. suffix参数可以为null,在这种情况下,将使用默认的后缀”.tmp”.
  • static File CreateTempFile(String prefix,String suffix,File directory);在directory所指定的目录中创建一个临时空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名。这是一个静态方法,可以直接通过File来调用。
  • void deleteOnExit(); 注册一个删除钩子,指定当Java虚拟机退出时,删除File对象随对应的文件和目录。

5.目录操作相关方法**(D)**

  • boolean mkdir(); 试图创建一个File对象所对应的目录,如果创建成功,则返回true;否则返回false. 调用该方法时File对象必须对应一个路径,而不是一个文件。
  • String[] list(); 列出File对象的所有子文件名和路径名,返回String数组。
  • File[] listFiles(); 列出File对象的所有子文件和路径,返回File数组。
  • static File[] listRoots(); 列出系统所有的根路径。这是一个静态方法,可以直接通过File类来调用。

19 下列代码执行结果为()

public static void main(String args[])throws InterruptedException{
            Thread t=new Thread(new Runnable() {
                public void run() {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                    System.out.print("2");
                }
            });
            t.start();
             

            t.join();
            System.out.print("1");
        }

正确答案: A
A 21
B 12
C 可能为12,也可能为21
D 以上答案都不对

20 对于文件的描述正确的是( )

正确答案: D
A 文本文件是以“.txt”为后缀名的文件,其他后缀名的文件是二进制文件。
B File类是Java中对文件进行读写操作的基本类。
C 无论文本文件还是二进制文件,读到文件末尾都会抛出EOFException异常。
D Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。

解释A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",".log",各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。

B.File类是对文件整体或者文件属性操作的类,例如创建文件、删除文件、查看文件是否存在等功能,不能操作文件内容;文件内容是用IO流操作的。

C.当输入过程中意外到达文件或流的末尾时,抛出EOFException异常,正常情况下读取到文件末尾时,返回一个特殊值表示文件读取完成,例如read()返回-1表示文件读取完成。

D.上面A选项已经说了,不论是文本文件还是二进制文件,在计算机中都是以二进制形式存储的,所以都当做二进制文件读取。

21 看以下代码:
文件名称:forward.jsp

<html>  
     <head><title> 跳转  </title> </head> 
     <body>  
         <jsp:forward page="index.htm"/>     
     </body>
 </html> 

如果运行以上jsp文件,地址栏的内容为
正确答案: A
A http://127.0.0.1:8080/myjsp/forward.jsp
B http://127.0.0.1:8080/myjsp/index.jsp
C http://127.0.0.1:8080/myjsp/index.htm
D http://127.0.0.1:8080/myjsp/forward.htm

解释redirect:请求重定向:客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失。举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先去***局办(index.html)临时身份证,这时你就会走出银行,自己前往***局,地址栏变为index.html.

forward:请求转发:服务器行为,地址栏不变。举例:你把钱包落在出租车上,你去警察局(forward.jsp)报案,警察局说钱包落在某某公司的出租车上(index.html),这时你不用亲自去找某某公司的出租车,警察局让出租车自己给你送来,你只要在警察局等就行。所以地址栏不变,依然为forward.jsp

22 当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
正确答案: A
A CountDownLatch
B CyclicBarrier
C Semaphore
D Future

23 关于AWT和Swing说法正确的是?

正确答案: D
A Swing是AWT的子类
B AWT在不同操作系统中显示相同的风格
C AWT不支持事件类型,Swing支持事件模型
D Swing在不同的操作系统中显示相同的风格

24 面向对象的三个基本元素是什么?
正确答案: A B D
A 封装
B 继承
C 重载
D 多态

25 下面哪些语法结构是正确的?
正确答案: A C
A public class A extends B implements C
B public class A implements A B
C public class A implements B,C,D
D public implements B

26 关于抽象类与接口,下列说法正确的有?

正确答案: A C
A 优先选用接口,尽量少用抽象类
B 抽象类可以被声明使用,接口不可以被声明使用
C 抽象类和接口都不能被实例化。
D 以上说法都不对

27 String str = new String(“abc”),“abc”在内存中是怎么分配的?
正确答案: A C
A 堆
B 栈
C 字符串常量区
D 寄存器

28 在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯();当N=9时呢?
正确答案: B C
A 11
B 144
C 55
D 89

29 下面有关java classloader说法正确的是()?
正确答案: A C D
A ClassLoader就是用来动态加载class文件到内存当中用的
B JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关
C ClassLoader使用的是双亲委托模型来搜索类的
D Java默认提供的三个ClassLoader是Boostrap ClassLoader,Extension ClassLoader,App ClassLoader

30 关于java集合下列说法不正确的有哪些()
正确答案: A B D
A HashSet 它是线程安全的,不允许存储相同的对象
B ConcurrentHashMap 它是线程安全的,其中存储的键对象可以重复,值对象不能重复
C Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D ArrayList线程安全的,允许存放重复对象

31关于Java的一些概念,下面哪些描述是正确的:( )
正确答案: B F
A 所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
B 通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
C java中所有的数据都是对象
D Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
E Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
F Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzsaixuexi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值