JAVA 小抄

来源:互联网 发布:手机淘宝截图生成器 编辑:程序博客网 时间:2024/06/03 15:57
`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");         //返回 10parseInt("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)

0 0
原创粉丝点击