zoukankan      html  css  js  c++  java
  • java语言基础-变量

    一丶变量的基本概念

      1.什么是变量

        (1).内存中的一个存储区域

        (2).该区域有自己的名称(变量名),和类型(数据类型)

        (3.)该区域的数据可以在同一类型范围内不断变化(定义变量的主要目的是因为数据的不确定性)

      2.为什么要定义变量

        用来不断存放同一类型的常量,并可以重复使用

      3.变量的类型

        

        一般使用使用Int,byte也比较常用  因为他是数据的最小单元

    二丶类型的提升&强制转换

      1.两个不同类型无法进行 计算 ,因为内存空间大小不一致

      2.除非是数值类型,因为可以类型自动提升

      

      注:图中是byte类型自动类型提升为整型  音为byte类型是一个八位,int 是四个八位,所以可以自动提升,反之,int 自动类型转换byte则不可以 ,因为会丢失精度

       如果必须要将byte转换为Int 类型 ,则需要强制类型转换(int有四个8位,若要强制转为为byte 则会把前面三个8位舍弃掉,丢失精度,慎用)

     三丶类型运算细节

      

    //1
    byte
    a=4; a=3+7;
    //2 byte b=3; byte c=7; a=b+c; System.out.println(a);

    1.第一代码块执行过程是首先声明变量,判断赋给变量的值是否在byte类型的取值范围内(-128~127)如果在,则会自动将int类型转换为byte类型(也就是去掉前面的3个8位),第二行复制代码,因为3和7的和是整型,所以在赋值时也是先判断赋给a的值是否在byte类型范围内,如果存在,则赋值给a,如果不存在则编译报错;

    2.第二代码块同上,声明两个变量,然后把两个变量值相加,因为b和c是变量,变量的值是变化的,不确定的,因为无法再程序运行之前判断两个变量的值是否在byte取值范围内,所有会直接编译报错。

    int a=5;
    int b=Integer.MAX_VALUE;
    int c=10;
    a=b+c;
    System.out.println(a);

    1.而int 类型不会出现问题,因为整型计算得到的所有结果都是整型,如果运算结果大于整型取值范围,则会去掉高位,保留32位

      

        

  • 相关阅读:
    [Linux]Ubuntu下正确挂载NTFS磁盘的方法
    Google搜索指令与自定义引擎
    【Linux】Android手机在Ubuntu上无法被adb识别解决办法(权限相关)
    [ Linux ] Remove PPA source from your pc
    一键去除 UC浏览器 论坛模式 内置的广告
    Huawei U8825d 对4G手机内存重新分区过程[把2Gb内置SD卡容量划分给DATA分区使用]
    【Android】把Linux GCC安插在Android手机上
    [Windows]隐藏文件及目录的命令
    Linux压缩包简体中文乱解决方案[全]
    修改su密码 macbook
  • 原文地址:https://www.cnblogs.com/Chestnuts/p/7463788.html
Copyright © 2011-2022 走看看