【Java基础(三)】Java变量与数据类型

变量声明

  1. 变量声明格式
    type varName [=value] [,varName[=value]…]

    数据类型 变量名 [=初始值] [,变量名 [=初始值]…];

    注:[] 中的内容为可选项,可有可无

    # 数据类型  变量名  [=初始值] [,变量名  [=初始值]…]
    int age = 18;
    
  2. 如果只定义一个变量,没有赋值,那么这个变量相当于没有定义,编译时会忽略该变量如果只定义一个变量,没有赋值,那么这个变量相当于没有定义,编译时会忽略该变量

  3. 不可重复定义

Java关键字

所有标识符(即变量名)不允许使用Java关键字,标识符包含包、类、变量、方法等所有可以起名的地方。

官网:关键字列表

常量

利用 final 修饰符定义一个的变量将使其变为常量,一旦初始化后不允许修改。

变量作用域

作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}

数据类型

分类类型变量分类变量类型存储空间(字节)取值范围默认值
基本类型数值型整型byte1-128 ~ 1270
short2-32768 ~ 327670
int4-2147483648 ~ 21474836470
long8负2的63次方 ~ 2的63次方 - 10
浮点类型float4±3.40282347E + 38F (有效位数6-7位)0.0
double8±1.79769313486231570E + 308(有效位数15-16位)0.0
字符型char2表示在Unicode编码表中的字符的单个字符‘\u0000’
布尔型boolean理论:1/8字节
数组:1字节
单独使用:4字节(当做int处理)
false
引用类型null
接口null
数组null

有效数字指的是从左开始第一个不为0的数到最后一个数

变量使用规则

public class VariableTest {
    public static void main(String[] args) {
        // 注意:整数型默认为int类型
        // 默认情况赋值是十进制
        int number10 = 12;
        System.out.println("十进制12:\t" + number10);
        // 前面加上0, 值就是八进制
        int number8 = 012;
        System.out.println("八进制12:\t" + number8);
        // 前面加上0x或0X, 值就是十六进制
        int number16 = 0x12;
        System.out.println("十六进制12:\t" + number16);
        // 前面加上0b或0B, 这个值就是二进制
        int number2 = 0b10;
        System.out.println("二进制10:\t" + number2);


        // 浮点类型常量 - 十进制形式
        float decimal4 = 3.14F;
        System.out.println("浮点类型常量 - 十进制形式:\t" + decimal4);
        // 浮点类型常量 - 科学计数法形式
        double decimal8 = 314E-2;
        System.out.println("浮点类型常量 - 科学计数法形式:\t" + decimal8);
        // 注意:浮点型默认为double类型, 定义float类型必须在后面加上f或F
        float floatDecimal = 3.1415926F;
        System.out.println("浮点类型变量 - float:\t" + floatDecimal);
        // double类型后面可以加d或者D, 一般都省略不写
        double doubleDecimal = 2.0220411;
        System.out.println("浮点类型变量 - double:\t" + doubleDecimal);

        // 浮点类型有精度问题不要直接比较,浮点数的判断相等,通过两数相减 小于某个范围即可
        if (decimal4 == decimal8) {
            System.out.println("decimal4 变量 与 decimal8 变量相等");
        } else {
            System.out.println("decimal4 变量 与 decimal8 变量不相等");
        }

        // 定义字符类型变量
        // java中: 字母、数字、符号、中文都是字符类型常量,都占2字节
        char charVal1 = 'a';
        System.out.println("字符型变量:\t" + charVal1);
        // 字符类型计算时使用Unicode编码进行计算
        char charVal2 = '满';
        System.out.println("字符变量【满】输出:\t" + charVal2);
        // 字符类型加法运算
        System.out.println("字符变量【满】 + 99 输出:\t" + (charVal2 + 99));

        // 定义布尔变量
        boolean booleanTrue = true;
        System.out.println("布尔型变量true:\t" + booleanTrue);
        boolean booleanFlase = false;
        System.out.println("布尔型变量flase:\t" + booleanFlase);
    }
}

运行结果

$ java VariableTest                                                                                                                                                                                                                                                [16:15:02]
十进制12:	12
八进制12:	10
十六进制12:	18
二进制10:	2
浮点类型常量 - 十进制形式:	3.14
浮点类型常量 - 科学计数法形式:	3.14
浮点类型变量 - float:	3.1415925
浮点类型变量 - double:	2.0220411
decimal4 变量 与 decimal8 变量不相等
字符型变量:	a
字符变量【满】输出:	满
字符变量【满】 + 99 输出:	28484
布尔型变量true:	true
布尔型变量flase:	false

类型自动转换

类型级别

byte > short > char > int > long > float > double

当表达式中有多种数据类型,所有类型先转换为其中最高级别的类型,再进行计算

转换规则

情况规则
左 = 右直接赋值
左 < 右强转
左 > 右直接自动转换
public class VariableAutoChange {
    public static void main(String[] args) {
        // 转换的方式-自动转换 int => double
        double doubleVar1 = 9;
        System.out.println("int类型值9自动转换为double类型,输出:\t" + doubleVar1);
        // 转换的方式-强制转换
        int intVar2 = (int)9.9;
        System.out.println("double类型值9,9强制转换为int类型,输出:\t" + intVar2);

        // 自动转换级别(从低到高)
        // byte > short > char > int > long > float > double
        // 当表达式中有多种数据类型,所有类型先转换为其中最高级别的类型,再进行计算
        double doubleVar2 = 2022 + 4.11 + 9.9f + 'Q';
        System.out.println("多数据类型表达式类型自动转换,输出:\t" + doubleVar2);
    }
}

运行结果

$ java VariableAutoChange                                                                                                                                                                                                                                          [16:31:14]
int类型值9自动转换为double类型,输出:	9.0
double类型值9,9强制转换为int类型,输出:	9
多数据类型表达式类型自动转换,输出:	2117.00999961853

系列文章

上一篇:【Java基础(二)】Java安装与运行
下一篇:【Java基础(四)】运算符

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值