java中的变量
变量或变数,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。变量是常量的相反,变量的用处在于能一般化描述指令的方式。
从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每个变量使用前必须先要声明,然后必须填充内容,最后才能使用。
变量的分类
(1)按所属的数据类型划分:基本数据类型变量和引用数据类型变量
(2)按声明的位置划分:局部变量和全局变量(成员变量)
局部变量:方法或语句块内部定义的变量;
全局变量(成员变量):方法外部,类的内部定义的变量
在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。
变量的声明
在 Java 中,我们通过三个元素描述变量:变量类型、变量名以及变量值。
形式如下:
变量类型 变量名=变量值
变量的使用规则
1、Java 中的变量需要先声明后使用;
2、变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值;
3、变量中每次只能赋一个值,但可以修改多次;
4、main 方法中定义的变量必须先赋值,然后才能输出;
5、虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等;
基本数据类型变量:
基本数据类型变量介绍:
1、整数类型变量(没有小数部分):
字节型(byte):byte b=3;
短整型(short): short c=23;
整型(int): int i=223;
长整型(long): long l=222222L;long l=222;
给long类型的变量赋值时要注意,如果赋值未超过int型的取值范围,则不用加L,省略,
若赋值超过,则需在值末尾加上L字母,表示其为long类型变量。不加L,默认其数据类型为int。
2、浮点数类型变量(有小数)
单精度浮点数(float):float f=2.48f;
双精度浮点数(double):
double d1=100.1;double d2=199.3d;
Java程序中,如果float类型数据赋值后不加f,会被默认为double类型的数据,而为double类型数据赋值时,可加可不加D;
另外,程序中也可以为浮点型类型变量赋予一个整数数值,如下:
float f=100;
double d=100;
3、字符类型变量
字符(char):char c='a';char ch=97;
字符类型变量用于存储一个单一字符,每个char类型的字符变量都会占用2个字节。在赋值时,需要单引号把字符括起来;也可赋值为整数,计算机会自动将这些整数转化为所对应的字符。
任何超过一个字体的内容都不能声明为字符型。
上例中,数值97对应字符a。
注意:String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。
4、布尔类型变量(boolean)
布尔类型变量用来存储布尔值,该类型只有两个值,true和false;如下:
boolean b=false;//声明一个boolean类型的变量,初始值为false
b=true;//改变b的值为true
变量的类型转换:
基本数据类型的转换
在Java中类型由低到高的顺序为:byte、short、char、int、long、float、double。
1、自动转换:当由低到高时可以自动转换。
byte b;int i=b;long l=b;float f=b;double d=b;那么这些都可以自动转换,是合法的,但byte、short、char是平级的不能自动转换,必须使用强制转换。
自动转换
整型、实型、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级(表示范围从小到大):
低------------------------------------------------------------>高
byte —> short / char—> int —> long—> float —> double
2、强制转换:由高级到低级时,必须使用强制转换。
int i=99;byte b=(byte) i;char c=(char) i;
强制类型转换必须满足如下规则:
1.不能对boolean类型进行类型转换(C可以)。
2.不能把对象类型转换成不相关类的对象。
3.在把容量大的类型转换为容量小的类型时,必须使用强制类型转换。
4. 转换过程中可能导致溢出或损失精度,如:
int i = 128; byte b=(byte)i;
(byte)255 == -1 (byte)0x5634 == 0x34
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
(int)23.7 == 23 (int)-45.89f == -45
转载于:https://blog.51cto.com/12170190/1865891