小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
java 的局部变量一定要初始化,没有默认值;类变量可以不用初始化有默认值
局部变量:定义在方法体(函数,包括主函数)之中
类变量:定义在类中,方法体之外
Math.pow(a,b)的返回值为double类型
List的add方法
- 方法一
add(E e)在列表尾部加入指定元素。如果 List 集合对象由于调用 add 方法而发生更改,则返回 true;否则返回 false。可以不考虑返回值直接添加
- 方法二
void add(int index, E e) 在列表指定位置插入元素,并将处于当前位置的元素及其后面的元素的索引位置加一
匿名内部类方法初始化
List<Integer> list = new ArrayList<>(){{
add(1);
add(10);
add(6);
add(5);
}};
System.out.println(list);//打印list
List.of方法初始化
List<Integer> list = List.of(1,10,6,5);
System.out.println(list);
Arrays.asList方法初始化
List<Integer> list = Arrays.asList(1,10,6,5);//生成的list不能修改,add元素会报错
System.out.println(list);
Arrays.asList方法初始化可变化的List
List<Integer> list = new ArrayList<>(Arrays.asList(1,10,6,5));
list.add(7);
System.out.println(list);
对List进行排序
List<Integer> list = new ArrayList<>(Arrays.asList(1,10,6,5));
System.out.println(list);
list.sort(null);
System.out.println(list);
使用Collections.sort方法对list进行排序
List<Integer> list = new ArrayList<>(Arrays.asList(1,10,6,5));
System.out.println(list);
Collections.sort(list);
System.out.println(list);
格式化输出小数点后8为的float
import java.lang.String;
float f = 1;
System.out.println(String.format("%.8f",f));
&和&&的区别
- &和^,<<,<<<,|同属于位运算符,其中&是按位与,例如,1&1=1,1&0=0
- &&是逻辑运算符,处理真假值,例如,true&&true=true。
mybatis中的CDATA标签的用法
- 在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用
Http跨域OPTIONS请求
跨域资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME 类型的 POST 请求),浏览器必须首先使用 OPTIONS 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨域请求。服务器确认允许之后,才发起实际的 HTTP 请求。在预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(包括 Cookies 和 HTTP 认证相关数据)。
OPTIONS请求报错
由于预检请求(OPTIONS请求)不会包含Cookie信息(浏览器本身的实现决定其是否发送Cookie,前端无法控制,并且Chrome是不发送的),因此被权限拦截器提前结束,没有输出包含指定头部信息的响应。而一个被浏览器认为合格的预检请求响应必须包含如下的Http头部。(
预检请求Options的执行顺序在拦截器之后,因此预检请求被拦截,导致出错,)