目录
- 题目
- 1.下面叙述错误的是 ( )
- 2.java如何返回request范围内存在的对象?
- 3.以下代码将打印出
- 4.下列类定义中哪些是合法的抽象类的定义?()
- 5.以下代码段执行后的输出结果为
- 6.以下代码运行输出的是
- 总结
题目
选自牛客网
1.下面叙述错误的是 ( )
A.一个类可以有多个构造方法
B.最终类不能派生子类,最终方法不能被覆盖
C.如果一个类中没有定义构造方法,则Java在生成这个类的实例时不会调用构造方法。
D.数组一旦创建之后,就不能再改变其长度
正确答案:C
正确答案是C。
解释如下:
A.一个类可以有多个构造方法。这是正确的,因为一个类可以根据不同的参数列表拥有多个构造方法,这被称为构造方法的重载。这样,可以根据不同的初始化需求创建对象。
B.最终类不能派生子类,最终方法不能被覆盖。这也是正确的。在Java中,使用
final
关键字修饰的类不能被继承,即不能有子类。同样,使用final
关键字修饰的方法不能被子类覆盖。C. 如果一个类中没有定义构造方法,则Java在生成这个类的实例时不会调用构造方法。这是错误的。在Java中,如果没有显式定义任何构造方法,编译器会自动提供一个默认的无参构造方法。因此,即使没有定义构造方法,创建类的实例时仍然会调用构造方法,只是这个构造方法是编译器自动提供的默认构造方法。
D.数组一旦创建之后,就不能再改变其长度。这是正确的。在Java中,数组一旦被创建,其大小就是固定的,不能动态调整。如果需要一个可以动态调整大小的数据结构,通常会使用集合类,如
ArrayList
。
2.java如何返回request范围内存在的对象?
A.request.getRequestURL()
B.request.getAttribute()
C.request.getParameter()
D.request.getWriter()
正确答案:B 在Java ServletAPI中,
HttpServletRequest
对象包含了请求信息,其中getAttribute()
方法用于检索放在请求对象范围内的属性。这些属性可以通过setAttribute()
方法在同一个请求的不同部分中共享。如果您想要返回请求范围内存在的对象,应该使用request.getAttribute()
方法。因此,正确答案是Brequest.getAttribute()
。
3.以下代码将打印出
public static void main (String[] args) {
String classFile = “com.jd.”. replaceAll(“.”, “/”) + “MyClass.class”;
System.out.println(classFile); }
A.com. jd
B.com/jd/MyClass.class
C.///MyClass.class
D.com.jd.MyClass
正确答案是C。
在这段代码中,replaceAll方法的第一个参数是一个正则表达式,而.在正则表达式中表示匹配任意字符。因此,replaceAll(“.”,“/”)会将字符串中的所有字符(包括.)都替换为/。所以,原始字符串"com.jd.“会被替换为”//“,然后再加上"MyClass.class”,最终结果是"MyClass.class"。
4.下列类定义中哪些是合法的抽象类的定义?()
A.abstract Animal{abstract void growl();}
B.class abstract Animal{abstract void growl();}
C.abstract class Animal{abstract void growl();}
D.abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
正确答案:C
正确答案是 C。
C.abstract class Animal{abstract void growl();}
是正确的抽象类定义。在这个选项中,abstract class
关键字用于声明一个抽象类Animal
,并且abstract void growl();
声明了一个抽象方法growl()
。抽象类可以包含抽象方法,这些方法没有实现体,只有方法签名。其他选项的错误原因如下:
A.
abstract Animal{abstract void growl();}
错误,因为在 Java 中,抽象类的声明必须使用
abstract class
关键字,而不是单独的abstract
。B.
class abstract Animal{abstract void growl();}
错误,因为abstract
关键字不能放在类名后面。正确的做法是在class
前面加上abstract
。D.
abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
错误,因为抽象方法不能有方法体。在这个选项中,growl()
方法有一个方法体
System.out.println( “growl”);
,这是不允许的。抽象方法只能有方法签名,不能有实现。所以,只有选项 C 是正确的抽象类定义。
5.以下代码段执行后的输出结果为
public class Test {
public static void main(String args[]) {
int x = -5;
int y = -12;
System.out.println(y % x);
}
}
A.-1
B.2
C.1
D.-2
正确答案:D
6.以下代码运行输出的是
public class Person{
private String name = “Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A.输出:Person
B.没有输出
C.编译出错
D.运行出错
正确答案:C
官方解析:
父类private的成员变量,根据权限修饰符的访问控制范围,只有在类内部才能被访问,就算是他的子类,也不能访问。这里如果将Person p= new Child();改成Person p = new Person();代码依然无法通过编译,因为子类作用域中访问不到父类的私有变量,无法为其生成正确的字节码。另外,一个Java文件中不能有两个public类。
7.在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )
A.正确
B.错误
正确答案:B
总结
祈望此片星空呈现盛世之祥和景象,引领我们携手共进。