1.什么是对象,什么是面向对象,什么是类?
现实世界中任何实体都可以看作是对象。他们有两种特征:他们都拥有状态与行为。软件中的对象有自己的属性和能够执行的操作。
所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
类就是对一个事物抽象出来的结果。一般来说,一个类具有成员变量和成员方法。成员变量相当于属性,比如‘人’具有的变量有胳膊,手脚等。而成员方法是该类能完成的一些功能,比如‘人’可以说话(talk),行走(walk)等。对象,如果说类是一个抽象概念,那么对象就是具体对象。比如我们说‘人’就是一个抽象概念,但是具体到某个人,比如你,我,他,就是一个‘人’对象。
2.继承和接口的优缺点?
继承的优点:
(1) 可以改变内部实现,除了该类的方法之外,不会影响其它代码。
(2) 通过继承实现代码复用。
缺点:
(1) 父类通常至少定义了子类的部分行为,父类的任何改变都可能影响子类的行为。如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。
接口的优点:
(1) 通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
(2) 通过接口可以指明多个类需要实现的方法。
(3) 通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
接口的缺点:
3.jdk1.4到jdk1.5有哪些改进?
JDK1.4和JDK1.5都对JDK进行了大量改进,但通过比较可以发现。JDK1.4主要是增加了一些包和对一些类的性能和接口的改进,而JDK1.5则主要是在语言的层面上对java语言的功能进行加强。目前万网JAVA主机JDK版本为1.5.0_04。
JDK1.4最主要的三个特征:
1、断言assert
2、日志
3、反射
JDK1.5主要的增加是:
1、泛型的支持
2、for-each
3、枚举
4、可变参数
5、自动装箱和自动拆箱
6、静态类导入
4.写出在java中常用的5个包,以及他们的作用?
5.说出在linux/unix操作系统下如何配置Java?
vi /etc/profile // 编辑 /etc/profile
在文件结尾加入:
export JAVA_HOME=/usr/java/j2sdk1.4.2_06
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
6.什么是多态性,写一个例子。
7.写出structs-config.xml的常用配置,并说出其作用
8.spring有哪些特点?
9.为什么要用抽象类和接口?
接口是为了实现多继承的,多态,所有接口定义的操作只有在运行时才会动态绑定。
抽象类的作用是为它的子类定义公共接口,将它的操作(可能是部分可能是全部)交给子类去实现。
10.写出3个jstl或struct标签
11.什么是jsp,有什么优点?
12.封装的概念?
13.javascript的优缺点?
14.事务的作用?
谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。
在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。
下面的代码是一个示范:
con.setAutoCommit(false);
PreparedStatement updateSales=con.prepareStatement("UPDATE COFFES SET SALES=? WHERE COF_NAME LIKE ?");
updateSales.setInt(1,50);
updateSales.setString(2,"Colombian");
updateSales.executeUpdate();
PreparedStatement updateTotal=con.prepareStatement("UPDATE COFFEES SET TOTAL =TOTAL+ ? WHERE COD_NAME LIKE ?");
updateTotal.setInt(1,50);
updateTotal.setString(2,"Colombian");
updateTotal.executeUpdate();
con.commit(0);
14.什么是实体完整性,什么是参照完整性?
实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。
参照完整性规则:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码K相对应,则称F是基本关系R的外码。则对于R中每个元组在F上的值必须为:取空值;等于S中某个元组的主码值。
15.写出5个runtime exception.
ArithmeticException
ArrayIndexOutOfBoundsException 数组、ArrayList等的越界
ArrayStoreException
ClassCastException
ClassNotFoundException 没有找到该类
CloneNotSupportedException
EnumConstantNotPresentException
Exception
IllegalAccessException
IllegalArgumentException
IllegalMonitorStateException
IllegalStateException
IllegalThreadStateException
IndexOutOfBoundsException
InstantiationException
InterruptedException
NegativeArraySizeException
NoSuchFieldException
NoSuchMethodException
NullPointerException 空指针异常
NumberFormatException 进行数据类型转换时出现
RuntimeException
SecurityException
StringIndexOutOfBoundsException
TypeNotPresentException
UnsupportedOperationException
16.什么是自定义异常,如何自定义异常?
自定义异常是当java中内置的异常类不能满足需求时,用户自己创建的异常类。
有两种方法创建自定义异常:
第一种定义方式,继承Exception类。
public class MyFirstException extends Exception {
public MyFirstException() {
super();
}
public MyFirstException(String msg) {
super(msg);
}
public MyFirstException(String msg, Throwable cause) {
super(msg, cause);
}
public MyFirstException(Throwable cause) {
super(cause);
}
第二种定义方式:继承Throwable 类
public class MySecondException extends Throwable {
public MySecondException() {
super();
}
public MySecondException(String msg) {
super(msg);
}
public MySecondException(String msg, Throwable cause) {
super(msg, cause);
}
public MySecondException(Throwable cause) {
super(cause);
}
}
17.Set, List, Map有什么区别?
set --其中的值不允许重复,无序的数据结构
list--其中的值允许重复,因为其为有序的数据结构
map--成对的数据结构,键值必须具有唯一性。
18.什么是对象持久化?为什么要建立对象序列?
对象持久化即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。