面试自记

Integer面试问题

arraylist 和linklist 的区别

hashtable和hashmap的区别

spring 过滤器、拦截器、监听器的使用场景

Quartz

io集合

js动态扩展

Linux 权限

springMVC常用注解

@Controller 表明该类为控制类

@RestController 相当于@Controller + @ResponseBody

@ResponseBody 用于类和方法中,用在类中表示类中所有方法的返回值为Json串,用于方法上表示此方法的返回值为json串

@RequestMapping 映射http请求url到java的方法。参数有

​ path: url 的相对路径

​ value:映射请求的参数,缩小主映射范围。

​ method: url请求类型。其中类型分为(GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE)中的一个

​ consumes: url请求必须的Content-Type类型。

​ produce:url请求返回的类型。

@PostMapping

@GetMapping

@PutMapping

@DeleteMapping

​ 如果在类上加了@RequestMapping,其他类上加了别的映射注解,那么到该方法的请求地址就是类上的映射注解的path+方法上的映射注解的path

​ 如@GetMapping(“/user/{id}”) 表示给请求url中的/user/后的片段取了个名为id,这个片段在参数中可以用@PathVariable注解获得到

​ 如@GetMapping(“/user/{id:\d+}”) 表示通过正则表达式来限制URL中请求资源类型,这里表示id只能为数字

@RequestParam: 用于方法的参数,表示映射请求参数到Java的参数,它有多个参数选项,一般常用的参数选项有:

​ name: 表示映射请求的参数名,它会从请求的参数中找到和name指定的参数名的参数值,然后赋予方法中的参数。

​ required: 值为true时表示参数必须有,false时则表示参数不必须有也可以。

​ defaultValue:默认值

@PathVariable 用于方法的参数,它会从映射指定的url片段到java的参数中,一般常用的参数选项有:

name:表明要指定哪一个url片段

requiredurl片段中是否必须要有该片段

​ 示例:假如方法头部添加了@GetMapping(“/\user/**{id}”),方法的参数中有一个@PathVariable(name=”id”, required=true)String idNo参数,那么表明请求url中必须得有{id}该片段,且会把该片段赋给idNo**参数

@RequestParam 和@RequestBody区别

  1. @RequestParam接收的参数是来自requestHeader中,即请求头

  2. @RequestParam用来处理 Content-Typeapplication/x-www-form-urlencoded 编码的内容

  3. @RequestBody接收的参数是来自requestBody中,即请求体

  4. 一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/jsonapplication/xml等类型的数据。

  5. GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。

    POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type

JAVA 常用API

io

java中的输入输出流分为字节流和字符流

字节流主接口为 InputStream OutputStream

字符流主接口为 Reader Writer

字节流中常用的类有 FileInputStream BufferedInputStream