今日错题(10.6)
作者:互联网
以下程序会输出什么:
public class Passer{
static final int X=5;
public static void main(String [] args){
new Passer().go(X);
System.out.print(X);
}
void go(int X){
System.out.print(X++);
}
}
55
56
65
66
这里我选了一个56,很简单一题,别忘记了final修饰的变量是无法再被修改的!!至于第一个5,因为x++是先赋值再进行运算。
以下对接口描述不正确的是( )
接口没有提供构造方法
接口允许多继承
接口中的属性默认使用public、static、final修饰
接口中的方法默认使用public、static、abstract修饰
答案是D,我选了一个B,接口是允许多继承的!!他不同于其他类,他可以这样子implement a,b,c。记住一句话,单继承多实现,先继承后实现。至于D记住接口中的方法是默认被public abstract修饰即可。
下面关于final变量描述错误的是:
final修饰的原生类型变量可以安全的在多线程环境下进行共享,不需要额外的同步开销
接口中声明的所有变量本身是final的
JVM和Java应用不会缓存final变量
可以向声明为final的集合对象增加,删除或者改变内容
答案是D
做到这里就不得不来复习一下final关键字了,感觉在这里踩过好多坑。
1.可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用。
2.(静态绑定)final也可以声明方法。方法前面加上final关键字,代表这个方法不可以被子类的方法重写。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
3.使用final来修饰的类不能被继承。
4.接口中声明的所有变量本身是final的
5.没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化
6.对于集合对象声明为final指的是引用不能被更改,但是你可以向其中增加,删除或者改变内容
7.final关键字提高了性能。JVM和Java应用都会缓存final变量。
8.final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
标签:变量,10.6,接口,public,错题,修饰,今日,声明,final 来源: https://blog.csdn.net/qq_51554527/article/details/120631312