Skip to content

Commit

Permalink
java基本类型及方法剖析
Browse files Browse the repository at this point in the history
  • Loading branch information
weijieming committed Jun 10, 2019
1 parent 07b24cc commit f968d02
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions doc/basetype.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,35 @@ java语言的7种数值类型之间可以进行类型转换,分为两种:自

#### 自动类型转换

发生条件:当该数据类型的数值表示范围小于另一种数据类型的数值表示范围时,进行自动类型转换
发生条件:
- 1.赋值运算:当该数据类型的数值表示范围小于另一种数据类型的数值表示范围时,赋值运算会进行自动类型转换。
- 2.表达式自动提升:当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型发生自动提升。整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。


![](../images/doc/basetype3.jpg)

> 这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
举例说明:

```
long x = 30;
float y = 14.3f;
System.out.println("x/y = " + x/y);
```
输出:
```
x/y = 1.9607843
```

long类型的长度为8个字节,占64位,表示范围为 -2^63 - (2^63 - 1)
java的浮点数采用二进制数据的科学计数法来表示,比如:对于float类型,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数.

float类型的长度为4个字节,占32位,表示范围为超过 -2^128 - 2^128

java的浮点数采用二进制数据的科学计数法来表示,对于float类型,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数.
由于float的指数部分对应的指数范围为-128~128,所以取值范围为:-2^128到2^128;精度(有效数字)看尾数位:
float的尾数位是23位,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位。




0 comments on commit f968d02

Please sign in to comment.