java错题

  1. 以下声明合法的是()
    A. default String s;
    B.public final static native int w();
    C.abstract double d;
    D.abstract final double hyperboilcCosine;(hyperboilcCosine译为双曲余弦函数);

解析:正确答案B
A:deafult是默认的访问权限修饰符,一般不写,如果写了编译器无法识别,只有在switch中认识
C:abstract不能声明变量
D:final修饰的方法不能被重写,类不能被继承,而abstract的方法无方法体,需要被继承。所以,不能一起用

  1. 以下关于final关键字说法错误的是()
    A. final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性。
    B. final修饰的类肯定不能被继承。
    C. final修饰的方法不能被重写。
    D. final修饰的变量不允许被再次赋值

解析:正确答案A

Final不能修饰抽象类和接口,详见添加链接描述

3.在调用方法时,若要使方法改变实参的值,可以()
A、用基本数据类型作为参数
B、用对象作为参数
C、A和B都对
D、A和B都不对

解析:正确答案B

实参: 有参数的方法中,参数是实参
基本数据类型的实参,调用方法后,值不变
引用【数组和对象】的实参,调用方法后,值会变,详见添加链接描述

4.以下代码执行的结果显示是多少(A)
public class Inc {
public static void main(String args[]){
Inc inc = new Inc();
int i = 0;
inc.fermin(i);
i = i++;
System.out.println(i);
}
void fermin(int i){
i++;
}
}
A、0 B、1
C、2 D、3。

解析:正确答案A

基本数据类型调用方法后,值不变 i=0
i=i++,先赋值再增加 i=0,同上题

5.指出下面程序的运行结果,并分析
java错题

解析:正确答案1a2b2b
分析:

  • 实例化b类的1个对象,b继承a。

  • 首先加载a的静态块,再加载自身静态块,再加载父类构造,再加载自身构造。

  • 再次生成b类的1个对象时,因为父类【a】和子类【b】静态块已经加载过一次,所以不再加载,只依次加载a和b的构造方法。

  • [6 ] 未解决

6.请统计各空气质量监测站点PM2.5的最高值
PM2.5监控程序
北京某日空气质量PM2.5监测站点全程检测的数据如下表所示,一个监测站点有可能在一天内多次采集,因此同一个站点可能有多个数据:

监测站点(positions数组) PM2.5浓度 (datas数组)
农展馆 423
东四 378
丰台花园 406
天坛 322
海淀区万柳 398
官园 406
通州 366
昌平镇 248
怀柔镇 306
定陵 231
前门 422
永乐店 368
古城 268
昌平镇 423
怀柔镇 267
定陵 377
前门 299
永乐店 285
秀水街 277
农展馆 348
东四 356
丰台花园 179
天坛 277
海淀区万柳 270
官园 268
通州 315

public String reporting(String[] positions, int[] datas) {
//实现代码
for(int i=0 ; i<positions.length;i++){
for(int j = 1;j< positions.length;j++){
int f = datas[i];
if(positions[i].equal(positions[j])){
if(datas[i]< datas[j]){
f = data[j];
};
}
}
reporting[i] = positions[i]+”:”+f;

}
}