本文最后更新于
2024-01-28,距今已有 503
天,若文章内容或图片链接失效,请留言反馈。
03数据类型和运算符.md
数据类型和运算符

数据类型 | 默认值 | 大小 |
boolean | false | 1 比特 |
char | '\u0000' | 2 字节 |
byte | 0 | 1 字节 |
short | 0 | 2 字节 |
int | 0 | 4 字节 |
long | 0L | 8 字节 |
float | 0.0f | 4 字节 |
double | 0.0 | 8 字节 |
Tips:
1)bit(比特)
比特作为信息技术的最基本存储单位,非常小,但大名鼎鼎的比特币就是以此命名的,它的简写为小写字母“b”。
同学们都知道,计算机是以二进制存储数据的,二进制的一位,就叫做 1 比特,也就是说,比特要么为 0 要么为 1。
2)Byte(字节)
通常来说,一个英文字符是一个字节,一个中文字符是两个字节。字节与比特的换算关系是:1 字节 = 8 比特。
在往上的单位就是 KB,并不是 1000 字节,因为计算机只认识二进制,因此是 2 的 10 次方,也就是 1024 个字节。
3) char 为什么是两个字节?
因为在 Java 中使用的是 Unicode 字符集而不是 ASCII 字符集。char 表示一个 16 位的 Unicode 字符,其值范围在 ‘\u0000’(0)和 ‘\uffff’(65,535)(包含)之间。
单精度和双精度有什么不同?
单精度是这样的格式,1 位符号,8 位指数,23 位小数,有效位数为 7 位。

双精度是这样的格式,1 位符号,11 位指数,52 为小数,有效位数为 16 位。

取值范围取决于指数位,计算精度取决于小数位(尾数)。小数位越多,则能表示的数越大,那么计算精度则越高。
数据类型的转换
隐式转换和强制转换:
一、取值范围
byte < short < int < long < float < double
二、隐式转换
在非同种类型数据进行运算时,自动将数据类型放大
如 int a 和 double b 相加,则将 a 放大为 double 类型,计算结果为 double
byte,short,char 这三种类型在计算时都会先提升为 int,然后再进行计算。
三、强制转换
定义变量:目标数据类型 变量名 = (目标数据类型) 被转换数据
如 byte b = (byte) a 如 byte a = 10; byte b = 20; byte sum = (byte)(a + b);
字符串操作
“ + ”
从左到右,遇到字符后,全部为字符运算 如 (100 + 99 + “年” + 99)结果为(199 年 99)
自增自减符
a += b 等同于 *(a = a + b),其他同理
*注意,其在底层隐藏了一次强制类型转换,例如 short s = 1; s += 1 等同于 s = (short)(s + 1)
关系运算符
== ; != ; > ; >= ; < ; <= ; 其用于判断,返回值为布朗类
三元运算符
格式:关系表达式?表达式1:表达式2
当关系表达式True时,表达式1为返回值,否则表达式2为返回值
运算符的优先级
1 | . () {} |
2 | ! ~ ++ -- |
3 | * / % |
4 | + - |
5 | << >> <<< |
6 | < <= > >= instanceof |
7 | == != |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ?: |
14 | = += -= *= /= %= &= |