Java错题复盘(二)

1.可将语句块或方法设为同步使用的语句是(A)
A synchronized
B static
C abstract
D final
synchronized 用于方法或者代码块前,使此方法或者代码块变成同步的
static 用于声明静态变量
abstract 用于定义抽象类或者方法
final 用于声明常量,即只能赋值一次的变量



下面代码执行后的结果为( C )
int main()
{
int sum=0;
int i=0,j=0;

for(j=0;j<6;j++)
{
if(j%2)continue;
sum++;
}

printf(“sum=%d”,sum);

return 0;
}
A.sum=1
B.sum=2
C.sum=3
D.其他几项都不对
0%2的值是0


11.关于抽象类的叙述正确的是?(A )
A.抽象类不可以实例化
B.抽象类就是一种特殊的接口
C.抽象类的方法都是抽象方法
D.抽象类的导出类一定不是抽象类
A选项中,抽象类不能实例化,这句是正确的。后面,抽象类不能申明为对象,是错误的。java中,接口和抽象类,都可以声明为对象,只需要在实例化的时候,用一个该接口/抽象类的实现类实例化就行了。即:
interface / abstract class obj = new class();其中,new后面的class是前面接口/抽象类的实现类。
B选项中,接口是一种特殊的抽象类。其中,成员变量都是默认public static final修饰的,方法都是public abstract修饰的,并且除了default和static的以外,只有声明,没有方法体。
C选项中,抽象类的方法,可以是抽象abstract的,也可以是普通的。就算全部是普通方法,也可以用abstract修饰。
D选项中,导出类,及子类,抽象类的子类可以是抽象的,也可以是普通的。



14.下列有关Thread的描述,哪个是正确的©?
A.启动一个线程的方法是:thread. run()
B.结束一个线程的通常做法是:thread. stop()
C.将一个线程标记成daemon线程,意味着当主线程结束,并且没有其它正在运行的非daemon线程时,该daemon线程也会自动结束。
D.让一个线程等待另一个线程的通知的方法是:thread. sleep()
启动一个线程是thread.start()方法
结束线程用的是thread.interrupt()方法,而stop()是强制结束线程,并不推荐使用
daemon线程是守护线程,当主线程结束时,守护线程会自动结束
一个线程等待另外一个线程的方法是thread.wait()方法



16.HashMap和HashTable的描述,错误的是(D)?
A.他们都实现了Map接口。
B.HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
C.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
D.通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
可以通过containsKey(key)和containsValue(value)判断对象中有没有key和value


17.尝试编译以下程序会产生怎么样的结果?(C)
public class MyClass {
long var;
public void MyClass(long param) { var = param; }//(1)
public static void main(String[] args) {
MyClass a, b;
a =new MyClass();//(2)
b =new MyClass(5);//(3)
}
}

A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行
1)虽然方法名和类名相同,不过由于void的修饰,所以它并不是一个构造方法,只是一个普通方法。因此题类仍然只有默认的无参构造器,(3)向构造方法中传入一个参数故而有误


16、 下面哪些不是Thread类的方法
A. start()
B. run()
C. exit()
D. getPriority()
里Thread类没有D方法


18、 给定以下方法声明,调用执行mystery(1234)的输出结果?

public void mystery (int x)
{
System.out.print(x % 10);
if ((x / 10) != 0)
{
mystery(x / 10);
}
System.out.print(x % 10);
}

A. 1441
B. 43211234
C. 3443
D. 12344321
这个题目是考递归,总共调用了4次mystery方法,注意:程序是从上往下执行的,所以当一个方法,调用另一个或本方法时,程序会等调用完毕以后在接着执行
1.第一次调用mystery方法,此时参数(x)为1234,进入第四行,x不变为x=1234,1234%10=4,输出 4
2.接着进入if语句,1234/10=123 !=0,进入if语句,此时x还是1234,接着第二次调用mystery方法(此时第一次调用的方法不会继续执行,会等第二次(本次)调用的方法执行完毕后继续执行),mystery(x/10),传入的参数(x)为123,然后第四行123%10=3,参数还是不变为123,输出 3
3.接着进入if语句,第三次调用mystery()方法(此时第二次调用的方法不会继续执行,会等第三次(本次)调用的方法执行完毕后继续执行),传入参数为123/10=12, x=12,接着第四行12%10=2,传入的参数值不会变,输出 2
4.然后进入if语句12/10!=0,第四次调用mystery()方法(此时第三次调用的方法不会继续执行,会等第四次调用的方法(本次)执行完毕后继续执行),传入的参数(x=1)为1,进入第四行1%10,输出 1
5.然后进入if语句1/10=0不满足if语句x/10 != 0,所以本次不会继续调用mystery方法,然后程序继续执行调用下面的输出参数为1,1%10,输出 1
6.然后第四次调用的方法执行结束然后返回第三次调用的方法继续执行,调用下面的输出,参数为12,x%10=2,输出 2
7.然后第三次调用的方法执行结束然后返回第二次调用的方法继续执行,此时调用下面的输出,参数为123,x%10=3,输出 3
8.最后第二次调用的方法执行结束然后回第一次调用的方法继续执行,此时调用下面的输出,参数为1234,x%10=4,输出 4
9.第一次调用方法结束



22、 以下关于Integer与int的区别错误的是 D
A. int是java提供的8种原始数据类型之一
B. Integer是java为int提供的封装类
C. int的默认值为0
D. Integer的默认值为1
包装类默认为null

35、 以下协议属于 TCP/IP 协议簇中网络层的是(B)
A. SNMP
B. IGMP
C. UDP
D. DNS
A.SNMP属应用层
B.IGMP是负责IP组播成员管理的协议
C.UDP属于传输层
D.DNS属于应用层



42、 下列哪个类的声明是正确的?B
A. protected private number;
B. public abstract class Car{}
C. abstract private move(){}
D. abstract final class HI{}
抽象类的目的就是为了让子类实现他本身的方法
final修饰的东西不能被更改或继承
abstract存在的意义是为了让子类实现方法而存在,final的意义是不让子类进行修改。两者存在互斥关系



62、 以下对异常的描述不正确的有(C)
A. 异常分为Error和Exception
B. Throwable是所有异常类的父类
C. Exception是所有异常类父类。
D. Exception包括RuntimeException和RuntimeException之外的异常。

在这里插入图片描述
所有的异常都是由Throwable继承而来


73、 应用NAT后会带来哪些影响( A )
A. 不利于分片
B. 不利于数据加密
C. 需要重新计算IP分组校验和
D. 可以解决IPv4地址耗尽问题
关于A,在应用NAT后,当NAT网关收到服务端发的IP分片时,由于只有首个IP分片中包含传输层信息(端口,协议等),后续的IP分片到NAT网关时,NAT网关将无法直接根据本分片信息还原出原来的内网IP,需要进行特殊处理甚至重组分片(虚拟重组,真正的重组是在客户端上进行),这将对网络的时延和带宽产生影响。
B和C应该没什么疑问。
对于D,应该错在解决,感觉应该换成缓解。



75、 在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( )。
A. 标准输出流System.out.println()。
B. 建立数据字节输出流
C. 建立数据字节输入流
D. 标准输入流System.in.read()。

文件----->java程序 :输入(input) java程序-------->文件:输出(out)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值