引用数据类型
(1)类(class)
String 字符串
String是一个类,表示字符串(后面详讲),所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串。
字符串都得使用 " " 括起来的,连接字符串使用 “+”符号。
字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型.
(2)接口(interface)
(3)数组
数据类型转换
原则:不能(直接)把一个大的类型赋值给小的类型
一个字节等于8位
整数 (byte->8bit short->16bit int->32bit long->64bit)
小数 (float->32bit double->64bit)
字符 (char->16bit)
布尔 (boolean->8bit)
数据类型转换---->把一种类型赋值给另外一种类型
int a = 10;
byte b = 2;
a = b
把b的内容赋值给a
把a的内容赋值给b,是不能赋值的(不能把一个大的类型赋值给小的类型)
手动转换(强制数据类型转换)
如果真的需要把一个大的类型赋值给小的类型,这时候需要强制数据类型转换
b = (byte)a; 强制数据类型转换,不建议使用,因为会造成数据的"溢出",造成数据的不正确
如果非得要赋值,必须得要强制类型转换 byte b = (byte)200;
long a = 12002L;
int b = (int) a;//小类型想得到大类型的值:需要在前面加上它自己的类型(int)
自动类型转换
int i = 10;
short s = 8;
byte b = 5;
double d = 10.5;
char c = 'A';
boolean t = true;
1.运算时,运算两端的数据类型必须要保持一致
例如:
boolean s = i + t ;
系统这时候分不清是int 还是boolean类型了;
- 如果运算都为数值类型,会自动的把小的类型转换为大的类型(自动类型转换 )
double d2 = (double)i + d;
int 类型 i , double 类型 d ,一个32bit,一个64bit,这时候会把i强制的转换为double
JVM在运算时,识别的最小值类型为int
s + b ;
s short类型 , b byte 类型