JAVASE基础——变量的分类

本文介绍了Java中的变量分类,包括局部变量和成员变量,以及它们的默认值。讲解了类型转换中的常见问题,如long、float类型的指定,以及char类型与Unicode码的关系。此外,还详细阐述了不同类型间的运算规则,强调了强制类型转换可能导致的精度丢失,并通过示例展示了如何避免数据丢失。最后,通过实际示例解释了整数乘法可能导致的溢出问题及其解决方法。
摘要由CSDN通过智能技术生成

变量的分类:

1.局部变量 : 在方法中或者语句块中定义的变量成为局部变量 ​ 使用前必须已经声明并且已经赋值 ​ 2.成员变量 : 在类中方法外定义的变量成为成员变量 ​ 只声明不赋值存在默认值 ​ 整数:0 小数:0.0 字符:space null 空字符 布尔: false 字符串: null

变量及类型转换中可能会遇到的小问题

long num3 = 20000000000L;// 后面加的 L 最好大写,这样便于区分 i 1 l
float fnum = 1.11111111111f; //  float 类型的数据后面加f---大小写无所谓
char firstName = '王';// char类型只能储存一个字符,这个字符需要用 '单引号'括起来
                    // 双引号括起来的是String类型的数据
--------------------如何拿单个字符的Unicode码-------------------------------
    int num = '谢';
    System.out.println(num);//该语句输出的是字符'谢'的Unicode码
-------------------------类型转换------------------------
         byte b1 = 100;
        int int1 = b1;  // byte(1)->int (4),小转大,
        short short1 = 100;
        int1 = short1;
        char c = 10;

        // 规则:在进行运算时  如果有 byte, short , char ,int 进行混合运算时,结果都将变为int
        int1 = b1 + b1;   // byte  + byte -> int
        int1 =  short1 + b1;  // short + byte -> int


        // 强制类型转换;需要转,但是系统不能帮我,一般来说会可能存在精度丢失
        // 语法: (目标类型)(数据)
        byte b3  = (byte)(b1 + b1);  // 200
        System.out.println(b1);// 出现一个负数

          int money = 1000000000; //10亿
        int years = 20;
        int total = money*years; //超过int的范围,因此返回的是负数
        long total1 = money*years; //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
        long total2 = money*((long)years); //先将一个因子变成long,整个表达式发生提升。全部用long来计算。
        long d1 = 5 + 1L;   // int + long

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值