C4-java-01-Java 数据类型

4 篇文章 0 订阅

任务联系

1.执行代码

int a = 1;
String b = "2";
String c = "3";
System.out.println(a + b + c);

输出:123

java装箱机制,int+string,int类型被强转为string,然后string+进行字符串拼接。

2.执行代码

float f1 = 9.9f;
float f2 = 0.1f;
System.out.println(f1 - f2);

9.799999

浮点数加减法运算,将float转换到内存存储,会出现精度丢失,有效位数只能保存24位,多余部分会丢失。在内存中相减后,再从二进制转换回十进制,就会出现减不尽现象。详见下面大神文章。

float类型数据精度问题:12.0f-11.9f=0.10000038,"减不尽"为什么? - 一只艾米果 - 博客园

3.嵌套枚举

public enum VehicleCategory {
    Car(Vehicle.Car.class),
    Suv(Vehicle.Suv.class);
    Vehicle[] values;
    
    VehicleCategory(Class<? extends Vehicle> kind) {
        values = kind.getEnumConstants();
        }
    
    interface Vehicle {
        enum Car implements Vehicle {
            天籁,讴歌,雅阁
            }
        enum Suv implements Vehicle {
            途观,汉兰达,陆巡
            }
        }
    }

4.阅读 on java 8中的章节

《第四章 运算符》

运算符种类,根据使用频率排列。

1.关系运算符:产生一个布尔结果来表示操作数之间的关系。true或false。关系运算符包括小于 <,大于 >,小于或等于 <=,大于或等于 >=,等于 == 和不等于 !=== 和 != 可用于所有基本类型,但其他运算符不能用于基本类型 boolean,因为布尔值只能表示 true 或 false。

使用场景:实际工作中更多的用于if条件判断。

2.逻辑运运算符:每个逻辑运算符 && (AND)、||OR)和 !)根据参数的逻辑关系生成布尔值 true 或 false

使用场景:条件判断中,用来连接多个关系运算符表达式。

3.算术运算符:包括加号 +、减号 -、除号 /、乘号 * 以及取模 %(从整数除法中获得余数)。整数除法会直接砍掉小数,而不是进位。

使用场景:遍历循环中使用较多(++形式),项目特性原因,用的较少。

4.三元运算符:也称为条件运算符。这种运算符比较罕见,因为它有三个运算对象。但它确实属于运算符的一种,因为它最终也会生成一个值。这与本章后一节要讲述的普通 if-else 语句是不同的。下面是它的表达式格式:

布尔表达式 ? 值 1 : 值 2

若表达式计算为 true,则返回结果 值 1 ;如果表达式的计算为 false,则返回结果 值 2

使用场景:在报文字段传值选取时,使用的较多,即根据对象中某个属性判断,如果符合条件,那取值1(对象的某个属性值),不然取值2(对象的另一个属性值)。

5.字符串运算符:主要用途为连接字符串,若表达式以一个 String 类型开头(编译器会自动将双引号 "" 标注的的字符序列转换为字符串),那么后续所有运算对象都必须是字符串。

使用场景:由项目特性决定了,该类运算符更多的用于log日志输出等场景。

6.位运算符:基本不使用

7.位移运算符:左移位运算符 << 能将其左边的运算对象向左移动右侧指定的位数(在低位补 0)。右移位运算符 >> 则相反。右移位运算符有“正”、“负”值:若值为正,则在高位插入 0;若值为负,则在高位插入 1。Java 也添加了一种“不分正负”的右移位运算符(>>>),它使用了“零扩展”(zero extension):无论正负,都在高位插入 0。

使用场景:基本不使用

《第二十一章 数组》

原著中说因为Java Collection 和 Stream 类中高级功能的不断增加,日常使用数据已经较少,可以略过。

数组拥有较高的效率,使用数组存储和随机访问对象引用序列是非常高效的。数组是简单的线性序列,这使得对元素的访问变得非常快。但是较快的速度牺牲了灵活性。数组的大小是固定的,且在它的生命周期内无法更改。

一维数组,多维数据(即数组中嵌套数组),

《第二十二章 枚举》

Java中的枚举除了不能被继承外,与其他普通类没有区别,所以我们甚至可以为枚举类写方法或是覆盖方法。

1.enum数组。调用 enum 的 values() 方法,可以遍历 enum 实例 .values() 方法返回 enum 实例的数组。

2.enum数组有严格的顺序,按照申明时的顺序排序,从0开始。调用ordinal() 方法返回一个 int 值,这是每个 enum 实例在声明时的次序,从 0 开始。可以使用==来比较 enum 实例。

3.Enum 类实现了 Comparable 接口,所以它具有 compareTo() 方法

4.enum不能继承自一个enum之外,我们基本上可以将enum看作一个常规的类。也就是说,我们可以向enum中添加方法。需要先定义实例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值