变量的数据类型
/*
Java定义的数据类型
一.变量按照数据类型来分:
基本数据类型:
整型:byte \ short \ int \long
浮点型:float \ double
字符型:char
布尔型:boolean
引用数据类型:
类(class);
接口(interface):
数组(array):
二.变量在类中声明的位置:
成员变量 vs 局部变量
*/
1. 整型:byte \ short \ int \long
byte(1字节=8bit) short(2字节) int(4字节) long(8字节)
byte范围:-128—127
long型要在数字结尾加个L :如:long m1 = 13245L
浮点型
*float和double都比long型的数值范围大,为什么还要用整型?
精度问题定义float类型时,变量要以“f”或“F”结尾
通常定义浮点型变量时,使用double型
字符型:char (1字符=2字节)
定义字符型变量,通常使用一对 ‘’
如:char c1 = ‘a’;
内部只能写一个字符
如:char = ‘AB’ //错误
字符可以为 字母 数字 各种文字
*表示方法:1.声明一个字符(常用) 2.转义字符 3.直接使用Unicode值表示字符型常量(少见)
如:char c5= ‘\n’; //换行符
c6= ‘\t’; //制表符
char c7= ‘\u0043’; //表示C布尔型:boolean<br /> *只能用两个值之一:true、false<br /> * 通常在条件判断、循环结构中使用<br />********************************************************************************************<br /> 基本数据类型之间的运算规则<br />前提:这里讨论的是7种基本数据类型变量间的运算。不包括boolean类型的。<br /> 1.自动类型提升:<br /> 结论:当容量小的数据类型的变量与容量大的数据类型做运算时,结果自动提升为容量大的数据类型。<br /> byte、char、short-->int-->long-->float-->double<br /> 特别的:当byte、char、short三种类型的变量做运算时,结果为int型<br /> 列: byte c1 = 10;<br /> char c2 = 'a';<br /> short c3 = 5;<br /> int c4 = 6;<br /> //运算<br /> int b1 = c1+c2;<br /> int b2 = c2+c3;<br /> int b3 = c4+c1; <br />2.强制类型转换:自动类型提升的逆运算。 <br /> *想将容量大的赋到容量小的变量上<br /> *浮点型变量强转成整型变量时会舍弃小数部分(损失精度)<br /> *容量大的变量强转成容量小的变量时也会可能会出现精度损失<br /> 列: double d1 = 12.3;<br /> int i1 = (int)d1; //(int)是强转符<br />说明:此时的容量大小指的是,表示输的范围的大和小。比如:float容量要大于long的容量<br /> *编码情况:<br /> >整型常量默认为int型<br /> >浮点型常量默认为double型<br /> 列: byte b = 12;<br /> byte b1 = b+1; //错误,应该为int b1 = b+1;<br /> float f1 = b + 12.3; //错误,应该为 double = b + 12.3;<br /> <br />***************************************************************************************<br /> 引用数据类型<br />** 字符串类型:String**<br /> *String不是基本数据类型,属于引用数据类型<br /> *使用方式与基本数据类型一致。例如:String str = "abcd";<br /> *一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。<br /> 如: str=str+"xyz";<br /> int n = 100;<br /> str = str + n;<br /> *String可以不放字符 如:String s1 = ""; 而char c = '';//不行,char不能放空的<br /> *String可以和8种基本数据类型做运算,且运算只能是连接运算 + <br /> *运算结果也是String类型 <br /> ** 例:String str1 = 123+""; //输出str1 = "123" (尚硅谷讲的,但是我运行了一下结果没有双引号,是str1=123,哈哈,当时好搞笑)