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

相关文章
|
5天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
20 4
|
5天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
5天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
5天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
5天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
5天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
26天前
|
Java
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
91 14
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
2月前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
43 6