叨叨两句

  1. 搞定

牛客网——java专项练习036

1

抽象类方法的访问权限默认都是public。( )

正确答案: B 你的答案: A (错误)

  1. 正确
  2. 错误
关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default

关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的

2


正确答案: C

  1. 010 2123012 3434
  2. 01201 340124 2334
  3. 0012314 01223344
  4. 12345 12345 12345
每个线程输出0,1,2,3,4,’空格, 输出空格前必有线程输出了0-4,所以选C

3

下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换:

byte[] src,dst;

正确答案: B

  1. dst=String.frombytes(src,”GBK”).getbytes(“UTF-8”)
  2. dst=new String (src,”GBK”).getbytes(“UTF-8”)
  3. dst=new String (”GBK”, src,) getbytes()
  4. dst=String.encode(String.decode(src,”GBK”)), “UTF-8”)
String (byte[] bytes, String charsetName) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 
1
String.getBytes(Charset charset)  使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

4

有关下述Java代码描述正确的选项是____。

public class TestClass {
private static void testMethod(){

    System.out.println("testMethod");

}
public static void main(String[] args) {

    ((TestClass)null).testMethod();

}
}
正确答案: F

  1. 编译不通过
  2. 编译通过,运行异常,报NullPointerException
  3. 编译通过,运行异常,报IllegalArgumentException
  4. 编译通过,运行异常,报NoSuchMethodException
  5. 编译通过,运行异常,报Exception
  6. 运行正常,输出testMethod
我来总结下大家的分析。
1)此处是类对方法的调用,不是对象对方法的调用。
2)方法是static静态方法,直接使用"类.方法"即可,因为静态方法使用不依赖对象是否被创建。
null可以被强制类型转换成任意类型(不是任意类型对象),于是可以通过它来执行静态方法。
3)非静态的方法用"对象.方法"的方式,必须依赖对象被创建后才能使用,若将testMethod()方法前的static去掉,则会报 空指针异常 。此处也验证了2)的观点
当然,不管是否静态方法,都是已经存在的,只是访问方式不同。

Wall_Breaker
2.1k 声望1.2k 粉丝

生死之间,就是我的跃迁之路,全程记录,欢迎见证