考点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”分配在内存哪个区域?
正确答案: 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对象)