Java基本类型


Java基本类型

​ Java中的变量分为基本类型和引用类型。基本类型是一些特别小的、简单的变量,对于这种变量,直接存储值并放在堆栈中会更高效;引用类型是和Java对象所关联的一个操纵对象的标识符,可以通过new操作符使引用和相应的对象相关联。

​ Java提供了八中基本类型,其中有六种数字类型(四个整数型、两个浮点型),一种字符类型,一种布尔类型。每种基本类型所占的存储空间的大小都是确定的,它们并不像其他大多数语言那样随机器硬件架构的变化而变化。这就是Java比其他大多数语言所编写的程序更具可移植性的原因之一。

byte

  • byte数据类型是8位的、有符号的、以二进制补码表示的整数;
  • byte能表示的最大值为 +127(2^7-1), 最小值为 -128(-2^7);
  • byte数据类型多用于I/O流,因为8bits是数据存取的常用最小单位。

short

  • short数据类型是16位的、有符号的、以二进制补码表示的整数;
  • short能表示的最大值为 32767(2^15-1),最小值是 -32768(-2^15);
  • short类型常用于存储一些比较小的整数。

int

  • int 数据类型是32位的、有符号的、以二进制补码表示的整数;
  • int能表示的最大值是 2,147,483,647(2^31 - 1),最小值是 -2,147,483,648(-2^31);
  • 一般的整型变量默认为int类型。

long

  • long 数据类型是 64 位的、有符号的、以二进制补码表示的整数;
  • long能表示的最大值是 9,223,372,036,854,775,807(2^63 -1),最小值是 -9,223,372,036,854,775,808(-2^63);
  • long主要用于存储比较大的整数。
  • long类型初始化需要在整数后加L/l,否则这个整数将作为int型解析,可能会导致溢出。

float

  • float 数据类型是单精度的、32位的、有符号的、符合IEEE 754标准的浮点数;
  • float用来表示精确度较低的浮点数,有效范围为7位。

double

  • double 数据类型是双精度的、64 位的、有符号的、符合IEEE 754标准的浮点数;
  • double用来表示精确度较高的浮点数,有效范围为16位。

boolean

  • boolean数据类型只有ture、false两种值;
  • boolean类型所占存储空间的大小没有明确指定。

char

  • char数据类型是16位的、单一的Unicode字符。
  • char最大值是 \uffff(即为65,535),最小值是 \u0000(即为0);

自动类型转换

​ 不同的数据类型之间可以混合运算,Java会将它们转换成同一类型,然后再进行运算,转换从低级转换到高级:

1
2
//低--------------------------------------------高
//byte,short,char -> int -> long -> float -> double

自动类型转换只能从低级向高级转换,不能对boolean进行类型转换。

强制类型转换

​ 强制类型转换可以从高级转换到低级,但有可能会损失精度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Main {
public static void main(String[] args) {
double d = 1.234567890123456789;
float f = (float) d;
long l = 0xFFFFFFFFFL;
int i = (int) l;
char c = (char) 100;
byte b = (byte) 200;
System.out.println(d);
System.out.println(f);
System.out.println(l);
System.out.println(i);
System.out.println(c);
System.out.println(b);
}
}
// 运行结果为:
// 1.2345678901234567 double的精度为16位,最后的89损失掉了
// 1.2345679 float的精度为7位,后面的损失掉了
// 68719476735
// -1 l的大小超出int的表示范围,溢出,高位舍去。
// d 'd'的ascii码值为100
// -56 200超出byte的表示范围,溢出,高位舍去。

文章作者: Amos Liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Amos Liu !
 上一篇
算法练习1 算法练习1
算法练习1Add TwoNumbersYou are given two non-empty linked lists representing two non-negative integers. The digits are store
2017-04-01
本篇 
Java基本类型 Java基本类型
Java基本类型​ Java中的变量分为基本类型和引用类型。基本类型是一些特别小的、简单的变量,对于这种变量,直接存储值并放在堆栈中会更高效;引用类型是和Java对象所关联的一个操纵对象的标识符,可以通过new操作符使引用和相应的对象
2017-03-27
  目录