Java简明教程系列(5) - 基本数据类型
程序员文章站
2024-01-04 21:27:52
...
变量其实是内存中保留的一个区域用来存储一些值,这也就是说,当我们创建一个变量时,我们也就在内存中保留了一小块存储空间。
根据变量指定的数据类型,操作系统分配存储空间并决定这一块保留空间能存储哪些内容。因此,我们通过给变量指定不同的数据类型,就可以在这些变量中存放整型数据,小数型数据或字符型数据。
往大的分类上来说,Java中有两种数据类型:
- 原始数据类型
- 引用(对象)数据类型
原始数据类型
Java支持8种原始数据类型。原始数据类型在Java语言中被预先定义了,定义这类数据类型时只需使用Java中的关键字即可。我们来具体看下这8种数据类型。
byte(字节)类型
- byte数据类型是8比特位带符号的二进制补码整型
- 允许存储的最小值是-128(-2^7,-2的7次方)
- 最大值是127(2^7-1)
- 默认值是0
- byte数据类型是用于保存大型数组时节省内存空间,大多数时候是替代int类型,因为byte类型占用的存储空间只有int类型的四分之一。
- 用法示例:byte a = 100, byte b = -50
short(短整型)类型
- short数据类型是16比特位带符号的二进制补码整型
- 允许存储的最小值是-32768(-2^15)
- 最大值是32767(2^15-1)
- short数据类型和byte类型一样都可以用来节省内存空间,short类型占用的空间是int类型的一半
- 默认值是0
- 用法示例:short s = 10000, short r = -20000
int(整型)类型
- int数据类型是32比特位带符号的二进制补码整型
- 最小值是-2,147,483,648(-2^31)
- 最大值是2,147,483,647(2^31-1)
- 在不关心内存开销的情况下,int类型通常用于整型的默认数据类型
- 默认值是0
- 用法示例:int a = 100000,int b = -200000
long(长整型)类型
- long数据类型是64比特位带符号的二进制补码整型
- 最小值是-9,223,372,036,854,775,808(-2^63)
- 最大值是9,223,372,036,854,775,807(2^63-1)
- long类型一般用于超过int类型数值范围的情形
- 默认值是0L(注意后面有个L)
- 用法示例:long a = 100000L, long b = -20000L
float(单精度浮点型)类型
- float是IEEE 754标准下的单精度浮点型,占32比特位
- float主要用在保存包含浮点数的大型数组时,可以节省存储空间
- 默认值是0.0f(注意后面有个f)
- float不能被用于存储精度非常高的数值,例如货币计量
- 用法示例:float f1 = 234.5f
double(双精度浮点型)类型
- double数据类型是IEEE 754标准下的双精度浮点型,占64比特位
- double类型通常是十进制数值默认使用的数据类型,通常也是默认选择使用这个类型。
- double类型不应该被用于精度非常高的数值,例如货币计量
- 默认值是0.0d
- 用法示例:double d1 = 123.4
boolean(布尔)类型
- boolean类型表示1个比特位的信息
- boolean类型只有两种取值:true和false
- 这个数据类型用于简单的真/假条件判断标识
- 默认值是false
- 用法示例:boolean one = true
char(字符)类型
- char数据类型是单个的16比特位的Unicode字符
- 最小的值是字符'0',也就是Unicode编码'\u0000'
- 最大的值是Unicode编码'\uffff'
- char类型可以用于存储任意字符
- 用法示例:char letterA = 'A'
引用数据类型
- 引用变量由类中定义的构造器创建,其被用于访问对象,这种变量被声明为一种不可改变的特定类型,例如前面章节中提到的Employee和Puppy类等等。
- 类对象和各种类型的数组变量都属于引用数据类型。
- 所有引用变量的默认值都是null。
- 引用变量可以被用来指向声明类型或兼容类型的任何对象。
- 用法示例:Animal animal = new Animal("dog");
Java转义字符
转义字符指的是一些能表示源码固定值的字符,在代码中可以直接替代而不需要经过计算。字符可以分配给任何原始类型变量,例如:
byte a = 68;
char a = 'A';
byte,int,long和short可以被表示为10进制,16进制或8进制。数值前面加上0表示8进制,数值前面加0x表示16进制。这些数值前面的0和0x就是用于转义的。
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
Java中字符串的表示方法和其它编程语言中的基本类似,都是用双引号引起来的中间部分的一串字符。下面是几个字符串的例子:
"Hello world"
"two\nline"
"\"This is in quotes\""
String和char类型的变量值可以用Unicode来表示,例如:
char a = '\u0001';
String a = "\u0001";
Java语言中支持一些用于String和char类型中的转义字符,有这些:
符号 | 字符含义 |
---|---|
\n | Newline,换行 (0x0a) |
\r | Carriage return,回车 (0x0d) |
\f | Formfeed,换页 (0x0c) |
\b | Backspace,退格 (0x08) |
\s | Space,空格 (0x20) |
\t | tab,制表符 |
\" | Double quote,双引号 |
\' | Single quote,单引号 |
\\ | backslash,反斜杠 |
\ddd | Octal character,八进制字符 (ddd) |
\uxxxx | Hexadecimal UNICODE character,十六进制Unicode编码 (xxxx) |
本篇小结
更多交流,欢迎加群(584017112):