Java变量(标识符;数据类型;变量分类)

2020-03-12 16:04:11来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java变量(标识符;数据类型;变量分类)

Java变量

一、变量的命名

——标识符

  • 标识符由数字、字母、下划线_、美元符$组成,但不能以数字开头。
  • 标识符对字母大小写敏感。
  • 标识符无长度限制。
  • 不能以关键字作为标识符。
/* 合法的标识符: */
int amount = 17;
int $apple = 8;
int _index = 3;
int 身高 = 180;
/* 不合法的标识符: */
int float = 3.14;  // 不能使用关键字
int #Index = 2;    // 不能使用#
int 3a = 9;        // 不能以数字开头

 

二、变量的数据类型

——基本数据类型、引用类型

变量的数据类型

 

三、变量的分类

——局部变量、成员变量、静态变量

(一)局部变量:在方法内或语句块中定义,生命周期从声明处开始到方法或语句块结束处。

★ 使用局部变量前必须先声明和初始化。

public class TestVarible {
    public static void main(String args[]) {
        {
            int age;    // age是局部变量,只属于本语句块
            System.out.printf("age = %d", age); // 编译出错, age没有初始化
        }
        age = 18;       // 编译出错, age没定义
    }
}

 

(二)成员变量:在方法外部、类的内部定义的变量,生命周期伴随对象始终。

★ 声明成员变量时会自动初始化,默认初始值见下表:

默认初始值
数据类型 初始值
int 0
char '\u0000'
double 0.0
boolean false
public class TestVarible {
    int testValue;  // 成员变量, 初始值为0
}

 

(三)静态变量:使用static定义的变量,生命周期伴随类始终。

★ 声明静态变量时会自动初始化,默认初始值与成员变量相同。

public class TestVarible {
    static double score;    // 静态变量, score属于类, 初始值为0.0
    boolean flag;           // 成员变量, flag属于对象, 初始值为false
    public static void main(String args[]) {
        {
            int age;        // 局部变量, age只属于本语句块
            age = 17;
        }
        int fighting = 88;  // 局部变量,fighting属于方法
    }
}

 

 四、变量、常变量

——声明、初始化

★ 常变量与变量的唯一区别是:常变量初始化后不可再改变。

数据类型  变量名;           // 变量声明
final 数据类型  变量名;     // 常变量声明
变量名 = 值;               // 变量初始化

★ 初始化变量时,整数默认为int类型,浮点数默认为double类型。

五、基本数据类型

——boolean、byte、short、char、int、long、float、double

★ 低范围变量可赋值给高范围变量,超出范围时需加转换!

(一)整型:byte、short、int、long

1. 基本信息

数据类型 占用内存 表示范围 定义
byte 1字节 -128~127 -
short 2字节 -32768~32767 -
int 4字节 约21亿 -
long 8字节 -263~263-1 在末尾增加'L'或'l'

2. 表示形式

  • 10进制:-
  • 16进制:以0x或0X开头
  •   8进制:以0开头
  •   2进制:以0b或0B开头
public class TestVarible {
    public static void main(String args[]) {
        /* 正确的声明和初始化 */
        int a = 320000;
        int b = '对';
        long c = a;
        long d = 3200000000L;  // 数值超出21亿, 需要增加转换:在末尾加上"L"或"l"

        /* 非法的初始化 */
        byte e = 128;           // 超出范围
        unsigned int f = 200;   // 不存在unsigned
    }
}

 

(二)浮点型:float、double

1. 基本信息

数据类型 占用内存 表示范围 定义
float 4字节 -3.403E38~3.403E38 在末尾增加'F'或'f'
double 8字节 -1.798E308~1.798E308 在末尾增加'D'或'd'

2. 表示形式

  • 10进制:-
  • 科学计数法:aEb或aeb (a为实数,b为整数)
public class TestVarible {
    public static void main(String args[]) {
        /* 正确的声明和初始化 */
        float a = 3.14F;
        float b = (int)6.89;
        float c = 0x0123;           // 0x0123=291, 在21亿范围内

        /* 非法的初始化 */
        float d = 1e4;              // 编译错误, 1e4为double型
        float e = 3.03d;            // 编译错误, 3.03d为double型

        /* float型与double型最好不要进行比较 */
        float m = 0.1f;
        double n = 0.1;
        System.out.println(m==n);   // 输出为false
    }
}

 

(三)字符型:char

1. 基本信息

char类型占2字节,使用Unicode编码形式,其表示范围是0~65535。

2. 表示形式

  • 字符常量:'x'
  • 16进制:'\uxxxx' (x在0~f范围内)
  • 转义字符:'\x' (x有不同含义)
public class TestVarible {
    public static void main(String args[]) {
        /* 正确的声明和初始化 */
        char a = '步';
        char b = 24179;
        char c = '\u51e1';
        System.out.printf("%c%c%c", a, b, c);

        /* 非法的初始化 */
        char d = '\uabcg';  // g超出0~f范围
        int e = 'a';
        char f = e;         // e为int型, 高于char类型
    }
}

 

(四)布尔型:boolean

boolean类型占1位(1bit),只有true和false两个值。

 

 【参考资料】:

变量的数据类型图片:速学堂

 

 


原文链接:https://www.cnblogs.com/bpf-1024/p/12481911.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:MyBatis源码解析 - 反射模块

下一篇:java 构造函数调用构造函数、this()语句