java数据类型零基础(Java学习二:)
java数据类型零基础(Java学习二:)在对变量进行赋值时,如果是将低级数据类型(相对取值范围较小的数据类型)的数据,赋给高级数据类型(相对取值范围较大的数据类型)的变量,这时Java会自动完成从低级类型向高级类型的转换。在原始数据类型中,除了boolean类型外,其他数据均可参与算术运算。booleanfalg=false; 2.数据类型转换数据类型级别与取值范围//声明一个float类型的变量,并赋值 floatprice=326.85F; //声明一个double类型的变量,并赋值 doubleheight=3836.8; doubleheight=3836.8D; 在默认情况下,小数都被看作double型。若使用float型小数,则需要在其值后面添加F或f 否则编译时,会提示错误。因为不加上字母“F”或小写“f”时,默认的数值为double类型,把double类型的数值赋给float类型的变量,是不正确的。而在为dou
1.数据类型整数类型取值范围
byteage=18;
shortnumber=2300;
longaccount=8172651756L;
在为long型常量或变量赋值时,需要在所赋值的后面加上一个字母"L"(或小写"l"),说明所赋的值为long型。如果所赋的值未超出int型的取值范围,也可以省略字母"L"(或小写"l")
//所赋的值超出了int型的取值范围,必须在后面加上字母“L”
longaccount=3124567893L;
//所赋的值未超出int型的取值范围,可以在后面加上字母“L”
longaccount=31245678L;
//所赋的值未超出int型的取值范围,可以省略字母“L”
longaccount=31245678;
//!但是下面的这种赋值方式是错误的。
longaccount=3124567893;//所赋的值超出了int型的取值范围,但是没有在后面加上字母“L”
1.2 浮点类型
浮点类型取值范围
如果要声明一个用来保存小数的变量,必须使用浮点类型;
//声明一个float类型的变量,并赋值
floatprice=326.85F;
//声明一个double类型的变量,并赋值
doubleheight=3836.8;
doubleheight=3836.8D;
在默认情况下,小数都被看作double型。若使用float型小数,则需要在其值后面添加F或f 否则编译时,会提示错误。因为不加上字母“F”或小写“f”时,默认的数值为double类型,把double类型的数值赋给float类型的变量,是不正确的。而在为double类型变量赋值时,后面的字母“D”或者“d” 可加可不加。
1.3 字符类型字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间 在定义字符型变量时,要以单引号表示 如'a'、'#'、'3'。而双引号则表示一个字符串;
//声明一个char类型的变量,用来存储性别信息
chargender='男';
//声明一个char类型的变量,用来存储符号'*'
charstar='*';
//声明一个char类型的常量,用来存储圆周率符号'π'
finalcharPI='π';
1.4 布尔类型(逻辑类型)
声明逻辑类型常量或者变量,需要使用关键字 boolean
booleanfalg=false;
2.数据类型转换
数据类型级别与取值范围
在对变量进行赋值时,如果是将低级数据类型(相对取值范围较小的数据类型)的数据,赋给高级数据类型(相对取值范围较大的数据类型)的变量,这时Java会自动完成从低级类型向高级类型的转换。在原始数据类型中,除了boolean类型外,其他数据均可参与算术运算。
实例
//定义float类型的变量,并赋值
floatprice=36;
//输出price变量的值:price=36.0
System.out.println("price=" price);
可以看出,因为相对于float类型来说,整数36为int型,属于低级数据类型,所以Java自动将其转换为float类型的36.0
将低类型的数据赋给高类型的变量时,Java会自动将低类型的数据转换为高类型的数据,然后赋值。
2.2 混合数据类型运算在不同类型的数据进行混合运算时,分为两种情况:
- 只有byte、short或char类型的数据。 这种情况下,Java首先将byte或short或char类型转换为int类型,然后再参与运算,并且运算结果也是int型的
例如:
publicclassTest3{
publicstaticvoidmain(String[]args){
bytebyteVar=68;//声明一个byte类型的字节变量
shortshortVar=873;//声明一个short类型的整型变量
charcharVar='a';//声明一个char类型的字符变量
intvalue=byteVar shortVar charVar;
System.out.println(“value=” value);//输出value的值:value=1038
}
}
- 含有int、long、float或double型的数据。 这种情况下,Java首先将所有低数据类型转换为表达式中数据类型最高的数据类型,然后再参与运算,并且运算结果也是表达式中最高的数据类型。
例如:
publicclassTest4{
publicstaticvoidmain(String[]args){
//声明一个字节类型的变量
bytebyteVar=68;
//声明一个int类型的变量
intintVar=873;
//声明一个float类型的变量
floatfloatVar=128.5F;
//不同类型进行混合运算
doublevalue=byteVar intVar floatVar;
System.out.println("value=" value)//输出:1069.5
}
}
2.3 强制(显式)类型转换
在对变量进行赋值时,如果是将高级数据类型的数据赋值给低级数据类型的变量,java 不会自动完成类型的转换,需要主动转换;
//定义int类型的变量,并赋值double类型的36.5
intcount=36.5;
System.out.println("count=" count);
上述代码在编译时会提示错误,因为将高级类型的数据36.5赋给了低级类型的变量count。
可改为下面这种形式:
//强制类型转换
intcount=(int)36.5;
//输出count变量的值:count=36
System.out.println("count=" count);
在上面的代码中,(int)显示为强制类型转换的语法,即在欲转换的数据或变量前面,用“(目的数据类型)”的形式,强制转换为括号中的目的数据类型。另外,在上面的示例中也可以看到,在进行强制类型转换时,进行了简单的截断而不是四舍五入(输出的是36,而不是37)。