自己整理面试题

2020年-在优快云整理Java后端面试题整理的第1天 呐,等你关注都等出蜘蛛网了~... 阅读详情

1.请描述下你做的项目:

XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。

2.结合项目谈谈你对MVC的理解

MVC是model-view-controler的简称。也就是模型-视图-控制器。mvc是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。mvc中的模型、视图、控制器分别担任着不同的任务。 
视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。 
模型:模型表示业务数据和业务处理。相当于javaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性。 
控制器:当用户单击web页面中的提交按钮时,控制器接收请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结构。 
MVC的处理过程:首先控制器接收用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结构。并通过视图呈现给用户。如在项目中要对应MVC的话;View对应项目中的jsp,controler对应action,model对应service+dao层的业务逻辑和持久层的操作。

3.项目中为什么要使用ssh(三大框架的优点)

1.使用struts是因为struts是基于mvc模式的,很好的将应用程序进行了分层,使开发者更关注业务逻辑的实现;struts有着丰富的标签库,能大大的提高开发效率。 
2.使用Hibernate;是因为Hibernate为java应用提供了一个易用的、搞效率的对象关系映射框架。hibernate是个轻量级的持久层框架,功能丰富。 
3.使用spring;是因为spring基于ioc(控制反转)和aop框架多层j2ee系统的框架

4.挑选一个你做的功能说明ssh框架的应用原理

1.在表示层中,首先通过jsp页面实现交互界面,负责传送请求(request)和接收响应(response),然后struts根据配置文件(struts。xml)将actionServlet接收到的request委派给响应的action处理。 
2.在业务层中,管理服务组件的spring ioc容器负责向action提供业务模型(model)组件和组件的协作对象数据处理(dao)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。 
3.在持久层中,则依赖于hibernate的对象化映射和数据库交互,处理dao组件请求的数据,并返回处理结果。

综合上面的概述;然后可以把我们做的信息发布管理模块用上述的方式实例化描述一遍。

5.struts工作原理

——-按照struts工作原理图说 
1.客户端发出一个指向servlet容器的请求; 
2.请求会经过strutsPrepareAndExecuteFilter过滤器; 
3.过滤器和请求将访问strut2的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。 
如:ConfigurationManager、ActionMapper和Objectfactory.ConfigurationManager存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,results,Interceptors,等)都是通过Objectfactory来创建的。过滤器会通过询问ActionMapper类来查找请求中需要用到的Action。 
4.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。 
5.ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了Action的执行状态,或者说它控制的action的执行步骤。它持有Action实例和所有的Interceptor。 
6.ActionInvocation实例使用命名模式来调用,1.ActionInvocation初始化时,根据配置,加载Action相关的所有Interceptor.2.通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。在调用action的过程前后,涉及到相关拦截器(Interceptor)的调用。 
7.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

————–通俗的说———— 
发送http请求 
web服务器(tomcat、weblogic) 
执行struts核心过滤器StrutsprepareAndExecuteFilter 
加载struts配置文件中配置信息,找到对应的Action类并实例化 
执行各类拦截器和action中对应方法 
配置文件中找到返回结果 
转发到具体页面或其他操作

6.struts有什么优缺点

————–优点———— 
1.实现MVC模式,结构清晰; 
2.丰富的struts的标记库,利用好能大大提高开发效率 
3.全局结果与声明式异常; 
4.可使用OGNL进行参数传递 
5.各类方便使用的拦截器

————–缺点————- 
1.转到表现层时,需要配置结果页面;页面多了比较繁杂; 
2.对Servlet的依赖性过强 
3.struts标签稍微比el表达式繁重

7.为何使用spring

spring是一个轻量级的控制反转(ioc)、面向切面(AOp)、面向接口、事务管理、包容促进其他框架;使系统中用到的其他框架的耦合程度大大降低,扩展性强、简单易用好管理。

8.spring在项目中如何充当粘合剂

1.在项目中利用spring的ioc(控制反转或依赖注入),明确的定义组件接口(如UserDao),开发者可以独立开发各个组件,然后根据组件间的依赖关系组装(UserAction依赖于UserService,UserService依赖于Userdao)运行,很好的把struts(Action)和hibernate(dao的实现)结合起来; 
2.spring的事务管理把hibernate对数据库的操作进行了事务配置

9.描述在系统中如何使用了spring的事务控制

spring事务包括编程事务和声明式事务。在系统中使用了声明式的事务管理是用spring的AOP来实现的;配置了只读事务和回滚事务(传播行为为REQUIRED)当出现错误后进行事务回滚操作。在项目中通过aop切入事务到service层,这样做能使一次业务逻辑操作如果包括几个数据库操作都控制在一个事务中。

10.Hibernate工作原理以及为什么要用?

原理: 
1.读取并解析配置文件 
2.读取并解析映射信息,创建SessionFactory 
3.打开Session 
4.创建事务Transaction 
5.持久化操作 
6.提交事务 
7.关闭Session 
8关闭SessionFactory

为什么要用: 
1.对Jdbc访问数据库代码做了封装,大大简化了数据访问层繁琐的重复性代码。 
2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度上简化DAO层的编码工作。3.Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 
4.Hibernate的性能非常好,因为他是一个轻量级框架。映射的灵活性很出色。他支持各种关系数据库,从一对一到多对对的各种复杂关系。

11.Hibernate在系统中使用的优化策略

Hibernate对数据的缓存包括两个级:一级缓存,在Session的级别上进行,主要是对象缓存,以其id为键保存对象,在Session的生命期间存在;二级缓存,在SessionFactory的级别上进行,有对象缓存和查询缓存,查询缓存以查询条件为键保存查询结果,在SessionFactory的生命期间存在,默认地,Hibernate只启用一级缓存

12.列举你在开发中常用的struts标签

property、iterator、if、date、form、a、url、textfiled、textarea、select、radio、checkboxlist、 
hidden、param

13.Jquery异步获取数据的方式有几种?有何区别?

1.load载入远程Html文件代码并插入至Dom中 
2.get 
3.post 
4.ajax 
5.getJSON 
6.getScript通过get方式请求载入并执行一个JavaScript脚本。

14,简述UML并书名你是用Rose常用于什么情况,画什么图?

UML是统一建模语言;用于在软件开发各个阶段中用图形的方式描述流程和功能需求;IBM 
Rational Rose是uml建模工具之一比较多的在需求阶段,常用于画例图,类图,时序图。

15.请简述导入导出的工具类;并说明你导出过的最大数据量

POI(合并单元格对象和背景色的应用)

运维开发面试题整理 Python的可变与不可变数据类型 可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。 不可变数据类型分析 python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象, 阅读详情

相关推荐

C++笔试面试题整理

overload:将语义相近的几个函数用同一个名字表示,但是参数列表(参数的类型,个数,顺序不同)不同,这就是函数重载,返回值类型可以不同特征:相同范围(同一个类中)、函数名字相同、参数不同、virtual关键字可有可无override:派生类覆盖基类的虚函数,实现接口的重用,返回值类型必须相同特征:不同范围(基类和派生类)、函数名字相同、参数相同、基类中必须有virtual关键字(必须是虚函数)overwrite:派生类屏蔽了其同名的基类函数,返回值类型可以不同。

谢谢大家的关注 2387

【Java面试题】项目篇

最后,我们记录日志。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。通过单元测试,开发人员可以快速识别和修复代码中的异常,确保程序的正确性和稳定性,并在开发的早期阶段捕获潜在的问题。在压力测试中,测试人员会使用性能测试工具模拟并发用户的访问和操作,以测试系统在高压力和压力下的性能和稳定性。FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。

小威的博客 1791

Flink面试题整理,全是干货,自己整理的

一,前言 俗话说,金九银十,为了帮助广大同行面试准备,或者帮助想要了解Flink的同学带着问题思考去学习Flink,我先做了一个初步的面试题汇总,这些面试题有些是大家问的比较多的,有些是自己遇到的,有些是在群里面大家问到的问题,可能有的有答案,有的没有答案,如果有大佬或者谁有时间可以补全之后再发出来 ,这个只是抛砖引玉。 二,Flink学习资料怎么找~ 1,首先作为初学者我建议大家先了...

qq_31866793的博客 1万+

java面试题——常见项目真实面试题(实际面试被问到)

1、项目包含哪些微服务?你负责哪些? 登录微服务,注册微服务,搜索微服务,购物车微服务,订单微服务等10来个微服务 2、调用第三方接口异常,你是怎么处理的? 看下有没超过设置的超时时间,检查网络 如果网络都正常,去看下返回的错误码是什么 3、你们是对服务进行常见的容错处理的? 熔断、限流、降级 4、请求流量最大设置1W,突然来2W请求,多出来的1w怎么处理的? 线程池里面的workque排队,,可以让一万个请求都在排队 线程池的拒绝策略,直接拒绝 排队一部分,拒绝一部分 5、购物车同步re

m0_63270506的博客 3万+

产品经理面试题整理

凡事“预则立,不预则费”。即使你有丰富的产品经验,在面试那种紧张的环境下要面试好也不是一件易事,因为在那种环境下,你要对面试官提出的问题快速反映,快速组织语言,而你又没有经常训练这种能力,想回答好还是很不容易的,如果你经常背一些产品经理的面试题,那你回答的时候就流畅多了,下面将一些常见的产品经理面试题整理下来,需要的小伙伴拿去。 下面我们先看看都有什么问题吧 以下是上面的问题的

chenqiuping_helen的博客 2万+

PMP面试题整理

1 你认为项目中最重要的是哪些过程? 对于项目生命周期而言:越是前期越重要,对项目影响越大。启动阶段:如果一个难以成功、难以盈利的项目被立项。事物发展的不确定性,极有可能导致项目夭折。(项目经理应该用自己的专业知识,影响高层;即使影响不了,应该在书面上留下自己的观点。) 规划阶段:如果少量规划、甚至上手就干,极有可能导致项目失控。执行中后期举步维艰、事倍功半。(尽可能规划明确,无法明确的规划包,应有适当的谈) 监控阶段 ......

zhuzeming725的博客 7479

SSH框架总结(框架分析+环境搭建+实例源码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。 Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用H...

星.云计算 3103

java面试之项目面试问题--不看面试会后悔的

1.请描述下你做的项目:XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。2.结合项目谈谈你对MVC的理解MVC是model-view-controler的简称。也就是模型-视图-控制器。mvc是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。mvc中的模型、视图、控制器分别担任着不同的任务。 视图:视图是用户看到并与之交互的界面

9万+

Java面试常见问题整理(项目阶段 附答案)

1、日志文件的管理,你们是怎么做的?1、日志文件的管理,你们是怎么做的?场景:记录每个人在项目中的动作。在Java开发中日志的管理有很多种。我一般会使用过滤器,或者是spring的拦截器进行日志的处理。如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个方法的调用。然后进行日志记录。使用过滤器的好处是可以自己选择性的对某一些方法进行过滤,记录日志。但是实现起来有点麻烦。另外一种就是使用Spring的AOP了。

lonzgzhouzhou的博客 8921

【pprof】简要学习教程

基本介绍 pprof 是在做性能优化前的性能分析工具。 安装: go get -u github.com/google/pprof 分析工具 go tool pprof 是命令行指令,用于分析 Profiling 数据,源数据可以是 http 地址,也可以是已经 dump 下当 profile 文件;查看模式可以命令行交互模式,也可以是浏览器模式(-http 参数)。 两种应用 服务型应用 _ "net/http/pprof" 包,专用于采集 web 服务 运行数据的分析。即在运行的服务中通过 API .

码农印象 885

桂电 数电实验 期末考试 试卷+解析(74LS192 + 74LS153 + 74LS139 + 74LS00 / 74LS20)

桂电 数电实验 期末考试 试卷+解析(74LS192 + 74LS153 + 74LS139 + 74LS00 / 74LS20)

Molly 的博客 1万+

跳槽了,给大家整理一波面试题

今天给大家分享一份精心整理的Java面试题锦囊,脉络清晰,知识点全面,已经全部整理成PDF了。

x1ao_fe1的博客 797

MySQL 8.0数据库崩了别慌!手把手教你仅凭一个.ibd文件找回数据(附Go工具包)

本文详细介绍了在MySQL 8.0数据库崩溃后,如何仅凭.ibd文件恢复数据的完整流程。通过使用Go语言工具包和ALTER TABLE技巧,即使没有备份也能实现数据重生。文章包含从环境准备到数据验证的全方位指导,帮助DBA和开发者应对紧急数据恢复场景。

weixin_29235923的博客 421

JavaSE面试题整理

JavaSE面试题整理Object类Object类自带哪些方法?String类构造方法创建一个表格 Object类 Object类自带哪些方法? hashCode() hashCode相等,不一定equals equals时,hashCode一定相等 如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。 toString() equals(Obj...

Mono is growing up 1393

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1330

高通410随身WiFi刷OpenWRT与Debian双系统一键集成方案

本文详细介绍高通410随身WiFi设备刷入OpenWRT与Debian双系统的一键集成方案。通过虎王工作室提供的一键刷机包,用户可轻松实现双系统部署,兼顾OpenWRT的网络功能与Debian的完整应用服务,适用于网络加速、服务器部署等多种场景,并提供了硬件资源分配与系统切换的实用指南。

docker7nomad的博客 1140

面试题-整理中

别下了~没整理好呢~

小彬~ 138

AI自主网络攻击技术深度解析:从LLM驱动到防御体系升级

网络安全领域正经历从自动化脚本到智能自主攻击的范式转变。其核心原理在于将大型语言模型(LLM)与自动化渗透测试框架深度融合,构建具备环境感知、决策规划和自适应能力的攻击系统。这种技术的核心价值在于实现了从预设步骤到目标驱动的质变,能自主完成信息收集、漏洞利用、横向移动等复杂攻击链。在应用场景上,它不仅能极大提升高级持续性威胁(APT)的攻击效率,也对渗透测试和红队演练技术提出了新的要求。面对此类由AI驱动的自主攻击,传统的基于签名的防御体系已显不足,必须转向以行为分析和零信任为核心的整体纵深防御。本次曝光的

weixin_34254464的博客 610

别人整理的面试题总结

邢宇超的博客 400

Transformer实战(40)——Transformer时间序列数据建模

Transformer 因其在自然语言处理 (Natural Language Processing, NLP) 任务中的优异表现而被广泛应用,其主要优势在于能够有效建模时间序列数据。这些数据可以是文本,也可以是非文本。本节将介绍如何使用 Transformer 进行时间序列数据建模和预测,将学习时间序列的基本概念,并在此基础上使用一个简单的模型,用以初步了解时间序列数据,并为各种预测任务奠定基础。

盼小辉丶的博客 2399

UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象

在 UG NX中,有时需要批量删除某文件夹下多个.prt文件中固定一些图层中的体对象和曲线对象,这时如果采用手动逐个打开模型,并选择针对的图层删除,即耗时也容易遗漏,因此采用外部模式来处理比较方便。本文介绍批量删除某些图层中的体对象和曲线对象。

GimiGimmy 3035

【面试题】阿里前端面试题整理

先贴图,答案有空整理          

weixin_34080571的博客 330

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HashMap 面试题整理

本文整理了20个HashMap常见面试题,涵盖基础概念、数据结构、哈希计算、扩容机制、线程安全等方面。主要内容包括:HashMap的定义特点、与HashTable的区别、JDK8引入红黑树的原因、哈希冲突解决方案、扩容机制原理、线程安全问题及解决方案、性能优化建议、put/get方法执行流程、设计模式应用等。特别对比了JDK7和JDK8中HashMap的实现差异,解释了树化阈值设定、尾插法改进等设计考量。这些知识点全面覆盖了HashMap的核心实现原理和面试常见问题。

weixin_39956506的博客 864

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SpringBoot面试题整理

SpringBoot常规的面试题整理如下: 一、SpringBoot的简单介绍 SpringBoot是用来简化Spring框架应用初始化搭建以及开发的全新框架,比如通过自动化配置省去了大量繁琐的配置文件。 二、SpringBoot的优点 快速创建独立运行的Spring项目与主流框架集成; 使用嵌入式的servlet容器,应用无需打包成war包; starters自动依赖与版本控制 大量的自动配置...

polo2044的专栏 1890

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ThreadLocal 面试题整理

ThreadLocal是Java提供的线程本地变量机制,它为每个线程创建变量的独立副本,实现线程隔离。核心原理是每个Thread维护一个ThreadLocalMap,使用弱引用防止内存泄漏。与synchronized相比,ThreadLocal采用空间换时间策略,无锁性能更高。主要应用场景包括数据库连接管理、Session存储等。使用时需注意内存泄漏问题,建议声明为static final并配合remove()使用。Netty的FastThreadLocal对其进行了优化,用数组代替哈希表提升性能。Thre

weixin_39956506的博客 846

网易历届笔试面试题整理大全

整理了一下网易往届笔试面试题,希望对大家有帮助: 超级有用的面试题:Java常见面试题    常见算法面试题   数据库常见面试题  操作系统常见面试题   C/C++常见面试题  大数据常见面试   python常见面试 来源:网易笔试面试圈>> 1、2019网易实习生招聘编程题集合 2、2018网易校园招聘编程题真题集合 3、2018网易前端实习笔试题 4、2018网易...

wodwl的专栏 1万+
上一篇: 高并发问题
下一篇: 逆向工程生成后的Example用法
Java_funds
博客等级 码龄9年 6粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值