三目运算符test
来源:互联网 发布:java 迭代器 从头 编辑:程序博客网 时间:2024/05/24 06:35
// 3目运算符
// byte char short int long float double boolean
// java默认的整形int,默认的浮点型double
// 一般自动转换顺序 小-->大 char-int-long-double int-float
private static void threeOp() {
// 基本类型转换
System.out.println(1 == 2 ? 'A' : 66); //B int->char 可能造成乱码
System.out.println(1 == 2 ? 'A' : Short.MAX_VALUE+1d);//32768.0 short->double
System.out.println(1 == 1 ? 'A' : 66d);//65.0 char->double
System.out.println(1 == 1 ? 'A' : 66l);//65 char->long
System.out.println(1 == 2 ? 'A' : Long.MAX_VALUE);// long-long
System.out.println(1 == 1 ? 'A': 3.0f); // char-float
System.out.println(1 == 2 ? 'A': false); //互不影响
System.out.println(1 == 2 ? Short.MAX_VALUE: Short.MAX_VALUE+1); //short->int
System.out.println(1 == 2 ? Integer.MAX_VALUE: Integer.MAX_VALUE+1L);//int->long
System.out.println(1 == 1 ? 33d: 22.0f); //short-float
System.out.println(1 == 1 ? 33: 22.0f); //int-float
System.out.println(1 == 1 ? Long.MAX_VALUE: 22.0f);//9.223372E18 long-float,可能数据丢失
// System.out.println(Long.MAX_VALUE-9.223372E18);//大于0
System.out.println(1 == 1 ? Long.MAX_VALUE: 22.0);// long-double
//对象类型自动拆箱为基本类型
Map<String,Boolean> map = new HashMap<String, Boolean>();
map.put("1", false);
Boolean b = (map!=null ? map.get("test") : false); //空指针异常
//反编译
// Boolean b = Boolean.valueOf((map != null) ? ((Boolean)map.get("test")).booleanValue() : false);
//原因在与map.get("test")得到null。null再引用booleanValue于是异常
//解决
// Boolean b = (map!=null ? map.get("test") : Boolean.FALSE);
// byte char short int long float double boolean
// java默认的整形int,默认的浮点型double
// 一般自动转换顺序 小-->大 char-int-long-double int-float
private static void threeOp() {
// 基本类型转换
System.out.println(1 == 2 ? 'A' : 66); //B int->char 可能造成乱码
System.out.println(1 == 2 ? 'A' : Short.MAX_VALUE+1d);//32768.0 short->double
System.out.println(1 == 1 ? 'A' : 66d);//65.0 char->double
System.out.println(1 == 1 ? 'A' : 66l);//65 char->long
System.out.println(1 == 2 ? 'A' : Long.MAX_VALUE);// long-long
System.out.println(1 == 1 ? 'A': 3.0f); // char-float
System.out.println(1 == 2 ? 'A': false); //互不影响
System.out.println(1 == 2 ? Short.MAX_VALUE: Short.MAX_VALUE+1); //short->int
System.out.println(1 == 2 ? Integer.MAX_VALUE: Integer.MAX_VALUE+1L);//int->long
System.out.println(1 == 1 ? 33d: 22.0f); //short-float
System.out.println(1 == 1 ? 33: 22.0f); //int-float
System.out.println(1 == 1 ? Long.MAX_VALUE: 22.0f);//9.223372E18 long-float,可能数据丢失
// System.out.println(Long.MAX_VALUE-9.223372E18);//大于0
System.out.println(1 == 1 ? Long.MAX_VALUE: 22.0);// long-double
//对象类型自动拆箱为基本类型
Map<String,Boolean> map = new HashMap<String, Boolean>();
map.put("1", false);
Boolean b = (map!=null ? map.get("test") : false); //空指针异常
//反编译
// Boolean b = Boolean.valueOf((map != null) ? ((Boolean)map.get("test")).booleanValue() : false);
//原因在与map.get("test")得到null。null再引用booleanValue于是异常
//解决
// Boolean b = (map!=null ? map.get("test") : Boolean.FALSE);
}
小结
三目运算符的类型转换存在向下转型的情况,而且对象引用遇到基本类型会自动拆箱
所以在使用时,注意不同数据类型间的转换情况
0 0
- 三目运算符test
- 赋值运算符Test
- 关系运算符Test
- 运算符Test
- 三目运算符
- 三目运算符
- 三目运算符
- 三目运算符
- 三目运算符
- 三目运算符
- ******************** 三目运算符 ********************
- 三目运算符
- 三目运算符?:
- 三目运算符
- 三目运算符
- 三目运算符:
- 三目运算符
- 三目运算符
- ScrollView能包裹ListView和其他控件一起滚动
- 大数据量下高并发同步的讲解(不看,保证你后悔)
- Redis的安装配置与使用
- Typescript I: 遍历Array的方法:for, forEach, every等
- 属性框
- 三目运算符test
- jdbc 的缺点
- hbase
- 单元测试流程
- 前端入门(一)
- xml的解析一
- POJ 1002 练习
- Android——体系架构 +四层
- iOS及Mac开源项目和学习资料(一)