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

相关文章
|
22天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
60 2
|
1月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
58 9
|
11天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
35 14
|
27天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
1月前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
23天前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
29天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
52 4
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
86 4
|
1月前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
2月前
|
IDE Java 程序员
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
24 5