Java Memorandum
- 1 定义安全的集合
- 2 collection集合用迭代器删除元素时避免并发修改异常
- 3 异常捕获
- 4 @RequestBody和@RequestParam和@Parameter区别
- 4.1 @RequestBody
- 4.2 @RequestParam
- 4.3 @Parameter
1 定义安全的集合
void old() {ArrayList<Apple> apples = new ArrayList<>();
}
void modern() {var apples = new ArrayList<Apple>();
}
modern()
中定义右侧的钻石语法<>
被显式的<Apple>
替换掉了,这样编译器就有足够的信息来执行类型推断了。
2 collection集合用迭代器删除元素时避免并发修改异常
//用迭代器
var apples = new ArrayList<Integer>();
Iterator<Integer> iterator = apples.iterator();
//删除用iterator的方法
iterator.remove();
//而不使用collection的方法
apples.remove(apple);
3 异常捕获
int test(){ try {int[] a[3] = {1, 2, 3};System.out.println(a[3]);//数组下标越界异常return 0;//不执行了} catch (ArrayIndexOutOfBoundsException e){e.printStackTrace();//执行后,等待finally中的语句执行return 1;//已经执行finally中的语句返回2了,该语句不再执行} finally {return 2;}
}
//调用该函数,返回的结果是2。
4 @RequestBody和@RequestParam和@Parameter区别
4.1 @RequestBody
处理非Content-Type: application/x-www-form-urlencoded
编码格式的数据,比如:application/json
、application/xml
等类型的数据。
通常用于接收POST、DELETE等类型的请求数据。
4.2 @RequestParam
处理Content-Type
为application/x-www-form-urlencoded
编码的内容,Content-Type
默认为该属性。
通常用于GET请求。
4.3 @Parameter
Controller方法的参数上,对参数的注解。