Java 数据类型
不同的数据类型可以保存不同的数据内容。
Java 一共分为两大数据类型:基本数据类型,引用数据类型
【基本数据类型】
数值型:
--整型:byte、short、int、long
--浮点型:float、double
字符型:char
布尔型:boolean
【引用数据类型】:数组、类、接口
基本数据类型不牵扯到内存分配,而引用数据类型需要由开发者为其分配空间,而后进行关系的匹配。
数据类型使用原则:
1. 整数 int 小数 double;
2. 日期时间,文件大小用 long;
3. 内容传递,编码转换用 byte;
4. 逻辑控制用 boolean;
5. 中文用 char;
字节长度:
8位:byte
16位:short、char
32位:int、float
64位:long、double
保存范围: byte < short < int < long < double
Java 中所有设置的整数默认都是 int 型
数据转换:
数学计算的时候,小范围的数据类型会自动转换为大范围的类型后计算,计算结果为大范围的数据类型。
要想将范围大的数据类型转换为小范围的数据类型,需要进行强制转换。
范例:
long num = 1000; // 常量1000 是 int 型,赋值给 long 型,会自动转换为 long 型
long y = 1000L;
int x = (int) num; // 将 long 变为 int 后赋值给 x
byte 类型:
虽然任何一个整数都是 int 型,但是在 Java 编译的时候,如果发现使用的数据变量类型为 byte, 且设置的内容在 byte 的数据范围之内,就会自动帮助用户实现数据类型的转换。
public class Hello { public static void main( String args[]){ byte num = 100; //虽然100是 int 型,但是100 在byte的数据范围内,所以 num 会赋值为 byte型 System.out.println(num); } }
在定义变量的时候要记得直接给变量设置默认值。
浮点数:
Java 中的小数默认的数据类型都是 double (double 是保存范围最广的数据类型)
因为小数默认是 double 类型,所以定义 float 类型的数据时,要记得强制转换。
例:
float num = 10.2; // 10.2 是 double 类型,所以 num 会被赋值为 double 型
float num = 10.2F;
float num = (float)10.2;
注意:
两个 int 型数据相除的结果还是 int 型,要想得到小数的结果,可以将其中的一个数据转换为 double 类型
public class Hello { public static void main( String args[]){ int x = 9; int y = 4; double result = (double)(x/y); System.out.println(result); // 结果为2.0 System.out.println(x/y); // 结果为2 System.out.println(x/(double)y); // 结果为2.25 } }
字符型: char
例: char c = 'A';
// 大小写字母的转换 public class Hello { public static void main( String args[]){ char c = 'B'; int num = c; num = num + 32; c = (char) num; System.out.println(c); } }
char 型数据无法直接进行数据运算,所以需要转换为 int 型后进行加法运算。 然后将 int 型数据强制转换为 char 型输出。
布尔型:boolean
值: true 、false
String 类型:
String 为引用数据类型(属于一个类,在 Java 中,类名称的首字母都是大写),是一个特殊的类,用于描述字符串
String 要求用“”声明内容
String 类型可以用 加法实现字符串的连接
所有的数据类型如果与 String 类型相加,则会先转换为 String,再执行字符串的连接操作
// String类型实现字符串的连接操作,输出的结果为 Hello World!!! public class Hello { public static void main( String args[]){ String str = "Hello world!"; str = str + "!!!"; System.out.println(str); } }