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片段
required:url片段中是否必须要有该片段
示例:假如方法头部添加了@GetMapping(“/\user/**{id}”),方法的参数中有一个@PathVariable(name=”id”, required=true)String idNo参数,那么表明请求url中必须得有{id}该片段,且会把该片段赋给idNo**参数
@RequestParam 和@RequestBody区别
@RequestParam接收的参数是来自requestHeader中,即请求头
@RequestParam用来处理
Content-Type
为application/x-www-form-urlencoded
编码的内容@RequestBody接收的参数是来自requestBody中,即请求体
一般用于处理非
Content-Type: application/x-www-form-urlencoded
编码格式的数据,比如:application/json
、application/xml
等类型的数据。GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type
JAVA 常用API
io
java中的输入输出流分为字节流和字符流
字节流主接口为 InputStream OutputStream
字符流主接口为 Reader Writer
字节流中常用的类有 FileInputStream BufferedInputStream