标签:表示 test double 错误 als 最大值 ref ble oat
1、Java 基本数据类型与引用数据类型案例:
class test {
public static void main(String[] args){
# 引用数据类型 = 基本数据结构 + 方法
test t = new test();
# 基本数据结构
char c1 = ‘a‘;
byte b1 = 2;
short s1 = 13;
int i1 = 12;
long l1 = 123;
double d1 = 1234;
System.out.println(""+c1+i1);
System.out.println(t.judgeType(c1));
}
public String judgeType(Object temp) {
if (temp instanceof Byte) {
return "是Byte类型";
} else if (temp instanceof Integer) {
return "是Integer类型";
} else if (temp instanceof Short) {
return "是Short类型";
} else if (temp instanceof String) {
return "是String类型";
} else if (temp instanceof Long) {
return "是Long类型";
} else if (temp instanceof Float) {
return "是Float类型";
} else if (temp instanceof Double) {
return "是Double类型";
} else if (temp instanceof Character) {
return "是Character类型";
} else {
return "是引用数据类型";
}
}
}
2、算术运算符
#错误: 不兼容的类型: 从double转换到int可能会有损失
int i1 = 0.1;
# 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
int i1 = (int)0.1;
int i1 *= 0.1;
# 结果为 0
System.out.println(i1);
3、逻辑运算符
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算!
建议使用 &&
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算!
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
示例:
# 结果异常: Exception in thread "main" java.lang.ArithmeticException: / by zero
if ( false & (1/0 > 1) ){
System.out.println("true");
}else{
System.out.println("false");
}
# 结果为false
# 双&时,如果左边为假,那么右边不参与运算!
if ( false && (1/0 > 1) ){
System.out.println("true");
}else{
System.out.println("false");
}
4、位运算符
// 带符号右移: 最高位用符号位补
// -8
System.out.println(-31>>2);
// 无符号右移: 最高位用0补
// 1073741816
System.out.println(-31>>>2);
# 位运算解决基本数据类型交换
int m = 5;
int n = 17;
System.out.println("m:"+m+" n:"+n);
m = m ^ n;
n = m ^ n; // (5 ^ 17) ^ 17 = 5
m = m ^ n; // (5 ^ 17) ^ 5 = 17
System.out.println("m:"+m+" n:"+n);
5、三元运算符
// 三元运算符与if-else的联系与区别
// 1、三元运算符可简化if-else语句
// 2、三元运算符要求必须返回一个结果
// 3、if后的代码块可有多个语句
示例:
// 三个值寻找最大值
int m = -5;
int n = 17;
int k = 12;
System.out.println( (k > ((m > n)? m:n)) ? k : ((m > n)? m:n) );
标签:表示 test double 错误 als 最大值 ref ble oat
原文地址:http://blog.51cto.com/f1yinsky/2131315