上一篇简单写了一下Java中的数据类型,这一篇来说说数据类型的使用。
基本数据类型的使用都是先声明,然后初始化,最后使用的,跟C语言有一点区别。这里要重点说一下数据类型的转换。
字符型与整型:ASCII码的相互转换
这是一张ASCII码表,我们不需要记住所有的值,但是几个特殊的值一定要记住,比如0-48,@-64,A-65,a-97,记住了这几个我们可以推导出所有的字母和数字,这些足够了。
在Java中数据类型转换是很常见的,看下面的程序片段:
int a = 97;
System.out.println((char)a);
和
char a ='a';
System.out.println(a);
输出的结果是一样的。这里用到了数据类型的强制转换,它分为向上转型和向下转型:
小类型转大类型可以直接转换,不会丢失精度
char x = 'a';
int y = x;
大类型转小类型时需要在数据前加上转换类型,当数据超出小类型的范围时会出现精度丢失。
byte x =123;
int y = 255;
byte z = (byte) y;
System.out.println(z);
这段程序执行后输出的结果为-1,虽然语法上没有错,但是byte类型超出了它的范围,不能正确显示。
数据类型从小到大顺序为:
byte->short(char)->int->long->float->double
所有的引用数据类型的对象都存储在堆中,而栈中存储的是引用数据类型的类型名。在栈中保存的是程序中所有的局部变量,局部变量既包括基本数据类型也包括引用数据类型的变量名称。