java 基本数据类型, primitive type
Contents
java 基本数据类型, primitive type
Java语言提供了八种基本类型: 六种数字类型 (四个整数型,两个浮点型) ,一种字符类型,一种布尔型。
- 整数: 包括 int, short, byte, long
- 浮点型: float, double
- 字符: char
- 布尔: boolean
java.lang.String 类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,应该用StringBuffer类
(1个字节是8个bit)
整数型: byte (1字节) 、short (2字节) 、int (4字节) 、long (8字节) 浮点型: float (4字节) 、double (8字节) 布尔型: boolean (1字节) 字符型: char (2字节)
boolean:
boolean数据类型表示一位的信息;
只有两个取值: true和false;
这种类型只作为一种标志来记录true/false情况;
默认值是false;
例子: boolean one = true。
byte
8位有符号整数
byte是一个字节保存的,有8个位.
byte取值的范围: -128—127
8位的第一个位是符号位,
0000 0001代表的是数字1
1000 0000代表的就是-1
正数最大为0111 1111,是数字127
负数最大为1111 1111,是数字-128
在java中采用的是补码的形式.
short
short数据类型是16位、有符号的以二进制补码表示的整数
最小值是-32768 (-2^15) ;
最大值是32767 (2^15 - 1) ;
Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是0;
例子: short s = 1000,short r = -20000。
char
16位Unicode字符
char类型是一个单一的16位Unicode字符;
最小值是’\u0000’ (即为0) ;
最大值是’\uffff’ (即为65,535) ;
char数据类型可以储存任何字符;
例子: char letter = ‘A’。
int
32位有符号整数
int数据类型是32位、有符号的以二进制补码表示的整数;
最小值是-2,147,483,648 (-2^31) ;
最大值是2,147,485,647 (2^31 – 1) ;
一般地整型变量默认为int类型;
默认值是0;
例子: int a = 100000, int b = -200000。
float
节数为4
32bit, 32位浮点数(floating-point)
数值范围为-3.4E38~3.4E38 (7个有效位)
float数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float在储存大型浮点数组的时候可节省内存空间;
默认值是0.0f;
浮点数不能用来表示精确的值,如货币;
例子: float f1 = 234.5f。
不声明时,默认为double,要声明float该写为
float PI=3.14f;
或者float PI = (float) 3.14;
long
64位有符号整数
long数据类型是64位、有符号的以二进制补码表示的整数;
最小值是-9,223,372,036,854,775,808 (-2^63) ;
最大值是9,223,372,036,854,775,807 (2^63 -1) ;
这种类型主要使用在需要比较大整数的系统上;
默认值是0L;
例子: long a = 100000L,int b = -200000L。
double
双精度浮点数在机内占 8 个字节,用 64 位二进制描述。
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。 数符占1位二进制,表示数的正负。 指数符占1位二进制,表示指数的正负。 尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点 指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。 可能是数符加尾数占 24 位,指数符加指数占 8 位 – float. 数符加尾数占 48 位,指数符加指数占 16 位 – double.
知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
64 bit 数值范围 -1.7E308~1.7E308 (15个有效位)
双精度实型
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是0.0f;
例子: double d1 = 123.4。
数值范围-1.7E308~1.7E308 (15个有效位)
String是char[]的封装类型
char和string是有编码的
Java 遵循 unicode 4.0 标准,内部的 character 以 utf-16 作为 encoding。unicode 4.0 标准包含从 U+0000-U+FFFF 的基本多语言平面和 U+10000-U+10FFFF 的扩展平面的文字,这是 code point。Java 的 char 类型是 16 bit ,单个 char 只支持基本平面内的文字,扩展平面的文字由一对 char 表示。
String.getBytes() 按照指定的 encoding 返回字符串,一般中文系统的默认编码是 utf-8 (linux, mac) 或者 gbk/gb18030 (windows)。只要是基本平面内的文字,utf-8码的中文都是3字节的,而 gbk/gbk18030 是2字节的
都是浮点型但是表示范围是不一样的,转换的时候当然会提示精度损失,虽然这个数字在两个类型中都是不溢出的。
Author -
LastMod 2012-09-19