面试题java框架
㈠ 面试官问我有没有java架构开发经验,java架构是什么怎样才算是有架构开发经验
这么问估计他自己都说不清楚什么是架构,架构这个定义范围很广。
从java技术体系上看有3中:
J2SE:标准版开发(目前都叫,JAVASE)
J2ME:小型版(目前都叫,JAVAME)
J2EE:企业级开发(目前都叫,JAVAEE)
现在me,和se基本看不到了!java ee 也是主流,为开发企业级环境应用程序提供解决的一套解决培滚方案,这个技术体系会用到Servlet,Jsp等技术,主要针对Web开发。
个人理解,架构就是解决问题的一系列方案,亏散方法。
一个小的管理系统分为:web 前段和 web 后端,这也是一个常见的软件架构。
当一个软件平台用户量慢慢增加,单机部署的方式可能就应对不了实际的访问压力。这是可能会部署2台2个一样的应用,来分流降压。这种群集的方式也是属于架构中的一种方案。
当平台访问页面访问量过高的时候,耗去的连接数过大,可能就会考虑页面的静态化。这也是架构的内容
当访问量过db无法承受的时候,就会考虑增加缓存,减少不必要的重复查库操作,再者做读写分离。这也是架构的内容
当软件内容功能越来越多的时候,可能就考虑根据业务拆分成不同的小服务(微服务)。
等等
架构是一系列的技术解决配空余方案,其实开发过的人,基本都是在做架构内容,只是自己不知道而已。
架构是很范的,构架师涉猎的东西很多,比如多线程,io这些都是基本的,普通的开发这大都应该掌握的。
平常开发只有碰到问题,才能进步。
要解决问题,就必须要不断的学习,才能懂的更多。当你发现你不懂的东西越来越多的时候,后头看看,真的是懂的越多,问题就会越多。
㈡ 面试题:Java框架Netty的io结构是什么
主从Reactor多线程Nio结构,主从Reactor线程模型的特点是:服务端用于接收客户端连接的不再派团是个1个单独的NIO线程,而是一个独立的NIO线程池。Acceptor接收到客户端TCP连接请求处理完成后(可能包含接入认证等),将新创建的SocketChannel注册到IO线程池(sub reactor线程池)的某个IO线程上,由它负责SocketChannel的读写和编解码工作。Acceptor线程池仅仅只用于客户端的登陆、握手和安全认证,一旦链路建立成功,就将链路注册到后端subReactor线程池的IO线程上宴祥,由IO线程负责后续的IO操作。x0dx0a利用主从NIO线程模型,可以尘祥橘解决1个服务端监听线程无法有效处理所有客户端连接的性能不足问题。x0dx0a它的工作流程总结如下:x0dx0a从主线程池中随机选择一个Reactor线程作为Acceptor线程,用于绑定监听端口,接收客户端连接;x0dx0aAcceptor线程接收客户端连接请求之后创建新的SocketChannel,将其注册到主线程池的其它Reactor线程上,由其负责接入认证、IP黑白名单过滤、握手等操作;x0dx0a步骤2完成之后,业务层的链路正式建立,将SocketChannel从主线程池的Reactor线程的多路复用器上摘除,重新注册到Sub线程池的线程上,用于处理I/O的读写操作。
㈢ java 关于struts框架一般面试提什么问题
一、说说Struts2的工作流程1、Struts
2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现型哪的企业业务逻辑组件。
1)核心控制器FilterDispatcher是Struts
2框架的基础,包含了框架内部的控制流程和处理机制。
2)业务控制器Action和业务逻辑组件是需要用户卜伍码来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts
2的工作流程相对于Struts
1要简单,与WebWork框架基本相同,所以说Struts
2是WebWork的升级版本。
2、基本简要流程如下:
1)客户端初始化一个指向Servlet容器的请求;
2)这个请求经过一系列的过滤器(Filter)
(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh
Plugin)
3)接着FilterDispatcher被调用,
FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4)如果ActionMapper决定需要调用某个Action,
FilterDispatcher把请求的处理交给ActionProxy
5)ActionProxy通过Configuration
Manager询问框架的配置文件,找到需要调用的Action类
6)ActionProxy创建一个ActionInvocation的实例。
7)ActionInvocation实例使用命名模式来调用,
在调用Action的过程前后,涉及到相关拦截器橘液(Intercepter)的调用。
8)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可
能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2
框架中继承的标签。
在这个过程中需要涉及到ActionMapper
9)响应的返回是通过我们在web.xml中配置的过滤器
10)如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocal
ActionContext;如果ActionContextCleanUp不使用,则将会去清理sreadlocals。
㈣ java三大框架面试题
SSH:
spring 初始化组件----分层理念(就类似与中央管理省,省管理市等等)里,你想用下一层某个类的实例,但又不想自己new,好了,spring做的就是这个工作----初始化你需要的实例对象(通常是在xml文件中进行配置,希望简化配置可以用注解)。(再通俗点说,某个省的代表在驻京办,这时中央如果想了解某个省的情况的话,就直接问驻京办的该省代表,而不用再派专人到该省询问了。此时,可以近似理解为,中央为一个类,该省为一个类,驻京办为spring容器,该省代表为该省的一个实例(但未初始化,因为不在驻京办他的价值也就没了),如果他在驻京办而且告诉驻京办他是该省的代表,那就代表中央可以使用他了---此时可以说,驻京办实例化了该省类的对象。)
struts 控制跳转-----比如说,你用SSH写了一个登陆的逻辑,如果输入信息正确跳转到成功界面,如果不正确就跳转到错误提示界面,那跳转的方向由谁指定呢,对就是struts.xml文件(里面对应的跳转逻辑名)。
hibernate 将对象型的数据类型保存到关系型数据库中的工具。比如说,Java是面向对象的开发语言,而现在的数据库(Oracle、Mysql、sqlserver等等)基本上都是关系型的,如何把面向对象的数据类型保存在关系型的数据库中呢?hibernate就是干这行的。
㈤ java常用框架面试题
1、什么是Spring?
Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
2、Spring框架有哪些不同的模块?
核心容器模块、应用上下文模块Application context、AOP模块、JDBC抽象和DAO模块、O/R映射整合模块、Web模块、MVC框架模块。
3、一个简单的Spring应用程序包括什么?
这些应用程序像任何Java应用程序。它们是由多个类组成,每个类执行应用程序内的一个特定的功能。这些类的配置是通过一个XML文件向对方导入依赖。此XML文件描述如何配置类,称为Spring配置文件。
4、如何给Spring容器提供配置元数据?
有三种重要的方法给Spring 容器提供配置元数据:XML配置文件、基于注解的配置、基于Java的配置。
5、在Spring中如何注入一个Java集合?
Spring提供以下几种集合的配置元素:
类型用于注入一列值,允许有相同的值。
类型用于注入一组值,不允许有相同的值。
类型用于注入一组键值对,键和值都可以为任意类型。
类型用于注入一组键值对,键和值都只能为String类型。
6、在Spring框架中如何更有效地使用JDBC?
使用Spring JDBC框架,资源管理和错误处理的代价都会被减轻。所以开发者只需statements和queries从数据存取数据,JDBC也可以在Spring框架提供的模板类的帮助下更有效地被使用,这个模板叫JDBC Template 。
7、如何通过HibernateDaoSupport将Spring和Hibernate结合起来?
用Spring的SessionFactory调用LocalSessionFactory。集成过程分三步:
配置the Hibernate Session Factory、继承HibernateDaoSupport实现一个DAO、在AOP支持的事务中装配。
8、解释一下Spring MVC框架及其控制器
Spring配备构建Web应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts、Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。
控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现。控制器解析用户输入并将其转换为一个由视图呈现给用户的模型。Spring用一个非常抽象的方式实现了一个控制层,允许用户创建多种用途的控制器。
㈥ 当前java主流的框架有哪些 面试题
Struts,hibernate,Spring,mybatis,主要这几种,现在流戚空搜行的是SpringMVC,面试高历题说不好,网上找亏掘,一找一大堆