其他分享
首页 > 其他分享> > 今日错题(10.6)

今日错题(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