Java基础之详解基本数据类型的使用

网友投稿 248 2023-01-01

Java基础之详解基本数据类型的使用

一、整型

主要扩展一下不同进制的整型

二进制、八进制、十进制、十六进制

* 二进制 : 0B(数字零+B) 0b(数字零+b)

* 八进制 :0(数字零开头)

* 十进制 :正常写就是十进制

* 十六进制 : 0X (数字零+X)0x (数字零+x) A-F 代表 10-15

1.1 测试代码

/**

* 进制 :

* 二进制 : 0B(数字零+B) 0b(数字零+b)

* 八进制 :0(数字零开头)

* 十进制 :正常写就是十进制

* 十六进制 : 0X (数字零+X)0x (数字零+x)

* A-F 代表 10-15

*

*/

int i2_1 = 0b10; // 二进制的 2

int i2_2 = 0B10;

int i8 = 010; // 八进制的 8

int i10 = 10; // 十进制的 10

int i16_1 = 0X1B; // 十六进制的 16+11 = 27

int i16_2 = 0x1B;

System.out.println("二进制:i2_1 = "+i2_1);

System.out.println("二进制:i2_2 = "+i2_2);

System.out.println("八进制:i8 = "+i8);

System.out.println("十进制:i10 = "+i10);

System.out.println("十六进制:i16_1 = "+i16_1);

System.out.println("十六进制:i16_2 = "+i16_2);

1.2 运行结果

二进制:i2_1 = 2

二进制:i2_2 = 2

八进制:i8 = 8

十进制:i10 = 10

十六进制:i16_1 = 27

十六进制:i16_2 = 27

二、浮点型

【特别注意】程序中尽量不要使用浮点型的数据进行比较,否则可能会出现非常严重的问题

浮点数的诡异比较

1. float 和 double 的数据不可直接进行比较 :

float类型:有限的离散数据,舍入误差,所以不等于double同数据

2. float 和 float 的数据比较不可直接使用 ==

【结论】 : 当涉及到 浮点数的比较的时候:

思路一 : 做差 小于某个数

思路二 : 使用 大数类型 BigDecimal

2.1 测试代码(很关键)

/**

* 浮点数的诡异比较

* 1. float 和 double 的数据不可直接进行比较 :

* float类型:有限的离散数据,舍入误差,所以不等于double同数据

* 2. float 和 float 的数据比较不可直接使用 ==

*

* 【结论】 : 当涉及到 浮点数的比较的时候:

* 思路一 : 做差 小于某个数

* 思路二 : 使用 大数类型 BigDecimal

*/

float f1 = 1.56f;

double f2 = 1.56;

System.out.println("f1 = "+f1);

System.out.println("f2 = "+f2);

System.out.println(" f1 是否与 f2 的值相等 : "+(f1 == f2));

float d1 = 1231238142342342342909f;

float d2 = d1 +1;

System.out.println("d1 = "+d1);

System.out.println("d2 = "+d2);

System.out.println("d1 是否与 d2 的值相等 : "+(d1 == d2));

2.2 运行结果

f1 = 1.56

f2 = 1.56

 f1 是否与 f2 的值相等 :  false

d1 = 1.2312381E21

d2 = 1.2312381E21

d1 是否与 d2 的值相等 : true

三、字符的本质是数字

字符类型的数据,本质上是一个数字

字符对应的是Unicode 编码表中数字

可以直接写 U0000 UFFFF (U后跟着的是十六进制的数)

【特殊的字符】 : 转义字符***

3.1 测试代码

char c1 = 'a';

char c2 = '国';

char c3 = '\u0065'; // 十六进制 65 对应 unicode 编码表中的 小写字母 e

System.out.println("c1 = " +c1+" ; (int)c1 = "+(int)c1);

System.out.println("c2 = " +c2+" ; (int)c2 = "+(int)c2);

System.out.println("c3 = "+c3);

3.2 运行结果

c1 = a ; (int)c1 = 97

c2 = 国 ; (int)c2 = 22269

c3 = e

四、字符串的比较

【注意】 字符串String 不属于基本数据类型!

此处的比较主要是体会一下 值 的比较 和 对象地址的比较

4.1 测试代码

String s1 = new String("Hello World!");

String s2 = new String("Hello World!");

String s3 = "Hello World!";

String s4 = "Hello World!";

System.out.println("s1 是否与 s2 相等 ? : "+(s1 == s2)); // false 对象的比较

System.out.println("s3 是否与 s4 相等 ? : "+(s3 == s4)); // true 值的比较

4.2 运行结果

s1 是否与 s2 相等 ? : false

s3 是否与 s4 相等 ? : true

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:圆通快递物流查询单号跟踪(圆通速递快件跟踪查询单号)
下一篇:网站API接口到APP(网站api对接)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~