一、 基础知识部分(每题3分,共60分)
- 抽象类和接口的区别
答案 |
1) 接口:inerface 纯抽象的类,里面不能有任何实现的成员;接口是某一类通用功能的描述。和子类没有必然的联系。 2) 抽象类:abstract 实现和非实现成员都可以有;抽象类是子类的基类,它是子类的通用特征的描述 |
- JDBC调用数据库的基本步骤
- forward 和redirect的区别是什么?
- 请描述servlet的生命周期
答案 |
实例化—初始化—服务—销毁—不可用 |
- equals和==的区别?
- ILoginDAO,UserDaolmp1,BLLFactory,MemberBLL从命名上看,以你的理解,写出这四个类(接口)的作用?
答案 |
ILoginDAO:数据库操作的接口 UserDaolmp1:数据库操作的实现 BLLFactory:业务逻辑层工厂 MemberBLL:业务逻辑类 |
- final ,finally,finalsize的区别是什么?
答案 |
final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。方法的参数被final修饰表示在方法体内,该参数的值不可以被修改。 private final String ss = "ss"; public final void m(){ } public String m2(final String param){ } finally在异常处理时提供finally块来执行任何清除操作。无论有没有异常被抛出、捕捉,finally块都会被执行。 finalize是方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 |
|
- Hibernate中cascade作用跟意义?
答案 |
设定与当前持久化对象级联对象的处理策略, |
- JSP的内置对象有哪些?请写出对象名及常用的方法。
- Vector与ArrayList区别是什么?
答案 |
Vector : 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用,它不可能走出Array的限制。性能也就不可能超越Array。所以,在可能的情况下,我们要多运用Array。另外很重要的一点就是Vector是“sychronized”的,这个也是Vector和ArrayList的唯一的区别。 ArrayList:同Vector一样是一个基于Array上的链表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些,但是当运行到多线程环境中时,可需要自己在管理线程的同步问题。 |
- ORM的原理是什么?
答案 |
ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。 |
- string和stringBuffer区别是什么?
答案 |
StringBuffer是可变的而String是不可变的. |
- MVC各部分都由什么技术实现?怎么实现?
答案 |
M 由JAVABEAN实现 V 由JSP实现 C 由Servlet实现 |
- 程序部署在tomcat,weblogic那个目录里?
答案 |
1) webapps |
- 构造器Constructor是否可被override?
答案 |
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 |
- String s = new String("xyz");创建了几个String Object?
答案 |
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s |
- SSH在MVC中各担任什么角色?
答案 |
Struts负责组织整个MVC的流程,但是没有实现M层; Hibername负责数据库访问,数据的持久化操作 Spring利用IoC,AOP特性负责组织程序各层,在各层之间提供依赖注入和切面等服务 |
- j2ee工程中要实现国际化如何处理?
答案 |
在classpath下添加属性文件properties,负责提供各种语言包。 在工程中需要导入语言包 根据当前浏览器语言设置,选择合适的资源文件中的内容输出 |
- Hibernate映射文件中inverse与cascade的区别是什么?
答案 |
inverse:可以防止有关联的重复操作,将操作权交给关联的另一方(true) cascade:一般有关联的两方都会设置,主要控制级联关系的操作方式 |
- 简述struts-config.xml的作用,并举例其中一些元素,说明怎样定义一些全局异常点。
答案 |
作用:声明struts组件,如Form组件,action组件等以及一些异常处理的策略,导航策略;对控制器进行管理,加载资源文件等。 在GlobalExceptions标签中进行声明 |
二、 程序题(前6题每题5分,第7题10分。共40分)
1. 将一个字符串倒序输出,如:字符串“ABCDEFG”倒序输出为“GFEDCBA”
2. 阅读以下代码,请写出程序运行结果。
public class Test {
int x;
void display(){
x=20;
System.out.println(x);
}
public static void main(String[] args) {
Test t1=new Test();
Test t2=new Test();
t1.x=10;
t1.display();
t2.display();
String a=new String("java");
String b=new String("java");
System.out.print(a==b);
}
}
答案 |
20 20 false |
3. 写出下面源码的运行结果
package Test;
class A{
static{
System.out.println("1");
}
public A(){
System.out.println("2");
}
}
class B extends A{
static{
System.out.println("a");
}
public B(){
System.out.println("b");
}
}
public class Test {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
答案 |
1 a 2 b 2 b |
4. 程序是否能正常编译,运行?
public class Sample extends Thread implements Runnable{
public void run(){
System.out.println(“...”);
}
public static void main(String []arg){
Thread tt=new Sample();
tt.start();
}
}
答案 |
能,输出… |
5. 阅读以下程序,写出程序的运行结果。
public class Test{
public void method1(String s){
s+=” World!”;
}
public void method2(String s){
s+=new String(“ World!”);
}
public String method3(String s){
return s+=”World!”;
}
public static void main(String []args){
String str1=”Hello”;
this.method1(str1);
System.out.println(str1);
String str2=”Hello”;
this.method2(str2);
System.out.println(str2);
System.out.println(new String(“Hello”));
String str3=”Hello”;
str3=this.method3(str3);
System.out.println(str3);
}
}
答案 |
Hello Hello Hello HelloWorld! |
6. 使用java连接oracle数据库,并执行一句SQL:select username from users where userid = 1111
7. 写一个完整的DAO层接口,用来对会员信息进行添删改查操作