第5节 变量
变量的概念
JAVA语言的变量用于存储值变化的量。它是在程序运行期间,系统为程序分配的一块内存单元,变量名为内存单元的名称, 内存单元中所装载的数据就是变量的值。
JAVA语言中的变量必须先定义后使用,定义变量包括指明变量的数据类型和变量名称,必要时还可以指定变量的初始数值。
JAVA语言的变量的定义语句格式为:数据类型 变量名表;
- int a,b,c;
- People i,j;
- J=new people ();
- i=j;
变量有两种类型
- 简单类型变量
保存在堆栈中
一个进程有一个堆栈,独享
堆栈大小有限制

-
对象变量
保存在堆中
需要用new来分配空间
对象内容不放在堆栈stack中,放在堆heap中
对象引用放在堆栈中

基本数据类型转换
数据类型的转换有自动转变和强制转换两种形式。
-
自动类型转换
整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。
自动类型转变,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围大于源类型。
例如,当byte型向int型转换时,由于int型的取值范围大于byte型,就会发生自动转换。
不同类型数据间的优先关系如下:
低------------------------------------------------------>高
byte,short,char-> int -> long -> float -> double -
强制类型转换
当两种类型彼此不兼容,或者目标类型的取值范围小于源类型,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:
目标类型 变量=(目标类型)值;
高级数据要转换成低级数据,需用到强制类型转换
如:int i = 256; byte b = (byte) i; b=? -
表达式数据类型的自动提升
如果在JAVA应用程序表达式中出现数据类型不一致的情形,那么JAVA运行时系统首先自动将低优先级类型的数据转换成高优先级类型的数据,然后才进行表达式值的计算。 -
变量的作用域
Java 语言的变量有一定的生存周期和有效范围。Java 语言用大括号将若干语句组成语句块,变量的有效范围是声明它的语句所在的语句块,一旦程序的执行离开了这个语句块,变量就变得没有意义,不能再使用了。


