2.2变量及变量的作用域

 
1.变更的概念
    变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据。
2.java的变量类型
3.变量字节大小及有效取值范围
byte占用一个字节,数字大小为-27—27-1
short占用两个字节,数字大小为-215—215-1
int占用四个字节,数字大小为-231—231-1
long占用八个字节,数字大小为-263—263-1
float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:101*22  , 101*2-3
double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。
char占两个字节,数字大小为0—216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。
Boolean占一个字节,其取值只有两个,true和false。
4.基本数据类型之间的转换

自动类型转换(也叫隐式类型转换)

实现这种转换要满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围大于源类型。如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有的数字类型,包括整型和浮点型彼此都可以进行这样的转换。如:

byte b=3;

int x=b;
强制类型转换(也叫显式类型转换)

当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:

目标类型 变量=(目标类型)值,如:

byte a;

int b;

a=(byte)b;
表达式的数据类型自动提升
所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。

5.变量的作用域

    变量要先定义,后使用,但也不是在变量定义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。
public class TestScope
{
    public static void main(String[] args)
   {
        int x = 12;          
             {
                   int q = 96;  // x和q都可用
                   int x = 3;//错误的定义,Java中不允许有这种嵌套定义
                   System.out.println("x is "+x);
                   System.out.println("q is "+q);
             }
            q = x;    
            System.out.println("x is "+x);     
   }

6.局部变量的初始化

    在一个函数或函数里而把代码块中定义的变量称为局部变量,局部变量在函数或代码块被执行时创建,在函数或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或进行过赋值操作,否则会出现编译错误!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值