`1.
String str="asd";
StringBuilder stringbuilder = new StringBuilder(str);
将String对象转换为StringBuilder对象。
Stringbuilder.toString();
将StringBuilder对象转化为String对象。
2.
Object array;
Object [] newarray=Arrays.copyOfRange(array,start,end);
复制一个从start到end的任意类型的数组,但不包括end这个位置的元素。
3.
Character.isLetterOrDigit(char)
判断char是不是字母或数字。
4.
public String reverse(String s){
StringBuilder stringbuilder = new StringBuilder(s);
stringbuilder.reverse();
return stringbuilder.toString();
}
实现字符串反转,String类型没有直接的reverse相关方法。
5.
Integer.parseInt(string, radix)用法
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
parseInt("10"); //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (2+1)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8
6.
char型数组转化为String的方法:
char [] ch={'a','s','d'};
String string=new String(ch);
String.valueOf(ch);
7.
判断int类型数值是否overflow
if((r*10)/10 != r) return 0; // check overflow without long
8.
int a = 2,b = 5;
a+=b+=a+=b;
问最后a,b分别是多少。
a=14,b=12
a+=b+=a+=b;
等价于
a=a+(b=b+(a=a+b));
1、运算过程中注意a是原子类型 值是拷贝的
2、a=a+(××××); //+结合率是从左到右。 即先将a压栈 然后计算括号内的,这样算就明白了,具体请看用javap -verbose 来观看字节码操作
0: iconst_2
1: istore_1 —>a
2: iconst_5
3: istore_2 —>b
4: iload_1 载入a(2)
5: iload_2 载入b(5)
6: iload_1 载入a(2)
7: iload_2 载入b(5)
8: iadd 7 (第6和7行累计 结果压栈)
9: dup 复制栈顶
10: istore_1 a(7) 把栈顶结果保存到a
11: iadd 12 (栈顶7+第5行)
12: dup 复制12
13: istore_2 b(12) 结果保存到b
14: iadd 12+2(栈顶+第4行)
15: istore_1 a(14)