java软件工程师面试培训_Java 软件工程师 面试集锦

java 是如何进行异常处理的

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。

Java的异常处理是通过5个关键词来实现的:

try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。

struts2 必备包

commons-fileupload-1.2.1.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

dao 是什么及作用

dao 是数据访问对象;DAO负责管理与数据源的连接来获取和储存其中的数据

ibatis 中的#与$的区别

在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符 #和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:

select * from table where id = #id#

,其中如果字段id为字符型,那么#id#表示的就是’id’类型,如果id为整型,那么#id#就是id类型。

select * from table where id = $id$

,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id =

‘$id$’

struts2的实现原理

1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求

2)

这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh

Plugin);

3)

接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;

4) 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

5) ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;

6) ActionProxy创建一个ActionInvocation的实例。

7) ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8)

一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper

简述spring 的事务传播行为和隔离级别

spring 的事务传播行为:

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:

PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

Spring 的隔离级别

1) Serializable:最严格的级别,事务串行执行,资源消耗最大;

2) REPEATABLE

READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。

3) READ

COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。

4) Read Uncommitted:保证了读取过程中不会读取到非法数据。

星星发亮是为了让每一个人有一天都能找到属于自己的星星。 from 《小王子》

写一段把本地文件formfile拷贝到本地文件tofile的程序

public class ChangeJtdToJava {

public static void main(String[] args) {

File dir = new File(“f:/jtd”);

// 得到d:/jtd 下的所有文件对象

File[] files = dir.listFiles();

for (File file : files) {

String fileName = file.getName(); // 得到文件名

int index = fileName.indexOf(“.”);// .的索引位置

String fileName2 = fileName.substring(0, index); // 不带后缀名的文件名

String houZui = fileName.substrinxg(index);

if (houZui.equals(“.jtd”)) {

// “f:/java/” + fileName2 + “.java”

// 要移到的地方

file.renameTo(new File(“f:/java/” + fileName2 + “.java”));

}

}

}

}

写出删除表中重复记录的语句 oracle

delete from people

where peopleId in (select peopleId from people group by peopleId having

count(peopleId) > 1) and rowid not in (select min(rowid) from people group

by

java 类实现序列化的方法(二种)在collection框架中,要实现什么样的接口

java.io.Serializable接口

Collection框架中实现比较要实现Comparable 接口和 Comparator 接口

Struts2实现拦截器的原理/p>

实现原理:Struts2拦截器是在访问某个Action或Action的某个方法、字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现。当请求struts2的action时,Struts

2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91337 人正在系统学习中 相关资源:SAMM软件保证成熟度模型落地工具- 络安全文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月1日
下一篇 2021年2月1日

相关推荐