1、增强for循环
和python里面的for i in 列表很类似,也是一个使用迭代器进行遍历的方法
//一般数组的输出
public static void main(String[] args){
int[] array={4,5,6};
for(int i:array){
System.out.println(i);
}
}
//标准库中的输出
public static void main(String[] args){
List list=new ArryList();
list.add(1);
list.add(2);
list.add(3);
for(Object obj:list){
System.out.println(obj);
}
}
//映射的输出
public static void main(String[] args){
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
for (Map.Entry<String, String> stringStringEntry : map.entrySet()) {
System.out.println(stringStringEntry.getKey() + stringStringEntry.getValue());
}
}
2、逻辑运算中,与和短路与
注意,逻辑运算中参与运算的是boolean类型的变量,如果是数值的话,&被当作位运算符。
public class test{
public static void main(String[] args){
int num=10;
if(true & (num++>0)) System.out.println(num);//11
if(true && (num++>0)) System.out.println(num);//10
}
}
3、>>>无符号位移和>>有符号位移
这两个都是位运算符,但是>>>移动后无论正负数都补0,而>>正数补0负数补1。造成的结果就是,负数无符号位移后是正数,而有符号位移之后还是负数。
-15>>>2
-15的二进制:11111111 11111111 11111111 11110001
移动之后:00111111 11111111 11111111 11111100 (01舍弃)
这个数好大的,如何计算呢?
22+23+24+…+230=1073741820
计算结果:1073741820
-15>>>2
-15的二进制:11111111 11111111 11111111 11110001
移动之后:00111111 11111111 11111111 11111100 (01舍弃)
这个数好大的,如何计算呢?
22+23+24+…+230=1073741820
计算结果:1073741820
4、break、continue指定特定循环结束
label:for(int i=0;i<n;++i){
for(int j=0;j<m;++j)
if(j==2) break label;
}