继续更新......
说到变量,无非可以想到常量,常量是固定不变的单位,例如π,很显然变量是变化的量,变量变量,就是可
以发生变化的,也就是说变量可以被赋值改变的。
变量的用途可谓是一架桥梁,每一个结构部分,都离不开变量的存在,通过变量来连接一个一个的数据。
变量有三要素:变量名,变量类型和变量值。
变量名可以随意取,但是要遵循变量命名的规则:首字母必须为字母、下划线、美元符号,而其他位置可以是
字母、下划线、美元符号和数字。
变量类型分为两大类:基本数据类型和引用数据类型。
基本数据类型包括:整型(byte, short,int,long)、浮点型(float,double)、字符型(char)、
布尔型(true、false)。
其中,整型中byte占8位,一个字节,范围是 -128~127,(-2^7~2^7-1),short占16位,两个字节,
范围是(-2^15~2^15-1),int占32位,4个字节,范围(-2^31~2^31-
1),大约20个亿,够大吧。而long类型占64位,是8个字节,范围(-2^63~2^63-1)。
浮点型:double类型:double类型数值为双精度浮点数,占8个字节,64位。为Java浮点型的默认类型,
如3.14,后面可以不写d。
float类型:float类型为单精度浮点数,占4个字节,32位。如果想表示float类型,需要在数字尾加F或者f,
例如3.14f,3.14F.
字符型用char表示,由于java采用不是ASCLL码编码,java采用unicode,2个字节(16位)来表示一个字符。
所以一个char2个字节。而ASCALL中一个char是一个字节。
布尔类型(boolean)的值为true,false,只有这两种,占一个字节,并且布尔类型不可以用来强制类型转
换。
引用数据类型包括:类class、接口Interface、数组array。
变量的值要根据变量的类型赋值。
变量的使用:
变量的使用可以分为变量的定义,变量的初始化,变量的引用。
变量的定义和变量名的命名规则一样,可以随意取,但是要遵循变量命名的规则:首字母必须为字母、下划
线、美元符号,而其他位置可以是字母、下划线、美元符号和数字。
变量的初始化也称为变量的赋值,在变量定义之后若没有初始化是不可以使用的,也要与其变量类型相匹配。
在定义和初始化完成后,变量可以被引用,用来执行相关操作。
同样在这么多变量类型中,可不可以在变量类型之间替换呢,答案是可以的。这个过程称为变量的类型转换,
分为隐式转换和强制类型转换。
隐式类型转换也叫做自动类型转换,是数据类型范围小的往大范围的类型中存放,
例如int i =2;double d = i; 此过程是编译器自动进行转换的,相当于将一个小箱子存放入大
箱子是可以放进去的,这个叫隐式转换,自动类型转换都可以。
而强制类型转换估计大家也可以猜到了,是大范围存入小范围类型,例如 double d = 1.5;int i = d;这个
过程是会报错的,因为double类型放不进去int中,那怎么办呢?
别急,可以进行强制类型转换,硬性要求让double变为int,改成这样double d = 1.5;int i = (int)d;
这样就可以装入int了,不过精度会丢失变为整型,大家要注意这一点。
注意:java中整型默认为int,例如 byte b = 1; byte b1= b+1;会报错,因为1为int类型,
int加byte是int类型,取大范围为准,强制类型转换。所以应该是
byte b = 1; byte b1= (byte)(b+1);
浮点型默认为double型,例如 float f = 1.5是会报错的,因为1.5是double,要放入float需要进行强制
类型转换。改成float f = 1.5f;或者改为float f=(float)1.5。都是可以的,
f表示float型。
有了变量,需要变量与变量之间的关系连接,关系连接需要什么呢?
那接下来就是运算符,运算符作为连接。运算符分为基本运算符、赋值运算符、关系运算符、连缀运算符、逻
辑运算符还有三目运算符。
基本运算符分为:+、-、*、/、%这5个运算符,后面三个乘,除,取余优先级是相同的。与平时运算的四则运
算规则相同,这里就不一一详细介绍了。
赋值运算符就是= 号,赋值运算符是从右到左进行运算,=号右边的变量运算结束后赋给左边变量。
关系运算符:<、>、==、>=、<=、!=。关系运算符结果为boolean(布尔)类型。常用于选择语句中。eg:
if(3>=2) ——{ }。
连缀运算符:+。 此+不彼之前那+,之前基本运算符中有+是加,而现在的+是连缀,起连接两个数据连着一起
输出,前提必须是有引号(”“)。eg: System.out.println("a的值
为: "+15);输出结果为a的值为15 ,15连接到引号内。
逻辑运算符:&&(两者都为真结果为真)、||(两者有一个为真即为真)、!(真为假,假为真)。
&,|(位与,位或)和&&、|| 结果可以互相取代但是&&、||起到短路效果,如果前边操作已经决定结果,
后面的操作不做运行。
而&、| 无论结果怎样都会将所有逻辑运算全部运算完成。
例:1<4&&3>2当前面的结果为假,整体为假,后面的3>2不执行。
1<4&3>2位与会连同3>2进行运算。
三目运算符:也叫条件运算符。格式:int t=a>b?a:b; 如果a大于b,则t=a,否则t=b。常用于比较。
还有最重要的内容!也是比较混淆的内容,那就是自增和自减,这两个类似,咱们讲其中一个,另一个完全相
同。
自增(++)分为前增(++i)和后增(i++)。
前增 ++i,先把i的值加1,然后将加1以后的i即(i+1)代入进行计算。每次进行 ++i后,下一个语句前再次
引用i将变成i+1的值即i=i+1;
例如 int i =3; int b = ++i+5;System.out.println(b); 结果为9。 因为什么呢,首先是++i+5,前增
++, 先将i的值+1,i=i+1;i=4,再执行+5操作。
后增i++, 先引用i的值进行计算,结束后i默认加1;同样,每次进行i++以后,下一语句前 i的值变成i+1
的值。
例如 int i =3; int b = 5+i++;System.out.println(b); 结果为8。 首先是5+i++,先引用i的值3,再
进行操作+5,操作结束后 i变为4。
无论前增后增,自增语句结束后,i的值最后都加1;
最后提醒一点是变量的作用域,作用域从变量定义的地方开始,到该变量所在的那对大括号结束;变量只在属
于他的那对大括号内有效。
变量就先说这么多啦。晚安,睡觉。