
来自:互联网全栈架构
switch必须加上break才结束
int count = 1;
switch(count){
case 1:
System.out.println("one");
case 2:
System.out.println("two");
case 3:
System.out.println("three");
}
逻辑运算符的“短路”现象
int num = 1;
System.out.println(false && ((num++)==1));
System.out.println(num);
数组下标从零开始
int[] arr = new int[]{1,3,5,7,9};
for(int i=0;i<arr.length;i++){
System.out.println("the element is:"+arr[i]);
}
String str = "hello world";
System.out.println(str.charAt(1));
我们知道,charAt的作用是获取字符串中某个位置的字符,然而,上面的代码并不是输出第一个字符h,而是e,因为数组是从零开始计数的,这个也是比较“坑爹”啊。当然,设计者这么做的原因是考虑到了内存偏移量的因素。
ArrayList遍历删除时报错
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("bc");
list.add("bc");
list.add("abcd");
list.add("abcdef");
//报错
int length = list.size();
for(int i = 0;i < length;i++){
if(list.get(i).equals("bc")){
list.remove(i);
}
}
}
for(int i=0;i<list.size();i++){
if(list.get(i).equals("bc")){
list.remove(i);
}
}
字符转成数字的坑
char symbol = '8';
System.out.println((int) symbol);
while循环体的“障眼法”
对于while循环语句,如果你没有加上大括号,即使后面的语句挨在一起,也只会执行第一条statement,比如:
int i = 0;
while(i++<3)
System.out.print("A");
System.out.print("B");
int i = 0;
while(i++<3)
System.out.print("A");System.out.print("B");
Integer类有缓存
public static void main(String[] args){
Integer a = 100;
Integer b = 100;
Integer c = 200;
Integer d = 200;
System.out.println(a==b);
System.out.println(c==d);
}
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
空方法体导致死循环
int i = 1;
while(i<4){
System.out.println(i++);
}
int i = 1;
while(i<4);{
System.out.println(i++);
}
神奇的=+
int i = 100;
i =+ 2; //注意,加号在后面
System.out.println(i);
Java注释能够识别Unicode
public static void main(String[] args){
// \u000d System.out.println("Hello World!");
}
特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢

