Java高级程序员面试题

简介: 1.简述软件开发文档?需求分析、概要设计、详细设计、操作手册、测试计划

1.简述软件开发文档?

需求分析、概要设计、详细设计、操作手册、测试计划

2.你认为一个项目如何才正确?

是企业利益最大化。

3.struts2工作原理?

客户端初始化一个执行servlet的请求

这个请求经过一系列的过滤器,被FilterDispatcher调用,询问ActionMapper来决定是否调用Action

FilterDispatcher把请求的处理交给ActionProxy

ActionProxy通过Configuraction Manager询问相关的配置文件,找到需要的Action类

ActionProxy创建ActionInvocation的实例

ActionInvocation调用Action前后的拦截器

Action执行完毕后,根据struts.xml配置文件找到对应的视图页面

4.你认为项目中最重要的过程是那些?

分析、设计阶段 尽量找出进度的优先级

5.Hibernate 工作原理?

读取并解析配置文件

创建SessionFactory

打开Session

创建事务:transaction

持久化操作

提交事务

关闭Session

关闭SessionFactory

6.谈谈SSH整合?

struts(表示层)+spring(业务层)+hibernate(持久层)

struts是一个表示层的框架,主要用于接收请求,分发请求。struts其实属于MVC中的VC层次的

hibernate是一个持久层的框架,主要负责与关系数据库的操作

spring是一个业务层的框架,是一个整合的框架,能够很好的黏合表示层和持久层。

7.maven是什么?有什么作用?

是一个项目管理、构建工具

作用:帮助下载jar 寻找依赖,帮助下载依赖 热部署、热编译

8.WEB 前端优化?

减少HTTP请求的数量(合并css、js、图片)

利用浏览器的缓存机制

利用GZIP压缩机制:只针对文本类资源有效

把CSS文件放在HTML开头

把javascript文件放在HTML结尾

避免CSS表达式(判断浏览器)

使用javascript压缩

减少DNS查找

避免重定向

使用ajax

9.安全性测试

利用安全性测试技术,找到潜在的漏洞

2345_image_file_copy_48.jpg

10.事务隔离级别(4种)

Serializable(串行化):一个事务在执行过程中完全看不到其他事物对数据库所做的更新(事务执行的时候不允许别的事务并发执行,事务只能一个接着一个地执行,而不能并发执行)

Repeatable Read(可重复读):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,但是不能看到其它事务对已有记录的更新

Read Commited(读已提交数据):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,而且能看到其它事务已经提交的对已有记录的更新。

Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其它事务没有提交的新插入的记录的更新,而且能看其它事务没有提交到对已有记录的更新

11.为什么要用spring?

spring能够很好的和各大框架整合

spring 通过IOC容器管理了对象的创建和销毁 工厂模式

在使用hiberna,mybatis的时候,不用每次都编写提交的事务的代码,可以使用spring的AOP来管理事务 AOP其实就是一个动态代理的实现

声明式事务和编程式事务

12.你经常读那些书?

Java编程思想 Java模式 人月神话

13.springmvc的工作原理?

客户端请求提交到DispacherServlet由DispacherServlet控制器查询HandlerMapping,找到处理请求的Controller

Controller调用业务逻辑处理后,返回ModelAndView

DispacherServlet查询视图解析,找到ModelAndView指定的视图

视图负责将结果显示到客户端

14.如果给你一个4-6人的team,怎么分配?

挑选一技术过硬的人作为我的替补。其它人平均分配任务,每周进行全面的任务分配,每个人领取一周的工作量,每天汇报进度。

15.springmvc 和struts2的区别?

机制 :springmvc 的入口是servlet,struts2的入口是filter

性能 : springmvc 会比struts2快一点。springmvc是基于方法设计,struts2是基于类,每次发一次请求都会实例一个action,每个Action都会被注入属性。

参数传递:struts2是在接受参数的时候,可以采用属性来接收参数,这家说明可以让多个方法共享

拦截器机制:struts2有自己的interceptor机制,springmvc用的是独立的AOP方式,strtus2的配置文件还是比springmvc大,springmvc使用简洁,springMVC比struts2开发效率要高.

16.mybatis的优缺点?

优点:SQL写在XML中,便于统一管理和优化

提供映射标签,支持对象和数据库的orm字段关系映射

可以对SQL进行优化

缺点: SQL工作量大

mybagtis移植姓不好

不支持级联

小编还整理了许多的java面试资料。如有需要的小伙伴可“面试”给小编即可获取哦

2345_image_file_copy_47.jpg

相关文章
|
2天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
2天前
|
Java
[Java 面试题] ArrayList篇
[Java 面试题] ArrayList篇
|
2天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
28 1
|
2天前
|
存储 安全 Java
每日一道Java面试题:说一说Java中的泛型?
今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它。
15 0
|
2天前
|
Java 编译器
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
14 0
|
7天前
|
XML 缓存 Java
Java大厂面试题
Java大厂面试题
18 0
|
7天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
14 0
|
SQL 缓存 安全
Java高频面试题目
面试时面试官最常问的问题总结归纳!
101 0
JAVA高频面试题目集锦(6)
JAVA高频面试题目集锦(6)
104 0
JAVA高频面试题目集锦(6)
|
存储 安全 Java
JAVA高频面试题目集锦(5)
JAVA高频面试题目集锦(5)
148 0
JAVA高频面试题目集锦(5)