2019年10月30日_java_1

考点1

java中,用( )关键字定义常量?

  • A final
  • B #define
  • C float
  • D const

正确答案: A

解析

final关键字可用于修饰类、变量和方法。final修饰变量时,表示该变量一旦获得了初始值就不可被改变,final既可以修饰成员变量也可以修饰局部变量、形参。

考点2

下面关于hibernate核心接口说明错误的是?

  • A Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象
  • B SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存
  • C Query 和Criteria 接口:执行数据库的查询
  • D Transaction 接口:管理事务

正确答案: B

解析

B选项中应该是Session接口而不是SessionFactory接口
1,Configuration接口:配置Hibernate,根据其启动Hibernate,创建SessionFactory对象;
2,SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建session对象,SessionFactory是
线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级二级缓存;
3,session接口:负责保存、更新、删除、加载和查询对象,是一个非线程安全的,避免多个线程共享一个session,是轻量级,一级缓存。
4,Transaction接口:管理事务。可以对事务进行提交和回滚;
5,Query和Criteria接口:执行数据库的查询。

考点3

执行如下代码段后,变量s1引用的字符串值是( )。
String s1 = “ABCD”;
String s2 = “1234”;
System.out.println(s1 + s2);

  • A ABCD
  • B 1234
  • C ABCD1234
  • D 1234ABCD

正确答案: A

解析

考点4

有以下类定义:
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();
}
}
运行后:

  • A I am a cat
  • B Animal能编译,Cat不能编译
  • C Animal不能编译,Cat能编译
  • D 编译能通过,但是没有输出结果

正确答案: B

解析

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意, 抽象类和普通类 的主要有三点区别:
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3) 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法 。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
在其他方面,抽象类和普通的类并没有区别。

考点5

以下代码执行的结果显示是多少()?
public class Demo{
public static void main(String[] args){
System.out.print(getNumber(0));
System.out.print(getNumber(1));
System.out.print(getNumber(2));
System.out.print(getNumber(4));
}

public static int getNumber(int num){
    try{
        int result = 2 / num;
        return result;
    }catch (Exception exception){
        return 0;
    }finally{
        if(num == 0){
            return -1;
        }
        if(num == 1){
            return 1;
        }
    }
}

}

  • A 0110
  • B -1110
  • C 0211
  • D -1211

正确答案: B

解析

finally中return语句会覆盖try-catch中的return语句

考点6

以下代码对其执行后,NumberList里的元素依次为:
List NumberList = new ArrayList();
NumberList.add(2);
NumberList.add(4);
NumberList.add(1);
NumberList.add(3);
NumberList.add(5);
for(int i =0;i<NumberList.size();++i){
int v = NumberList.get(i);
if(v%2==0){
NumberList.remove(v);
}
}
System.out.println(NumberList);

  • A 2,4,1,3,5
  • B 2,1,3,5
  • C 4,1,3,5
  • D 会出现越界情况

正确答案: D

解析

1.ArrayList删除元素后,剩余元素会依次向前移动,因此下标一直在变,size()也会减小;
2.这里的remove()方法调用的是remove(int index),而不是remove(Object o),因此删除的是index索引处的元素;
对于List而言,想要移除元素,要不然就用迭代器。要不然就从后往前删除。
万万不可从前往后删,会出现角标越界。

考点7

String str1 = “abc”,“abc”分配在内存哪个区域?

  • A 堆
  • B 栈
  • C 字符串常量区
  • D 寄存器

正确答案: C

解析

答案:C
用new创建的对象在堆区
函数中的临时变量在栈去
java中的字符串在字符串常量区

考点8

当编译并运行下面程序时会发生什么结果()
public class Bground extends Thread{
public static void main(String argv[]){
Bground b = new Bground();
b.run();
}
public void start(){
for(int i=0;i<10;i++){
System.out.println(“Value of i = “+i);
}
}
}

  • A 编译错误,指明run方法没有定义
  • B 运行错误,只鞥呢run方法没有定义
  • C 编译通过并输出0到9
  • D 编译通过,但无输出

正确答案: D

解析

对于线程而言,start是让线程从new变成runnable。run方法才是执行体的入口。
但是在Thread中,run方法是个空方法,没有具体实现。
Bground继承了Thread,但是没有重写run方法,那么调用run方法肯定是无输出。
首先继承Thread,然后调用run方法,bgroud并没有重写run方法,那么就是调用父类Thread的run方法。

考点9

下面选项中,哪些是interface中合法方法定义?()

  • A public void main(String [] args);
  • B private int getSum();
  • C boolean setFlag(Boolean [] test);
  • D public float get(int x);

正确答案: ACD

解析

在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。
JDK8及以后,允许我们在接口中定义static方法和default方法。
静态方法,只能通过接口名调用,不可以通过实现类的类名或者实现类的对象调用。default方法,只能通过接口实现类的对象来调用。
当然如果接口中的默认方法不能满足某个实现类需要,那么实现类可以覆盖默认方法。
JDK 1.9时,接口中的方法可以是private的

考点10

下面哪些属于JSP内置对象及方法?

  • A request
  • B out
  • C application
  • D config

正确答案: ABCD

解析

JSP内置对象有:
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)