牛客网专项练习(三)——20道选择题

思路分析:这一块是关于finally的用法,它是做异常处理的。并且无论异常是否被捕获,finally的代码一定会被执行。

思路分析:类与类成员的访问控制符总共有3个,分别是private、public、protected,访问控制级别有4个,分别是private、default、protected、public。而static它是一个静态关键字。

思路分析:一个表达式最终运算结果的类型取决于每一个变量的数据类型,具体转换如下面这个图片。

思路分析:抽象类需要子类继承,实现抽象方法,才能够实例化。而 final 修饰的类不能被继承,所以说final肯定不能修饰 抽象类。另外它也不能修饰接口。

思路分析:

因为成员变量x的修饰符为 static ,即被共享,对于所有的实例来说,它们访问的x为同一个x。

刚开始x=100;

调用hs1.x++ ,x为101;

调用hs2.x++ ,x为102;

调用hs1.x++, x为103 (此时hs1指向了一个新的HasStatic实例,但是依然访问的是同一个x);

调用HasStatic.x-- ,

x为102。

思路分析:这道题我搞错了,没有注意到前提条件是字符界面下。

字符界面下,前端用户输入、后台程序获取,都是字符流的传输,因此需要导入java.io包。

而java.util中的Scanner则是获取控制台的输入。

思路分析:A选项说的是循环语句的功能。

思路分析:

==  优先级高于三目运算符,先判断   true == true,此时返回为true,

这时表达式为 boolean b = true ? false : true ? false : true

此时三目运算符从右向左执行,true?false:true,返回false

这时表达式为  boolean b = true ? false : false

结果为:boolean b = false 。

思路分析:

A.构造方法每次都是构造出新的对象,不存在多个线程同时读写同一对象中的属性的问题,所以不需要同步 。

B.如果父类中的某个方法使用了 synchronized 关键字,而子类中也覆盖了这个方法,默认情况下子类中的这个方法并不是同步的,必须显示的在子类的这个方法中加上 synchronized 关键字才可。当然,也可以在子类中调用父类中相应的方法,这样虽然子类中的方法并不是同步的,但子类调用了父类中的同步方法,也就相当子类方法也同步了。

C.接口里面的变量为常量,其实际是 public static final ,接口里面的方法为抽象方法,其实际是public abstract。

D.容器保存的确实是对对象的引用,而非对象本身,这句话没有错误。

思路分析:局部变量在调用前必须初始化,题目中s并未进行初始化。

思路分析:String获取长度用的是length()方法,而数组类型我们直接用属性length获取长度,所以String[ ]数组类型我们应该用length获取长度。

因为原字符串不包含分隔符,所以直接返回原字符串,分割出来只有一个空的字符串数组,所以结果是1。

思路分析:

第三行,short类型转为byte类型出错

第四行,a1*a2结果为int类型,转为byte类型出错

思路分析:子类引用父类的静态字段,只会触发子类的加载、父类的初始化,不会导致子类初始化 。

思路分析:具体执行顺序为:

父类静态域——>子类静态域——>父类成员初始化——>父类构造块——>父类构造方法——>子类成员初始化——>子类构造块——>子类构造方法。

思路分析:只看到了A的错误,没有注意C。

1.final修饰变量,则等同于常量。

2.final修饰方法中的参数,称为最终参数。

3.final修饰类,则类不能被继承。

4.final修饰方法,则方法不能被重写。

5.final不能修饰抽象类。

6.final修饰的方法可以被重载,但不能被重写。

思路分析:

数组是一种引用数据类型 ,那么它肯定是继承Object类的 ,所以里面有equals() 方法,但是这个equals()方法没有被重写过 ,所以它并不是比较数组内的内容 。

使用Arrays.equals() 是比较两个数组中的内容。

猜你喜欢

转载自blog.csdn.net/Agonyq/article/details/104738039