Java专项练习7

1.为 AB 类的一个无形式参数无返回值的方法 method 书写方法头,使得使用类名 AB 作为前缀就可以调用它,该方法头的形式为( )。
static void method( )
public void method( )
final void method( )
abstract void method( )
解析:

static用来修饰类或类的成员,这时不需要创建实例就能访问(而且不能实例化),在被调用的时候自动实例化,且在内存中产生一个实例。当含有静态成员的非静态类实例化出对象后,这些对象公用这些静态成员,通过类名或对象名都能访问它们
2.映射 (Map) 的key和value都不可重复。( )
正确答案: B
正确
错误
解释:

Map接口有两个经典的子接口分别是 Hashtable 和 Hashmap。
Hashtable 线程安全,不支持key和value为空,key不能重复,但value可以重复,不支持key和value为null。
Hashmap 非线程安全,支持key和value为空,key不能重复,但value可以重复,支持key和value为null。
由于题目否定Map集合中的value都不可重复,这是错误的。
3.有以下类定义:

abstract class Animal{
    abstract void say();
}
public class Cat extends Animal{
    public Cat(){
        System.out.printf("I am a cat");
    }
    public static void main(String[] args) {
        Cat cat=new Cat();
    }
}

运行后:
正确答案: B
I am a cat
Animal能编译,Cat不能编译
Animal不能编译,Cat能编译
编译能通过,但是没有输出结果
解析:

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
在其他方面,抽象类和普通的类并没有区别。
4.指出下来程序运行的结果是
在这里插入图片描述
正确答案: B
good and abc
good and gbc
tst ok and abc
tst ok and gbc
解释:

在这里插入图片描述
5.如果希望监听TCP端口9000,服务器端应该怎样创建socket?
正确答案: B
new Socket(“localhost”,9000);
new ServerSocket(9000);
new Socket(9000);
new ServerSocket(“localhost”,9000);
解析:

ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。
Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。

socket和servletSocket的交互如下图所示:
在这里插入图片描述
6.what is the result of the following code?

enum AccountType
{
    SAVING, FIXED, CURRENT;
    private AccountType()
    {
        System.out.println(“It is a account type”);
    }
}
class EnumOne
{
    public static void main(String[]args)
    {
        System.out.println(AccountType.FIXED);
    }
}

正确答案: C
Compiles fine and output is prints”It is a account type”once followed by”FIXED”
Compiles fine and output is prints”It is a account type”twice followed by”FIXED”
Compiles fine and output is prints”It is a account type”thrice followed by”FIXED”
Compiles fine and output is prints”It is a account type”four times followed by”FIXED”
Compilation fails
解析

枚举类在后台实现时,实际上是转化为一个继承了java.lang.Enum类的实体类,原先的枚举类型变成对应的实体类型,上例中AccountType变成了个class AccountType,并且会生成一个新的构造函数,若原来有构造函数,则在此基础上添加两个参数,生成新的构造函数,如上例子中:

private AccountType(){ System.out.println(“It is a account type”); }

会变成:

private AccountType(String s, int i){
    super(s,i); System.out.println(“It is a account type”); }

而在这个类中,会添加若干字段来代表具体的枚举类型:

public static final AccountType SAVING;
public static final AccountType FIXED;
public static final AccountType CURRENT;

而且还会添加一段static代码段:

static{
    SAVING = new AccountType("SAVING", 0);
    ...  CURRENT = new AccountType("CURRENT", 0);
   $VALUES = new AccountType[]{
         SAVING, FIXED, CURRENT
    } }

以此来初始化枚举中的每个具体类型。(并将所有具体类型放到一个$VALUE数组中,以便用序号访问具体类型)
在初始化过程中new AccountType构造函数被调用了三次,所以Enum中定义的构造函数中的打印代码被执行了3遍。
编辑于 2016-09-14 15:29:42
7.在java中重写方法应遵循规则的包括()
正确答案: B C
访问修饰符的限制一定要大于被重写方法的访问修饰符
可以有不同的访问修饰符
参数列表必须完全与被重写的方法相同
必须具有不同的参数列表
解析:

https://www.runoob.com/java/java-override-overload.html
8.关于JSP生命周期的叙述,下列哪些为真?
正确答案: A C
JSP会先解释成Servlet源文件,然后编译成Servlet类文件
每当用户端运行JSP时,jsp init()方法都会运行一次
每当用户端运行JSP时,jsp service()方法都会运行一次
每当用户端运行JSP时,jsp destroy()方法都会运行一次
解析:

Jsp只会在客户端第一次发请求的时候被编译,之后的请求不会再编译,同时tomcat能自动检测jsp变更与否,变更则再进行编译。
第一次编译并初始化时调用: init() ;销毁调用: destroy() 。在整个jsp生命周期中均只调用一次。
service()方法是接收请求,返回响应的方法。每次请求都执行一次,该方法被HttpServlet封装为doGet和doPost方法
9.Java类Demo中存在方法func0、func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )

public class Demo{
  float func0()
  {
    byte i=1;
    return i;
  }
  float func1()
  {
    int i=1;
    return;
  }
  float func2()
  {
    short i=2;
    return i;
  }
  float func3()
  {
    long i=3;
    return i;
  }
  float func4()
  {
    double i=4;
    return i;
  }
}

正确答案: A D
func1
func2
func3
func4
解析:

java有八种基本数据类型分别是六种数字类型(四种整数型,俩种浮点类型)一种布尔型,还有一种字符类型。
byte, short, int, long, float, double, boolean, char
在这里插入图片描述
10.局部内部类可以用哪些修饰符修饰?
正确答案: C D
public
private
abstract
final
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40817827/article/details/89838505