java错题
- 以下声明合法的是()
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的方法无方法体,需要被继承。所以,不能一起用
- 以下关于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.指出下面程序的运行结果,并分析
解析:正确答案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;
}
}