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位

  

    

原文地址:https://www.cnblogs.com/Chestnuts/p/7463788.html