文章目录
Java
javaSE
1. 获取参数类型
该参数.getClass().toString();
// 获取数据类型
public static String getType(Object a){
return a.getClass().toString();
}
默认的整型是int,浮点型是double
getType(1); // class java.lang.Integer 即 int
getType(1.5); // class java.lang.Double 即double
long a = 1;
getType(a+1); // 是 class java.lang.Long 即 当 两个number类型 相加 时 结果为范围大的那个类型
char a= 'a';
getType(a+1); // class java.lang.Integer 即 当 字符 和 number 类型计算时,结果为int,这里的字符使用 ascill计算
String a = "a";
getType(a+1); // class java.lang.String 即 , 字符串相加 必为 字符串
2. 参数类型转换
转换为整型时,可以通过(int) 转换非字符(包括字符串)和 boolean的其他类型 或 通过 Integer.parseInt()转换字符串 ,可以通过设置三元运算符
int m;
char d = 'a';
m = (int )d; //97 ascill 码
String e = "123";
m = Integer.parseInt(e); // 字符串转换,但其内必须为数字,如果为字符串并不会转换为acsill码
boolean n = true;
m = n ? 1 : 0 ; // 这里判断 ?左侧为true ,则返回 1,否则为0
3. / 和 % ,++ , += , -= , /= , %=
共有n位 /10^m 获取前n-m位 %10^m 获取后m位
int a = 123456789; // 9位
int m ; // 获取后几位
int n; // 获取前几位
// Math.pow(x,y)是math中的方法, 指的是 x 的 y 次方
n = (int) (a / Math.pow(10,2 )); // 获取9-2位 得到1234567
m = (int) (a % Math.pow(10,2)); // 获取后两位 得到89
++ 自增 1 , 在使用 ++ 时 ,不会像 + 1 改变 其类型
– 自减1 ,其他同上
+=10 自增10
int a = 0;
a++; //这里结束就是a+1了
System.out.println(a); // a = 1了
a = 0;
System.out.println(a++); // 这里 a = 0 , 然后使用 a 的值,比如这里是输出,然后给a+1
System.out.println(++a); // 这里 a = 1,然后 a+1 ,然后使用 a 的值,这里是输出
a = 0;
System.out.println(a++ + ++a); // 这里先进行 ++a ,a=1 再进行a++ ,所以 = 2
a= 2;
System.out.println(a-- + --a);// 这里先进行 --a , a = 1 再进行a-- ,所以 = 2
Bug
### 1. java.lang.NumberFormatException
有参数转换错误
String e = "f";
m = Integer.parseInt(e); // 这里 字符f 不能被转换
a.lang.NumberFormatException
有参数转换错误
String e = "f";
m = Integer.parseInt(e); // 这里 字符f 不能被转换