关于面试(1)

本人是新手,想用记录博客的方式给自己的学习之路做点笔记,若有不对还望指正!


面试的岗位是Java开发实习生,先将面试过程中被问到的几个问题做一个整理;


1.Spring容器是怎么配置(注入)的?

①属性注入(setter方法)

• 属性注入即通过setter 方法注入Bean的属性值或依赖的对象

• 属性注入使用 <property>元素, 使用 name 属性指定 Bean 的属性名称,value属性或者是

<value>子节点指定属性值

② 构造方法注入(需要写有参的构造函数)

• 通过构造方法注入bean的属性值或者依赖的对象,它保证了bean实例在实例化之后就可以被使用

• 构造器注入在<constructor-arg>元素里声明属性,<constructor-arg>中没有name属性

③静态工场注入

• 调用静态工厂方法创建bean是将对象创建的过程封装到静态方法里面去,当客户端需要对象时,

只需要简单的调用静态方法,而不用关心创建对象的细节

• 要声明通过静态工场方法创建的bean,需要在bean的class属性里面指定拥有该工场的方法的类,

同时在factory-method属性里面指定工场方法的名称,最后使用<constructor-arg>元素

为该方法传递方法参数

④实例工场方法

• 将对象的创建过程封装到另外一个对象实例的方法里,当客户端需要请求对象时,只需要简单的调用该实例

方法而不用关心对象的创建细节

• 要声明通过实例工场方法创建bean

在 bean 的 factory-bean 属性里指定拥有该工厂方法的 Bean
在 factory-method 属性里指定该工厂方法的名称
使用 construtor-arg 元素为工厂方法传递方法参数

自动注入

通过bean里面的属性自动注入

no:不使用自动装配。这是默认配置

byName:根据属性自动装配,beanFactory会查找容器中所有的bean,找出id属性与属性名同名的bean来完成注入。

如果没有找到匹配的bean,Spring则不会进行任何注入。

byType:根据属性类型自动装配,beanFactory会查找容器中所有的bean,如果一个正好与依赖属性类型相同的bean,

就会自动注入这个属性。


2.Spring的两大核心思想是什么?控制翻转(IOC)和面向切面编程(AOP)


3.面向切面编程具体是怎么实现的?

在运行时,动态的将代码切入到类的指定方法,指定位置上的编程思想,就是面向切面编程

在XML文件中声明切面

①编写一个原始类,该类中需要设置一个切点。在一个项目中,许多个切点构成了切面,这些切面实际上是为了某些共同的东西而成为一个面的

②编写一个切面类,代码中会有joinpoint.proceed(),这句话就是实际调用切点方法

③配置XML文件,声明一个切点(pointcut)


4.在SpringMVC中,单例模式和多例模式的区别,默认是哪种模式?

SpringMVC的controller默认是单例模式的,每一次不用重新new一个对象,可以提高系统的性能

单例模式(singleton):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。

多例模式(prototype):对这个bean的每次请求都会创建一个新的bean实例,类似于new


5.关于数组,ArrayList和LinkedList的区别是什么?

两者都继承了List接口,

ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除的时候非常麻烦,例如,删除一个元素,那么这个元素后面的数据都要向前移动一个空间单位。

LinkedList采用将对象存放在独立的空间中,而且每个空间中还保存下一个链接的索引,但是缺点就是查找非常麻烦,因为要移动指针

总结:对于随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针

对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据


6.tomcat的设计模式

工厂模式,单例模式,模板模式,命令模式


7.SpringMVC请求处理流程

1.DispatcherServlet前端控制器接收发过来的请求,交给handlerMapping处理器映射器

2.HandlerMapping处理器映射器根据请求路径找到相应的HandlerAdapter处理器适配器(拦截器或者Controller)

3.HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据,逻辑视图名)

4.ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图

5.然后再讲Model模型中的数据渲染到View上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值