有关Java语言的数据类型结构树:

233.png

基本数据类型:

整型数据类型
类型占用存储空间表数范围
byte1字节(8位)-2^7 ~ 2^7-1(-128~127)
short2字节(16位)-2^15 ~ 2^15-1(-32768~32767)
int4字节(32位)-2^31 ~ 2^31-1 (-2147483648~2147483647)约21亿
long8字节(64位)-2^63 ~ 2^63-1




浮点型数据类型
类型占用存储空间表数范围
float4字节(32位)-3.403E38~3.403E38
double8字节(64位)-1.798E308~1.798E308




字符型数据类型
类型表数范围
char (16位)2字节用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。




布尔型数据类型
boolean(8位)1字节只有两个值:true(真),false(假);





数据类型,是Java编程中存储数据的类型。不同的类型存放不同类型和大小的数据。占用存储单位也不同。


拿车辆停车位作比喻就是:消防车有"消防车停车位" , 公交车有"公交车停车位" , 单车有 "自行车停车位" ,不同的车位和停车场停放大小和数量不同。在计算机和编程的世界中也是如此。

变量(variable)

既然有数据类型不得不提变量和常量,变量本质上是代表一个”可操作的存储系统”,空间位置是确定的,但里面放置什么值不确定。我们可通过变量名来访问”对应的存储空间”,从而操纵这个”存储空间”存储的值。

变量的使用:

格式为:[数据类型] [变量名];

如:

int a;
byte b;
long c;
等........

也可以一行声明多个变量:
int a,b,c;
int a =10;int b =20;int c =30;

关于变量的占用空间:

Java是一个严格要求规范的语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。比如: int a; 就表示a变量的存储占用空间大小为4字节。
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储空间。

变量所占用的存储空间:

6642.jpg

常量

常量,则可以理解为一个停车区域。它再怎么样也是一个停车位,它的作用就是用来停车,不能被改变。
也就是一旦定义了值,就不能再被定义成其他值。常量由 final 关键字修饰。

比如已经定义:final int a =10;
变量a的值是10,10就是a的常量,一旦初始化后,a就不能被再次定义为其它值,这就是常量。

变量的分类:

从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量。

局部变量、成员变量、静态变量的区别
类型声明位置从属于生命周期
局部变量方法或语句块内部方法/语句块从声明位置开始,直到方法或语句块执行完毕,局部变量消失
成员变量(实例变量)类内部,方法外部对象对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失;
静态变量(类变量)类内部,static修饰类被加载,静态变量就有效;类被卸载,静态变量消失.


1.局部变量(local variable)

方法或语句块内部定义的变量。声明周期是从声明位置开始到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。

【相关示例】局部变量
以下面的 test方法作为实例

public void test(){
    int i;
    int j =i+5; //编译错误,变量i还未被初始化
}
public void test2(){
    int i;
    i=10;
    int j =i+5; //编译正确
}


2.成员变量(也叫实例变量 member variable)

方法外部、类的内部定义的变量。从属于对象,生命周期会伴随对象始终。如果不自行初始化,它就会自动初始化成该类型的默认初始值。

【相关示例2】成员变量

public class Test{
    int i;
}


3.静态变量(类变量static variable)

使用 static 定义。属于从属类,生命周期伴随类始终,从类加载到卸载。如果不自行初始化,与成员变量相同,会自动初始化成该类型的默认初始值。

【相关示例3】静态变量

public class Test{
    public static void main(String[]args){
        int a;
    }
}

【相关示例4】局部变量/成员变量/静态变量

pulibc class Test{
    int a;    //成员变量,从属于对象;如果没不赋值会被初始化成默认值
    static int size;    //静态变量,从属于类
    public static void main(String[]args){
        {
            int age;    //局部变量,从属于语句块
            age=18;
        }   
        int salry = 3000;    //局部变量,从属于方法
        int gao=13;                
        System.out.println(gao);  
        int i;                     
    }
}
有关四种不同类型的默认初始值
数据类型初始值
int(整型)0
double(浮点型)0.0
char(字符型)u0000
boolean(布尔型)false