Java面试练习与总结第一回(spring+方法的重写与重载)
临近Java面试的练习与总结,范围可由JavaSE到数据库、Web前端再到JavaEE初级、各类框架、Linux系统等方面,包含知识点和疑难问题点,系列连载发文,可供求职者参阅。
1.SpringMVC的常用注解
- @RequestMapping:处理请求地址映射的注解,常用在类和方法上,若用在类上表示作为类中方法的父路径;
属性:- value:指定请求的实际 url;
- method:指定请求的method类型(get、post、put、delete);
- params:指定Request中必须包含的参数,该请求才生效;
- header:指定Request的请求体中必须某些header的值,该请求才生效;
- consumes:指定Request请求提交的内容类型(如:application/Json,text/html);
- produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
- @RequestParam:绑定单个请求参数值,request.getParameter(“xxx”);
属性:- value:参数名称;
- required:是否必须,默认true,表示请求中必须包含该参数,否则抛出异常;
- defaultValue:默认值,指定请求中没有该参数时的值,此属性使得required的值改为false;
- @PathVariable:绑定URI地址上的路径变量;
属性:- value:参数值;
- required:是否必须;
- @ResponseBody:作用于Controller层的方法之上,可以整个返回结果以某种格式返回,如Json、text;
- @ModelAttribute:被注释的参数或方法添加到Model中,当注释在方法时,请求处理方法Action会将该方法变成一个非请求处理的方法,但其它Action被调用时会首先调用该方法;
- @SessionAttributes:注释在类上,可以将指定属性值存到Session作用域中;
- @CookieValue:获取Cookie中的值;
- @GetMapping:是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上;
- @PostMapping:与上同理;
- @PutMapping:与上同理;
- @DeleteMapping:与上同理;
- @JsonFormate:将json、xml转换成Java对象,出自于Jackson;
- @DateTimeFormat:是spring自带的处理框架,主要用于将时间格式化;
- @JSONField:来源于fastjson,是阿里巴巴的开源框架,主要进行JSON解析和序列化。
2. 简述对Spring IoC的理解
IoC:Inversion of Control,即“控制反转”,是一种设计思想,在Java设计开发中,IoC意味着将对象的设计交给容器控制。
- 为什么有IoC容器?Spring框架至于Java Bean的管理,是典型的工厂设计模式,而创建Bean的Factory就是IoC容器;所以IoC容器的出现为开发者提供了更多的便利和基础服务;
- 什么是IoC?IoC是一种设计思想,主要是为了完成对象的创建和依赖的管理注入。
- IoC技术实现原理?我们都知道IoC既是生成Bean的工厂,而要知道工厂是如何产生对象的,我们需要看具体的IOC容器实现,spring提供了许多IOC容器的实现。比如XmlBeanFactory,ClasspathXmlApplicationContext等。
- IoC和DI之间的关系?DI—Dependency Injection,即“依赖注入”,IoC通过DI动态的向某个对象提供它所需要的其他对象。
3. 方法的重载与方法的重写
区别 | 重载 | 重写 |
---|---|---|
英文名 | Overloading | Overiding |
范围 | 同一类 | 不同类(继承关系) |
方法名 | 相同 | 相同 |
参数列表 | 不同 | 相同 |
修饰符 | 无关 | 大于或等于父类 |
返回值类型 | 不同 | 相同(或小于父类) |
面向对象思想 | 多态 | 继承 |
抛出父类没有的异常 | 可以 | 不可以 |