1. 说说Spring?
答:Spring的核心是IOC/DI(控制反转、依赖注入),Aop(面向切面)。相当于把每个bean与bean之间的关系交给第 三方容器进行管理.

2.说SpringIOC、SpringAOP?
答:SpringIOC :其实就是依赖注入、控制反转。相当于把每个bean与bean之间的关系交给第三方容器管理。而这个容器就是spring
SpringAOP :面向切面的编程,或AOP,是一种编程技术,允许程序模块化横向切割关注点,或横切典型的责任划分,如日志和事务管理。 SpringAop 就是用 Java的动态代理。

3.Spring的底层实现机制是什么?
答:使用Demo4j(解析XML)+Java反射机制
Demo4j 其实就是解析XML。使用反射机制实例化bean。
3.1 什么是Java反射机制
答:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
参考:https://www.cnblogs.com/whgk/p/6122036.html
https://www.cnblogs.com/whgk/p/6122036.html

4.SpringAOP用到了什么代理?
答:JDK动态代理:对实现接口的类生成代理
CGLib代理机制:对类生成代理

5.动态代理与静态代理区别?
答:静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 也就是说编译前,确定类型,绑定对象。
动态代理:在程序运行时,运用反射机制动态创建而成。也就是说运行时,确定类型,绑定对象。

6. Spring注入有那些方式?
答:(1)Set注入;
(2)构造函数注入依赖;
(3)静态工厂的方法注入;
(4)实例工厂的方法注入;

7.Spring有那些注解?
答:@Autowired(按类型注入)
@Service(标示为注入为服务层)
@Resource(按名称注入)
@Controller(标识控制器bean id)
@RequestMapping(表示映射URL路径)

8.简述Spring的优缺点?
答: Spring 的优点??
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring的DI机制降低了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部
缺点:
使用到了大量反射机制。反射机制非常占内存,

Java中Spring面试基础题20190302相关推荐

  1. Spring面试基础题

    1. 你有没有用过Spring的AOP? 是来干嘛的? 大概会怎么使用? 答:(1)有 (2)用来实现横切关注点与他们所影响的对象之间的解耦 横切关注点:横切关注点是散布于应用中多处的功能.(横切关注 ...

  2. java gui中文变方块_150道Java面试基础题(含答案)

    1)Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...

  3. java面试基础题整理(二)

    java面试基础题整理 文章目录 java面试基础题整理 前端技术(HTML.CSS.JS.JQuery等) 在js中怎么样验证数字? js中如何给string这个类型加方法? 谈谈js的定时器? 请 ...

  4. java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解

    众所周知,java编程语言的应用在当今社会必不可少,它是当下人们提升自己充实自身的重要选择.所以,今天主要来为大家介绍java的入门知识,在 java中spring mvc页面如何跳转,通过详细的图片 ...

  5. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  6. 第90节:Java中的Linux基础

    第90节:Java中的Linux基础 linux是装载虚拟机上面的: JDK依赖包: yum install glibc.i686MYSQL依赖包: yum -y install libaio.so. ...

  7. java中的面向对象基础

    java中的面向对象基础 1.对象 #一切客观存在的事物都是对象,万物皆对象. #任何对象,一定具有自己的特征和行为. 2.类 (1)类的定义 (2)对象的创建 (3) 类与对象的关系 类:定义了对象 ...

  8. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

  9. 并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

    欢迎来到<并发王者课>,本文是该系列文章中的第14篇. 在黄金系列中,我们介绍了并发中一些问题,比如死锁.活锁.线程饥饿等问题.在并发编程中,这些问题无疑都是需要解决的.所以,在铂金系列文 ...

最新文章

  1. C++用stack实现深度优先搜索DFS(附完整源码)
  2. Android之Activity的4种加载模式
  3. 2017.4.22 hankson的趣味题 思考记录
  4. 有了这些字体,才是高逼格的UI设计!
  5. React:创建用于获取数据的自定义Hook
  6. jdbc中mySQL语句单双引号_JDBC: 执行MySQL语句时,bit类型的数值在java代码中应该怎么表示?...
  7. [题解]诸侯安置(dp+组合)
  8. Flex桌面AIR软件日志添加
  9. 度数计算机在线使用,度数换算(度数换算计算器)
  10. Android 使用OPENCV实现图像实时对比
  11. 班迪录屏注册机(Bandicam)
  12. 调制解调器和路由器的区别:
  13. python基础编程小实例4——恺撒密码
  14. U盘偷资料神器,我都不太敢分享了。
  15. 最新100个微信小程序
  16. 教务系统爬虫收集学生成绩信息
  17. 张量分解学习(一 基础铺垫)
  18. IDE报错 hdc_std version of the SDK does not match the hdcd version of the device.
  19. Windows驱动(创建驱动符号链接)
  20. GD32F307VC+WIN10+VSCODE+GCC+JLINK环境build

热门文章

  1. Day14 字符编码
  2. noip模拟赛 寻宝之后
  3. 【转】VC 多线程中控制界面控件的几种方法
  4. Discuz 群组 新加入 活跃成员 成员列表 会员数量问题!
  5. 一个简单的适用于Vue的下拉刷新,触底加载组件
  6. 23种设计模式-备忘录模式
  7. 推荐:安全公司的一些面试题
  8. Apache配置问题
  9. Windows下架设SVN服务
  10. 创建型模式学习总结——设计模式学习笔记