题目选自牛客网
1.如果一个方法或变量是"private"访问级别,那么它的访问范围是:
A.在当前类,或者子类中
B.在当前类或者它的父类中
C.在当前类,或者它所有的父类中
D.在当前类中
正确答案:D
官方解析:
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
· default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
· private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
· public : 对所有类可见。使用对象:类、接口、变量、方法
· protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
我们可以通过以下表来说明访问权限:
修饰符
当前类
同一包内
子孙类(同一包)
子孙类(不同包)
其他包
public
Y
Y
Y
Y
Y
protected
Y
Y
Y
Y/N
N
default
Y
Y
Y
N
N
private
Y
N
N
N
N
综上所述,本题正确答案为D。
单选题
2.以下哪个事件会导致线程销毁?()
A.调用方法sleep()
B.调用方法wait()
C.start()方法的执行结束
D.run()方法的执行结束
正确答案:D
在Java中,线程的生命周期包括创建、就绪、运行、阻塞和销毁几个状态。线程销毁通常发生在run()方法执行结束之后。当run()方法执行完毕,线程就会结束生命周期,进行销毁状态。
单选题
3.假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};下列选项中返回false的语句是?
A.s.equals (t);
B.t.equals (c);
C.s==t;
D.t.equals (new String ("hello"));
正确答案:B
参考答案:首先==与equals是有明显区别的。 ==强调栈中的比较,可以理解为地址比较 equals强调对象的内容比较 String s=“hello”;会在栈中生成hello字符串,并存入字符串常量池中。 String t=“hello” ;创建时,会在字符串常量池中寻找,当找到需要的hello时,不进行字符串的创建,引用已有的。 所以,s==t返回true,s.equals(t)也是true。 char c[]={'h','e','l','l','o'}; c==s这个是不存在的,==两边类型不同 t.equals(c)这个语句在anObject instanceof String这步判断不会通过,也就是cha[] 压根不能与String相比较,类型不是相同的。返回false
单选题
4.关于访问权限说法正确 的是 ? ( )
A.外部类前面可以修饰public,protected和private
B.成员内部类前面可以修饰public,protected和private
C.局部内部类前面可以修饰public,protected和private
D.以上说法都不正确
正确答案:B
在 Java 中,访问权限修饰符可以用于控制类和成员的可见性。下面是各个选项的解释:
A. 外部类前面可以修饰 public 和 protected,但不能使用 private。因为 private 类无法被任何其他类访问,这使得外部类失去了作为外部实体的意义。
B. 成员内部类(也称为内部类)是定义在另一个类的内部的类。成员内部类可以有 public、protected、默认(不写访问修饰符)和 private 访问权限。因此,选项 B 是正确的。
C. 局部内部类是定义在一个方法内的类,它们与局部变量类似,只在该方法的作用域内可见。局部内部类不能有访问修饰符,因为它们的作用域限制在声明它们的方法内
单选题
5.下面赋值语句中正确的是()
A.double d=5.3e12;
B.float f=11.1;
C.int i=0.0;
D.Double oD=3;
正确答案:A