编写一款可用的软件,离不开对数据的操作(经常有人说:程序=数据+算法)。数据可能有很多类型,比如对于年龄来说,数据就是整数。
对于金额来,数据是带小数的。在java中,可以分为内置数据类型和引用数据类型
一、内置数据类型
java提供了八种基本类型。六个数字类型(四个整数型,两个浮点型),一种字符型,一种布尔型
不同的类型存储不同的值,在使用这些类型之前,我们需要创建这种类型的变量去存储这些数据。
声明变量的方式是:数据 变量名
给变量赋值的方式是:变量名=值
也可以把声明和初始化放在一起
int i;//声明
i = 1;//初始化
int j = 3;//声明+初始化
不同的数据类型可以存储不同的数据:如下
public static void main(String[] args) {
byte my_byte = -50;
short my_short = 20;
int my_int = 5000;
long my_long = 10000000L;//存储比较大的整数,L大小写都一样,但是最好大写
//上面四个都是整数,只是存储在内存的大小不一样
float my_float = 234.5f;//默认是0.0f,单精度,32位
double my_double = 123.4;//默认是0.0d,双精度,64位
//上面两个都是小数
boolean my_boolean = true;//布尔型,true或flase,注意是小写
char my_char = 'a';//字符型变量可以存储单个字符
System.out.println(my_byte);
System.out.println(my_short);
System.out.println(my_int);
System.out.println(my_long);
System.out.println(my_float);
System.out.println(my_double);
System.out.println(my_boolean);
System.out.println(my_char);
}
在数值类型中,大范围的类型可以存储小范围类型的数据
byte,short,char—>int—>long—>float—>double(从低到高)
public static void main(String[] args) {
float f = 1;//float接收int型的数据
f= 12.3f;//重新初始化
double dl = f;//double接收一个float类型的数据
System.out.println(dl);
}
另外char类型的数据也可以用int型接收
public static void main(String[] args) {
char ch = 'A';
int i = ch;
System.out.println(i);
}
char类型的数据被int型接收后,会按照ASCII码转换成数字
强制类型转换:可以使用小范围的数据类型去存储大范围类型的数据,但是数据类型一定是要兼容的
public static void main(String[] args) {
int i = 127;
byte b = (byte)i;
System.out.print(b);
}
不过转换过程可能导致溢出或损失精度,可以把上面127改成128,byte类型是8位,最大值是127,当int型强制转换成btye型时,128会导致溢出
当小数型转换为整数的时候,是直接把小数位去掉的,不是四舍五入的。
public static void main(String[] args) {
float f = 12.8f;
int i =(int)f;
System.out.print(i);
}
二、引用类型
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site("Runoob")。