1、servlet执行流程

客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request、response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet处理完业务逻辑后会将信息放入到response并响应到客户端。

2、springMVC的执行流程

springMVC是由dispatchservlet为核心的分层控制框架。首先客户端发出一个请求web服务器解析请求url并去匹配dispatchservlet的映射url,如果匹配上就将这个请求放入到dispatchservlet,dispatchservlet根据mapping映射配置去寻找相对应的handel,然后把处理权交给找到的handel,handel封装了处理业务逻辑的代码,当handel处理完后会返回一个逻辑视图modelandview给dispatchservlet,此时的modelandview是一个逻辑视图不是一个正式视图,所以dispatchservlet会通过viewresource视图资源去解析modelandview,然后将解析后的参数放到view中返回到客户端并展现。

3、给定一个txt文件,如何得到某字符串出现的次数

File file = new File(“E://test.txt”);

InputStream is = new FileInputStream(file);

byte b[] = new byte[1024];

int a = is.read(b);

String str[] = new String(b,0,a).split("");

int count = 0;

for(int i = 0;i<str.length;i++){

if(“a”.equals(str))count++;

}

System.out.println(count);

4、Java设计模式思想(单列模式,工厂模式,策略模式,共23种设计模式)

a) 单例模式:单例模式核心只需要new一个实例对象的模式,比如数据库连接,在线人数等,一些网站上看到的在线人数统计就是通过单例模式实现的,把一个计时器存放在数据库或者内存中,当有人登陆的时候取出来加一再放回去,有人退出登陆的时候取出来减一再放回去,但是当有两个人同时登陆的时候,会同时取出计数器,同时加一,同时放回去,这样的话数据就会错误,所以需要一个全局变量的对象给全部人使用,只需要new出一个实例对象,这就是单例模式的应用,并且单例模式节省资源,因为它控制了实例对象的个数,并有利于gc回收。

b) 策略模式:就是将几个类中公共的方法提取到一个新的类中,从而使扩展更容易,保证代码的可移植性,可维护性强。比如有个需求是写鸭子对象,鸭子有叫,飞,外形这三种方法,如果每个鸭子类都写这三个方法会出现代码的冗余,这时候我们可以把鸭子中的叫,飞,外形这三个方法提取出来,放到鸭父类中,让每个鸭子都继承这个鸭父类,重写这三个方法,这样封装的代码可移植性强,当用户提出新的需求比如鸭子会游泳,那么对于我们oo程序员来讲就非常简单了我们只需要在鸭父类中加一个游泳的方法,让会游泳的鸭子重写游泳方法就可以了。

c) 工厂模式:简单的工厂模式主要是统一提供实例对象的引用,通过工厂模式接口获取实例对象的引用。比如一个登陆功能,后端有三个类,controller类,interface类,实现接口的实现类。当客户端发出一个请求,当请求传到controller类中时,controller获取接口的引用对象,而实现接口的实现类中封装好了登陆的业务逻辑代码。当你需要加一个注册需求的时候只需要在接口类中加一个注册方法,实现类中实现方法,controller获取接口的引用对象即可,不需要改动原来的代码,这种做法是的可拓展性强。

5、AOP与IOC的概念(即spring的核心)

a) IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度。而spring的核心是IOC控制反转和AOP面向切面编程。IOC控制反转主要强调的是程序之间的关系是由容器控制的,容器控制对象,控制了对外部资源的获取。而反转即为,在传统的编程中都是由我们创建对象获取依赖对象,而在IOC中是容器帮我们创建对象并注入依赖对象,正是容器帮我们查找和注入对象,对象是被获取,所以叫反转。

b) AOP:面向切面编程,主要是管理系统层的业务,比如日志,权限,事物等。AOP是将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为切面(aspect),切面将那些与业务逻辑无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。

6、hibernate的核心思想

a) Hibernate的核心思想是ROM对象关系映射机制。它是将表与表之间的操作映射成对象与对象之间的操作。也就是从数据库中提取的信息会自动按照你设置的映射要求封装成特定的对象。所以hibernate就是通过将数据表实体类的映射,使得对对象的修改对应数据行的修改。

7、Struts工作流程

a) 客户端发出一个请求到servlet容器

b) 请求经过一些列过滤被filterdispatcher调用,filterdispatch通过actionMapper去找相对应的action。

c) Actionmapper找到对应的action返回给filterdispatch,dispatch把处理权交给actionproxy

d) Actionproxy通过配置文件找到对应的action类

e) Actionproxy创建一个actionIinvocation的实例处理业务逻辑

f) 一旦action处理完毕,actioninvocation负责根据stuts.xml的配置找到对应的返回结果。返回结果通常是jsp页面

更多技术资讯可关注:itheimaGZ获取

java面试题 - 框架相关推荐

  1. Java考试试题 [框架阶段考试试卷] 笔试+机试(A卷)

    找不到测试自己的方式??为你们准备的Java考试试题快来测试一下自己的水平: 附:试题答案+视频讲解 考试时间180分钟 总分 100分 一. 选择题(单选,每题1分) 1. JavaScript中哪 ...

  2. Java面试题-框架篇九

    81,使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. ...

  3. Java面试题阶段汇总

    希望能够坚持不断的整理,做最全的Java面试题题库,帮助更多的人在面试过程中发挥出自己的实力.也希望自己能够持之以恒的做一件事情不忘初心,加油! 初级面试题 Java面试题-基础篇一 Java面试题- ...

  4. 超详细的Java面试题汇总(基础篇+框架篇)

    Java面试题汇总-基础篇 1.面向对象是什么? 答:面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),Java是一个支持并发.基于类和面向对象的计算机编程语言,面向对 ...

  5. Java面试题大全(持续更新中),java框架面试题springboot

    class Student { static { System.out.println("Student 静态代码块"); //3 } { System.out.println(& ...

  6. java 实体类包含list 怎么取值_2019 最新 500 道 Java 面试题

    2015 年,因为工作岗位的变动,开始负责给集团招聘一些技术人员,出于对公司的负责,也为了更好的胜任技术经理的职位,在面试的这件事上,我做了大量的"功课",首先我研究了几乎所有大厂 ...

  7. 用友公司Java面试题(含答案)

    为什么80%的码农都做不了架构师?>>>    用友公司Java面试题(含答案) 1.Hashtable和HashMap有什么区别?   a.Hashtable是继承自陈旧的Dict ...

  8. java面试题2019 答案

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...

  9. Java面试题及答案整理(2022年140道)持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

最新文章

  1. dell 服务器 加ssd硬盘,DELL服务器加SSD硬盘.doc
  2. 【BZOJ 3160】 3160: 万径人踪灭 (FFT)
  3. EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange
  4. php简单异常,PHP实现的简单异常处理类示例
  5. Mysql数据库If语句的使用
  6. 七、度量数据的相似性和想异性
  7. 【案例分享】crontab执行脚本异常问题
  8. Spring.NET教程(二十)——整合Quartz.NET(应用篇)
  9. python编程(基于twisted的客户端编程)
  10. android 华为 imei,华为手机怎么查看IMEI码?华为手机查询IMEI串号两种方法,华为imei...
  11. excel文件损坏修复绝招_高手都在用的PDF转换PPT、WORD、EXCEL工具
  12. wampServer虚拟主机配置
  13. android 静默暗转_Android 7.0 静默安装
  14. iOS屏幕旋转与锁屏
  15. unity -- 存档与读档
  16. PHP微信公众号文章编辑排版工具源码+采集功能/附教程
  17. 关于搭建FTP服务器
  18. TOM企业邮箱注册流程是什么,如何开通邮箱
  19. C# 二维码 和条形码生成
  20. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

热门文章

  1. ethercat环境搭建(igh安装)
  2. 数据分析:论文数据统计
  3. Java poi 实现excel导入导出工具类
  4. 什么样的显示器才是玩家最爱?AGON爱攻用三年给出了答案
  5. Spire.Doc功能演示:在Java中将Word转换为EPUB
  6. 安装Docker步骤 及遇到的常见问题!
  7. 访问者模式(Visitor Pattern)
  8. (9)调整图像的亮度和对比度
  9. 美女妹妹照片_生活照(2)
  10. 【Python】关于Caused by SSLError Max retries exceeded with url 的错误