java错题mark_7

在开发中使用泛型取代非泛型的数据类型(比如用ArrayList取代ArrayList),程序的运行时性能会变得更好。()
正确答案: B 你的答案: A (错误)

正确
错误

泛型仅仅是java的语法糖,它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的.




这里写图片描述

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

BD
DB
C
编译错误

在调用子类构造器之前,会先调用父类构造器,当子类构造器中没有使用”super(参数或无参数)”指定调用父类构造器时,是默认调用父类的无参构造器,如果父类中包含有参构造器,却没有无参构造器,则在子类构造器中一定要使用“super(参数)”指定调用父类的有参构造器,不然就会报错。




在java7中,下列不能做switch()的参数类型是?
正确答案: D 你的答案: B C D (错误)

整型
枚举类型
字符串
浮点型

在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long、float、double类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
注意:String类型是Java7开始支持的。




已知如下类定义:
class Base {
public Base (){
//…
}
public Base ( int m ){
//…
}
public void fun( int n ){
//…
}
}
public class Child extends Base{
// member methods
}
如下哪句可以正确地加入子类中?
正确答案: D 你的答案: B D (错误)

private void fun( int n ){ //…}
void fun ( int n ){ //… }
protected void fun ( int n ) { //… }
public void fun ( int n ) { //… }

A,B,C都会提示如下信息:
Cannot reduce the visibility of the inherited method from Base
意思就是告诉你:不能降低从基类继承的方法的可见性。
那么,为什么不能降低可见性呢?
因为,每个子类的实例都应该是一个基类的有效实例,如果降低了方法的可见性,那么就相当于子类失去了一个父类的方法,这个时候,父类将不是一个有效的基类。
参考:http://stackoverflow.com/questions/1600667/why-cant-you-reduce-the-visibility-of-a-method-in-a-java-subclass




下列哪种说法是正确的?
正确答案: C 你的答案: A (错误)

实例方法可直接调用超类的实例方法
实例方法可直接调用超类的类方法
实例方法可直接调用本类的类方法
实例方法可直接调用其他类的实例方法

解释:
a.实例方法可以调用超类公有实例方法
b.实例方法可以直接调用超类的公有类方法
d.实例方法可以通过类名调用其他类的类方法




java 接口的修饰符可以为()
正确答案: D 你的答案: B (错误)

private
protected
final
abstract

接口不是类,是对类的一组需求描述。
接口不能提供实现方法,可以把接口看成是没有实例域的抽象类。
接口中的方法默认都是public abstract (void/int/..) method;
域默认都是public static final,即属性均为常量。




考虑下面这个简单的例子,让我们看看reflection是如何工作的。

import java.lang.reflect.*;
public class DumpMethods{
public static void main(String[] args) {
try {
Class c=Class.forName(args[0]);
Method m[]=c.getDeclaredMethods();
for (int i = 0; i < m.length; i++) {
System.out.println(m[i].toString());
}
} catch (Throwable e) {
System.err.println(e);
}
}
}
其中”c.getDeclaredMethods”的作用是:
正确答案: D 你的答案: C (错误)

取得类的公有方法对象
取得类的所有公有方法名称
取得类的所有方法对象
以上选项都不正确

public Method[] getDeclaredMethods()返回类或接口声明的所有方法,包括public, protected, default (package) 访问和private方法的Method对象,但不包括继承的方法。当然也包括它所实现接口的方法。

public Method[] getMethods()返回类的所有public方法,包括其继承类的公用方法,当然也包括它所实现接口的方法。




对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值和Survivor区总大小分别是()
正确答案: D 你的答案: C (错误)

5120m,1024m
5120m,2048m
10240m,1024m
10240m,2048m

-Xmx10240m:代表最大堆
-Xms10240m:代表最小堆
-Xmn5120m:代表新生代
-XXSurvivorRatio=3:代表Eden:Survivor = 3 根据Generation-Collection算法(目前大部分JVM采用的算法),一般根据对象的生存周期将堆内存分为若干不同的区域,一般情况将新生代分为Eden ,两块Survivor; 计算Survivor大小, Eden:Survivor = 3,总大小为5120,3x+x+x=5120 x=1024
新生代大部分要回收,采用Copying算法,快!
老年代 大部分不需要回收,采用Mark-Compact算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值