Java的基本数据类型介绍

来源:互联网 发布:二手显卡 知乎 编辑:程序博客网 时间:2024/06/07 10:03

1. Java的数据类型

Java的数据类型包括基本数据类型和引用数据类型。其中基本数据类型就是我们通常所说的4类8种数据类型,如下图所示,4类即整数类型、浮点数类型、字符型和布尔型,8种即byte、short、int、long、float、double、char、boolean,其中byte为1个字节(1个字节有8位,即8bit),short为2个字节,int为4个字节,long为8个字节,float为4个字节,double为8个字节,char为2个字节,boolean为1/8个字节,即1位(bit)。除了基本数据类型,还是引用数据类型,引用数据类型即数组、接口或类等。


2. Java基本数据类型的转换

如果系统支持把某个基本类型的值直接赋给另一个基本类型的变量,则这种方式被称为自动类型转换。Java中,当把一个表数范围小的数值或变量赋值给另一个表数范围大的变量时,系统就可以自动转换,就如同两瓶水,把小瓶的水倒入大瓶中时没有任何问题。

如下图所示,箭头左边的数值型可以自动转到箭头右边的数值型。

如下代码展示了Java的基本数据类型自动转换的功能(代码来自于《疯狂Java讲义》):

public class AutoConversion {public static void main(String[] args) {int a  = 6;//int可以自动转换为float类型float f = a;//下面将输出6.0System.out.println(f);//定义一个byte类型的整数变量byte b = 9;// 下面代码将出错,byte型不能自动类型转换为char型//char c = b;// 下面是byte型变量可以自动类型转换为double型double d = b;//下面将输出9.0System.out.println(d);}}
此外如果希望把箭头右边的类型转换成左边的类型,则必须使用强制转换语法:(type)value,例如int a = (int)1.0。下面代码展示了Java的基本数据类型强制转换的功能(代码来自于《疯狂Java讲义》):
public class NarrowConversion {public static void main(String[] args) {int iValue = 233;//强制把一个int类型的值转换为byte类型的值byte bValue = (byte)iValue;//将输出-23System.out.println(bValue);double dValue = 3.98;//强制把一个double类型的值转换为intint toI = (int)dValue;// 将输出3System.out.println(toI);}}

除此之外,还有几点重要说明:

  • boolean类型不可以转换成其他类型,其他类型也不可以转换成boolean类型。
  • byte、short、char之间不会相互转换,三者在计算时首先转换成int类型后再运算。
  • 容量大的数据类型转换成容量小的数据类型时,需要加强制转换符,但是可能造成精度降低或移除。
  • 有多重类型的数据在作混合运算时,系统首先自动将所有的数据类型转换成最大的数据类型,然后再计算。

上述几点的说明见如下代码:

public class TestConvert {public static void main(String[] args) {int a = 200, b = 300;double d1 = (a + b) * 1.2; //系统将其转换成double计算float f1 = (float)((a + b) * 1.2); //要加强制转换符byte b1 = 127;byte b2 = 10;//系统将其转换成int类型进行计算,要加强制转换符byte b3 = (byte) (b1 + b2);System.out.println(b3); //输出-119double d2 = 1e200;float f2 = (float) d2; //float最多是10e38System.out.println(f2); //输出Infinityfloat f3 = 1.53f; //必须加flong l1 = 123;long l2 = 4000000000L; //必须加Lfloat f = l1 + l2 + f3; //系统将所有类型全部转换成float类型计算long l = (long)f; //砍掉小数点}}




参考文献:

疯狂Java讲义,李刚,电子工业出版社。

0 0
原创粉丝点击