Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
30 lines (18 loc) · 1.88 KB

File metadata and controls

30 lines (18 loc) · 1.88 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Java中的整型主要包含byte、short、int和long这四种表示的数字范围也是从小到大的之所以表示范围不同主要和他们存储数据时所占的字节数有关
先来个简答的科普1字节=8bit)。java中的整型属于有符号数
先来看计算中8bit可以表示的数字
最小值10000000 (-128)(-2^7)
最大值01111111127)(2^7-1)
具体计算方式参考:[Java中为什么byte类型的取值范围为-128~127? - CSDN博客](https://blog.csdn.net/qq_23418393/article/details/57421688)
整型的这几个类型中
  byte:byte用1个字节来存储范围为-128(-2^7)到127(2^7-1),在变量初始化的时候byte类型的默认值为0
  shortshort用2个字节存储范围为-32,768 (-2^15)到32,767 (2^15-1),在变量初始化的时候short类型的默认值为0一般情况下因为Java本身转型的原因可以直接写为0
  int:int用4个字节存储范围为-2,147,483,648 (-2^31)到2,147,483,647 (2^31-1),在变量初始化的时候int类型的默认值为0
  long:long用8个字节存储范围为-9,223,372,036,854,775,808 (-2^63)到9,223,372,036, 854,775,807 (2^63-1),在变量初始化的时候long类型的默认值为0L或0l也可直接写为0
上面说过了整型中每个类型都有一定的表示范围但是在程序中有些计算会导致超出表示范围即溢出如以下代码
int i = Integer.MAX_VALUE;
int j = Integer.MAX_VALUE;
int k = i + j;
System.out.println("i (" + i + ") + j (" + j + ") = k (" + k + ")");
输出结果:`i (2147483647) + j (2147483647) = k (-2)`
这就是发生了溢出溢出的时候并不会抛异常也没有任何提示所以在程序中使用同类型的数据进行运算的时候一定要注意数据溢出的问题
Morty Proxy This is a proxified and sanitized view of the page, visit original site.