java面试题--wensi
1. 什么是事务,有什么特征
? 事务是访问并可能更新数据库中各种数据项的一个程序执行单元。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
? 特征:原子性、一致性、隔离性、持续性
?
2. 什么是异常,为什么要处理异常
?? 异常是程序在执行时发生的事件,它会打断指令的正常流程。
?? 为什么要处理: 首先从用户的使用角度来说,用户看不懂异常信息,也没办法很好的描述给维护人员,所以我们要捕捉异常,给用户一个友好的错误提示。其次出现异常不处理,程序会终止,系统不能正常运行。 再次因为程序在执行的过程中,会遇到各种可预知或不可预知的错误事件,如果不很好的处理,可能会导致很严重的后果。
?
使用异常处理后:
? a, 把错误的处理很真正的工作分开
? b, 代码更清晰,更易组织,不至于由于一些小的疏忽导致系统的意外崩溃
? c, 现在的项目越来越大,越来越复杂,如果没有很好的异常处理模型,局面会很糟糕
?
?? 下面是Java中几个基本异常:?
???ArithmeticException 当出现异常算术条件时产生;
?? NullPointerException 当应用程序企图使用需要的对象处为空时产生;
?? ArrayIndexOutOfBoundsException 数组下标越界时产生;
?? ArrayStoreException 当程序试图存储数组中错误的类型数据时产生;
?? FileNotFoundException 试图访问的文件不存在时产生;
?? IOException 由于一般I/O故障而引起的,如读文件故障;
?? NumberFormatException 当把字符串转换为数值型数据失败时产生;
?? OutOfMemoryException 内存不足时产生;
?? SecurityException 当小应用程序(Applet)试图执行由于浏览器的安全设置而不允许的动作时产生;
?? StackOverflowException 当系统的堆栈空间用完时产生;
?? StringIndexOutOfBoundsException 当程序试图访问串中不存在的字符位置时产生;
?
3. 什么是ORM
ORM (Object Relational Mapping),对象关系映射模式
?
4. static和final修饰的区别
java中static表示修饰的属性和方法是静态的,可以通过类名直接调用
final表示表示属性和方法是不能被修改的,用于定义常量。
?
5. 解释下关系模式中的实体完整性和参照完整性
实体完整性:要求每一个表中的主键字段都不能为空或者出现重复的值。例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。
参照完整性:简单的说就是一个表的外键依赖主表的主键(一个参照完整性将两个表中相应的元组联系起来)。比如在学生选课关系中,学号是学生表主键,课号是课程表主键,学号和课号联合做选课表的主键,这都是实体完整性约束。 而选课表中,单独一个学号是外键、参照学生表学号,单独一个课号是外键,参照课程表课号,这都是参照完整性约束,比如课号的值只有1,但是你在选课表里取课号为1以外的值,就会出错,违反了参照完整性。
?
6. 继承和多态,重写与重载的区别
继承: 继承是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法的方式产生一个新的类型。
多态: 继承是多态得以表现的基础,多态是一种类型表现出多种状态。
重写: overriding 是继承的时候,子类中定义具有父类相同型构的新方法,叫做子类把父类的方法重写。
重载: overloading 在同一个类中定义一个以上的具有相同名称,单型构不同的方法。同名不同参
?
7. 接口存在的意义
对扩展开发,对修改关闭,为了整个项目的结构
?
8. java中如何实现多线程
继承Thread类,实现Runable接口
?
9. 什么是MVC
M model 模型
V view???视图
C controller 控制器
?
10. struts2的常用标签
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form>
<s:submit>
<s:reset>
<s:textfield>
<s:textarea>
<s:select>
<s:checkboxlist>
<s:file>
<s:a>
<s:iterator>
?
11. java的基本数据类型
double ,float,byte,short,int,long,char,boolean
?
12. 调用javascript中函数时有没有return 有啥区别
有return的时候,函数需要返回true,才生效
没有renturn的时候,跟函数的返回无关
?
13. this 与super 关键字
this用于方法中,在对象创建后的一个指针
?this在构造方法中调用另一个构造方法this(构造方法参数)
?函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时访问成员变量需要加this.成员变量名称
?在函数中需要引用函数所属类的当前对象,直接用this
?
super的作用跟this类似,是把屏蔽的成员变量或成员方法变为可见,或者说用来引用被屏蔽的成员变量和成员方法。super只能用于之类中,目的是访问直接父类中被屏蔽的成员
?在子类构造方法中调用父类构造方法,super(参数),参数不是必须的,super()必须放在子类构造方法第一行
?当子类方法中的局部变量或子类中的成员变量与父类中的成员变量同名时,用super.成员变量名 来引用父类成员变量
?当子类成员方法和父类成员方法有完全相同的方法定义(方法体可以不同),此时,用super.方法名(参数)来访问父类方法。
?
14. 线程暂停运行的方法
sleep()? 休眠,当时间一到就就绪
yield()?? 线程在指定时间后,立即转成runnable状态
join()????等待,等到另一线程完成某件事(运行完毕,自然死亡)才自动继续执行
wait()?? 等待,等到另一个线程完成某件事,然后用notify()唤醒才继续执行
?
?
15. UML哪个是动态图
序列图,活动图,状态图
?
?
?
?
?