| 基本数据类型 | 占用字节 | 取值范围 | 默认值 | 容器类 |
|---|---|---|---|---|
| byte(字节型) | 1 | [-27,27-1] 即[-128,127] | 0 | Byte |
| short(短整型) | 2 | [-215,215-1] 即[-32768,32767] | 0 | Short |
| int(整型) | 4 | [-231,231-1] 即[-2147483648,2147483647] | 0 | Integer |
| long(长整型) | 8 | [-263,263-1] 即[-9223372036854774808,9223372036854774807] | 0 | Long |
| float(单精度浮点型) | 4 | [3.402823e+38, 1.401298e-45] | 0.0F | Float |
| double(双精度浮点型) | 8 | [1.797693e+308,4.9000000e-324] | 0.0L | Double |
| char(字符型) | 2 | \u0000(空格) | Character | |
| boolean(布尔型) | 1 | true or false | false | Boolean |
字符型(char)
char 有以下的初始化方式:
char c = ‘a‘; 可以是汉字,因为是Unicode编码
char c = 1010; // 可以是十进制数、八进制数、十六进制数等等。
char c = ‘\0‘; // 可以用字符编码来初始化,如:‘\0‘ 表示结束符,它的ascll码是0,这句话的意思和 c = 0 是一个意思。
Java是用unicode 来表示字符,“中” 这个中文字符的unicode 就是两个字节。
String.getBytes(encoding) 方法获取的是指定编码的byte数组表示。
通常gbk / gb2312 是两个字节,utf-8 是3个字节。
如果不指定encoding 则获取系统默认encoding 。
Java是面向对象语言,其概念为一切皆为对象,但基本数据类型算是个例外,基本数据类型大多是面向机器底层的类型,它是“值”而不是一个对象,它存放于“栈”中而不是存放于“堆”中,但Java一切皆为对象的概念不是说说而已,它为每一个基本数据类型都做了相应的包装类,我们日常使用中大多情况下都会使用着包装类
原文:https://www.cnblogs.com/sanye613/p/basis.html