Java选择题(二十三)

1.下列说法哪个正确( )

正确答案: C 你的答案: C (正确)
A.不需要定义类,就能创建对象
B.对象中必须有数据域和方法
C.数据域可以是基本类型变量,也可以是一个对象
D.数据域必须是基本类型变量

解释:
A.没有模板,怎么可能创建对象,创建对象必须先要定义类,常识
B.对象中的数据域和方法取决于该对象的类,类里面有就有,没有就没有
D.数据域不一定是基本类型,也可以是引用类型

2.关于对象成员占用内存的说法哪个正确?( )

正确答案: B 你的答案: B (正确)
A.同一个类的对象共用同一段内存
B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对

解释:当你创建一个新的实例对象时,它会得到一块新的内存空间。但是类中的静态成员变量是所有对象共有的,也就是在一片属于类的存储空间中,被所有对象共有。

3.下列InputStream类中哪个方法可以用于关闭流?

正确答案: B 你的答案: B (正确)
A.skip()
B.close()
C.mark()
D.reset()

解释:
inputstream的close方法用来关闭流
skip()用来跳过一些字节
mark()用来标记流
reset()复位流

4.以下语句输出的结果是()

	int value;
		value = 2;
		System.out.println(value);
		System.out.println(value++);
		System.out.println(value);

正确答案: B 你的答案: B (正确)
A.233
B.223
C.221
D.222

解释:
value++是先输出value再++

5.应用程序的main方法中有以下语句,则输出的结果( )

String s1=new String( ” xyz ” );
String s2=new String( ” xyz ” );
Boolean b1=s1.equals(s2);
Boolean b2=(s1==s2);
System .out.print(b1+ ” ” +b2); 

正确答案: A 你的答案: A (正确)
A.true false
B.false true
C.true true
D.false false

解释:
String s1=new String( ” xyz ” ); //创建了String类型的内容为xyz的s1对象
String s2=new String( ” xyz ” ); //创建了String类型的内容为xyz的s2对象
Boolean b1=s1.equals(s2); //比较s1对象和s2对象的内容相等,返回true。
Boolean b2=(s1==s2); //比较s1和s2两个对象的存储地址是否相等,明显两者分别存储在不同的地址,所以返回:false。

6.若所用变量都已正确定义,以下选项中,非法的表达式是()

正确答案: C 你的答案: C (正确)
A.a!= 4||b==1
B.’a’ % 3
C.’a’ = 1/3
D.’A’ + 32

解释:
'a’是个常数,不能赋值

7.假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()

public class A
{
    public int i;
    static String s;
    void method1(){}
    static void method2(){}
}

正确答案: C 你的答案: C (正确)
A.System.out.println(a.i);
B.a.method1();
C.A.method1();
D.A.method2();

解释:
静态成员和静态方法,可以直接通过类名进行调用;其他的成员和方法则需要进行实例化成对象之后,通过对象来调用。

8.以下哪个不属于JVM堆内存中的区域()?

正确答案: B 你的答案: B (正确)
A.survivor区
B.常量池
C.eden区
D.old区

解释:
leozam
jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。
常量池属于 PermGen(方法区)

9.//中可以嵌套//注释,也能嵌套//注释。

正确答案: B 你的答案: B (正确)
A.正确
B.错误

解释:
多行注释可以嵌套单行注释,单行不能嵌套多行
一个多行注释中嵌入多行注释,首先会匹配到第二个多行注释的*/

10.AccessViolationException异常触发后,下列程序的输出结果为( )

Static void Main(string[] args)  
{  
    try  
    {  
        throw new AccessViolationException();  
        Console.WriteLine("error1");  
    }  
    catch (Exception e)  
    {  
        Console.WriteLine("error2");  
    }  
    Console.WriteLine("error3");  
} 

正确答案: A 你的答案: A (正确)
A.error2 error3
B.error3
C.error2
D.error1

解释:
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。
2.try{}中有异常,则异常下面代码不执行。
3.finally{}中代码必执行。

11.在 main() 方法中给出的字节数组,如果将其显示到控制台上,需要( )。

正确答案: A 你的答案: A (正确)
A.标准输出流System.out.println()。
B.建立字节输出流。
C.建立字节输入流。
D.标准输入流System.in.read()。

解释:
out是java.lang.System类中的一个字段,out是“标准“”输出流,public static final PrintStream out,
out是PrintStream类型,PrintStream是包装流,你传入什么,他就输出什么

12.有变量int i = 0; int a = i++; int b = ++a; int c = a+b; int d = (a == 1)?b:c; 请问a和d的值分别是多少?( )。

正确答案: D 你的答案: D (正确)
A.2,4
B.1, 4
C.1, 2
D.1,1

解释:
i++是先执行其他的操作然后在执行i加一
++i是先执行i加一的操作, 然后再执行其他的操作
int a = i++; 意思是现将i赋值给a, 然后i加一, 故a = 0, i=1
int b = ++a; 意思是a先加一然后在将a赋值给b; 故a = 1, b = 1

String str = "";
System.out.print(str.split(",").length);

输出结果为:
正确答案: B 你的答案: B (正确)
A.0
B.1
C.出现异常

解释:
str.split(",")方法是把str字符串根据分割符","划分成一个字符串数组,如果str字符串中找不到分隔符",",则把整个str字符串放入字符串数组的第一个元素。因此str.split(",").length=1。

14.当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?

正确答案: B 你的答案: D (错误)
A.CountDownLatch
B.CyclicBarrier
C.Semaphore
D.Future

解释:
CountDownLatch 允许一个线程或多个线程等待特定情况,同步完成线程中其他任务。举例:百米赛跑,就绪运动员等待发令枪发动才能起步。
CyclicBarrierCountDownLatch一样都可以协同多个线程,让指定数量的线程等待期他所有的线程都满足某些条件之后才继续执行。

15.列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对
程序进行调试。

正确答案: C 你的答案: C (正确)
A.java
B.javadoc
C.jdb
D.javaprof

解释:
java,exe是java虚拟机
javadoc.exe用来制作java文档
jdb.exe是java的调试器
javaprof,exe是剖析工具

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风儿吹吹吹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值