Java之变量介绍

        变量就是在程序当中数据允许发生改变的值(变量在程序当中是一个临时内存,存储一些可能会经常发生变化的数据)。
//定义的语法规范: 变量数据类型 变量名
            int(变量数据类型)   i(变量名);
//变量赋值语法规范  变量名  = 变量值
            i(名) = 10(变量值);
//如果你定义变量的时候就确定变量的值是什么的时候,那么可以吧上面两行代码合并成一行代码
//    变量数据类型  变量名  = 变量值 
            int j = 10;
  
      在变量一开始定义的时候给的值---->初始值/默认值。
    注意事项:
          1.变量未赋值(初始化)在程序当中不能被直接使用。
          2.变量在程序当中允许任何时间任何地点都可以随时修改变量的值。

变量的作用范围
​​​​​​

        变量的作用范围是在作用域里面的,那么什么是作用域呢?

public static void main(String[] args) {

        //在这个{   }里面都属于作用域---相较于变量来说
        //如果我们在这里面定义一个变量
                int i = 0;
        //在这个主(main)方法里面 不管那个地方都可以使用 ,比如在下面这个作用域
        {
                i = 20; //我们可以正常使用赋值,--->大作用域到小作用域(可以直接使用)
            int j = 10; //相较于这个变量j来说  我们看看可不可以超出它这个作用域再次进行赋值
        }
            //当我们给这个 j 进行二次赋值的时候
            j = 20; //[ Cannot resolve symbol 'j' ]---> idea会出现这个错误 意思就是---无法解析符号“j”
            //因为我们超出了 j 的作用域 如果要使用的话,必须再次定义变量的类型才能使用 --->小作用域到大作用域(需要再次定义)
        
    }
     
         如果超出了变量的作用域,变量一般就不存在了 大到小--->需要再次定义。
 当我们给变量赋值的时候需要注意以下几点:
      1.等号右边值需要和等号变量的数据类型保持一致。
      2.变量名在相同作用域中不能重复定义。
      3.如果等号右边的变量赋值包含在左边的数据类型内,程序也是支持的。
      4.如果变量未定义 ,不能直接使用。
      5.变量所在的作用域,一般指的是离它最近的作用域。
      6.变量在某些情况下 是允许扩大范围的。

变量运算  operator运算符
    

        /**
         * 变量运算需要借助于运算符 算数运算符(加减乘除):
         *      +加  -减  *乘  /(正斜杠)求商除法   % (百分号)求余运算   ++(自增一)   --(自减一)
         */
public static void main(String[] args) {
        int num01 = 10; //定义变量num01 并赋值10
        int num02 = 3;  //定义变量num01 并赋值3
        int num03 = num01+num02;//num01与num02相加--->结果为13
        int num04 = num01-num02;//num01与num02相减--->结果为7
        int num05 = num01*num02;//num01与num02相乘--->结果为30
        int num06 = num01/num02;//num01除以num02---->结果为3(整形省略小数)
        int num07 = num01%num02;//num02对num01取余数--->结果为1(10/3=3余1)
        
        //++ -- 变量放的位置
        int num = num01++;
        System.out.println(num);//10  变量在前,先进行赋值
        int num002 = ++num01;
        System.out.println(num002);//12  变量在后,先进性相加运算(因为上面赋值后自增了1所以是在11的基础上再进行自增所以为12)
        num01++; // 等价于----> num01 = num01+1;
        num01--; // 等价于----> num01 = num01-1;
        
    }

          

- 算术运算符:

1.  一元运算符: -- 、 ++  就是一个数就可以操作。
2.  二元运算符:+ - * / %     需要两个数才可以操作。
3.  三元运算符: 比如   boolean表达式 ? 结果1: 结果2 。
4.  算术赋值运算符: += -= *= /= %=  

- 比较运算符:< 、 >= 、 <= 、 == 、 != 
- 逻辑运算符: &&并且 、 ||或者 
- 位运算符: &与   |或   ^异或


              常量:

public static void main(String[] args) {
        //常量定义的语法格式:
       // final 常量数据类型   常量数据名 = 常量值;
         final int i = 1;
         i = 20;//[ Cannot assign a value to final variable 'i']会出现这个错误 意思是--> 无法为最终变量“i”赋值
        //一旦我们给这个变量 fianl 修饰之后,就不能进行二次赋值 但是如果我们只定义不赋值的话是可以进行二次赋值的;
        //比如
        final  int j ;
        j = 20;
        //可以这样 但是感觉没必要 既然你需要一个常量就直接给值就可以了,这样反而多此一举.
    }
需要注意: 
     1. ++ -- 只能对变量值产生自增和自减变化 不能对常量(被final修饰的变量)进行使用。
     2. 使用final修饰的变量 , 该变量就是一个常量。
     3. 使用final修饰的变量,如果不使用的话可以不给初始值(不能做二次赋值)。
     4.对于 ++ --如果还涉及到其他运算,变量在前,先进行其他运算再进行相加减运算,变量在后,先进行加减运算再进行其他运算。

      数据类型之间的转换(分为自动转换和强制转换):
 

 public static void main(String[] args) {
        
        /**
         *  自动转换 范围小的可以向范围大的进行转换    自动转换/隐性转换
         *   byte < short < char < int < long < floa < double
         */
        byte a1 = 123;
        int a2 = a1;//把beye变量赋值给了int变量(类型变化一下)
        System.out.println(a2);//可以正常输出 ,且程序没有报错这种叫自动转换--->小转大
        /**
         * 范围大的向范围小的进行转换,  强制转换/显示转换
         *       double > float > long > int > char > short > byte
         *       语法格式
         *           小范围数据类型 标识符 = (小范围数据类型) 变量名称
         */
        short sh01 = 200;
        byte a3 = (byte) sh01;// 把short变量赋值给byte变量 因为byte比chort范围小所以需要强制转换 
        System.out.println(sh01);

        
    }
   需要注意:
        1.如果范围大的变量在往范围小的类型进行转换时,如果本身值超过了范围小的表示范围不建议转换,因为精度会损失。
        2.ASCII编码表只能识别一些简单的字符,对于一些特殊的图标、图像、符号不能识别 [0 , 127]。
        3.Java程序中字符之间之间是可以之间进行四则运算,并且也支持自增(A->B)和自减   (B->A)。
        4.Windows系统对于汉字如果是UTF-8,占3个字节,如果是GBK占2个字节。
        5.所有的编码表都支持ASCII编码表,也就规定了[0,127]之间的取值。
        6.char类型的最大整数是65535,包含了一个0且不包含负数。
        7.不需要我们全部记忆,只需大家记住(0­9)对应(48­57),(A­Z)对应(65­90),(a­z)对应(97­122)。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值