Java 基本数据类型
Java 的两大数据类型:
- 内置数据类型
- 引用数据类型
《一》内置数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:例:byte a = 100
- byte 数据类型是1字节;最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;
short:例:short s = 1000
- short数据类型是2字节;最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);默认值是 0;
int:例:int a = 100000
- int 数据类型是4字节、最小值是 (-2^31);最大值是 (2^31 - 1);
- java中整型变量默认为 int 类型;默认值是 0 ;
long:例子: long a = 100000L,注意(L or l)不能省略,因为整型默认为int类型容易分辩起见最好大写。
- long 数据类型是8字节、有符号的以二进制补码表示的整数;
- 最小值是(-2^63);最大值是(2^63 -1);默认值是 0L;
float:例:float f1 = 234.5f。注意(f or F)不能省略,因为java中浮点数默认是double类型
- float 数据类型是单精度、4字节;
- 默认值是 0.0f;
double:例:double d1 = 123.4;另外一种记法科学计数法:3.4E3; 3.4e-3
- double 数据类型是双精度、8字节;
- 浮点数的默认类型为double类型;默认值是 0.0d;
boolean:例:boolean one = true。
- 只有两个取值:true 和 false;
- 默认值是 false;
char:例:char letter = 'A';。
- char类型占2字节
- 最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);
《二》引用类型:一小块内存指向一大块内存
- 例:Integer t = new Integer(100); Cat tom = new Cat("tom")。
- 包括类、接口、数组;
- 所有引用类型的默认值都是null。
引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。
《三》Java 常量
在 Java 中使用 final 关键字来修饰常量,例:
final double PI = 3.1415927;
常量在程序运行时是不能被修改的。通常为了便于识别,用大写字母表示常量。
当然还有比如:100;3.14;22.22f ; 'A' 等常量
《四》自动类型转换
数据类型转换必须满足如下规则:
不能对boolean类型进行类型转换;byte short char 不相互转换,计算时先回转为int类型。
大转小必须使用强制类型转换,转换过程中可能导致溢出或损失精度,例如:
int i =128; byte b = (byte)i; //-----> -128
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为容量最大的数据类型,然后进行运算。 转换从低级到高级。
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)2.7 == 2; (int)-20.5f == -20
《五》强制类型转换
1. 条件是转换的数据类型必须是兼容的。
2. 格式:(type)value type是要强制类型转换后的数据类型 实例:
实例
int i1 = 123 ; byte b = ( byte ) i1 ;运行结果:123
《六》隐含强制类型转换
整数的默认类型是 int。
浮点型默认类型是double。