变量

概念

  • 变量:计算机内存当中存储数据的最基本的单元。
  • 变量就是内存当中的一块空间。
  • 变量有三要素:数据类型、变量名、字面值。

定义

  数据类型  变量名 = 变量值;
  或
  数据类型  变量名;  变量名 = 变量值;

int i = 10;
//int g 编译错误: 可能尚未初始化变量xxx

int j ;
j = 12;

//int a,b,c = 30 表示声明三个int类型变量a, b没有赋值,c赋值30。
int l = 11,m = 12,n = 13;
int a,b,c;
l = 20;
m = 30;
n = 40;

//System.out.println(t);编译错误: 找不到符号
//int t = 5; 在java程序的方法体当中,代码是有执行顺序要求的,遵循自上而下的顺序依次逐行执行

j = 30;//重新赋值
//int j = 30;编译错误: 已在方法 main(String[])中定义了变量 j

要点

  1. Java中每个变量必须先声明、后使用。
  2. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  3. 变量只有在其作用域内才有效。
  4. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
  5. 不提倡(int i ,j; // 两个变量的数据类型都是 int)这种风格,逐一声明每一个变量可以提高程序可读性。
  6. 同一个作用域{}内,不可以声明两个同名的变量。
  7. 变量区分大小写,书写时遵循 lowerCamelCase 风格。
  8. 有两个域并且存在包含关系,允许存在同名变量,但是遵循就近原则。       

分类

  • 按照数据类型

详细说明:
整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
        ① byte范围:-128 ~ 127
      ② 声明long型变量,必须以"l"或"L"结尾
        ③ 通常,定义整型变量时,使用int型。
        ④整型的常量,默认类型是:int型。整型变量默认值是:0

浮点型:float(4字节) \ double(8字节)
        ① 浮点型,表示带小数点的数值
        ② float表示数值的范围比long还大
        ③ 定义float类型变量时,变量要以"f"或"F"结尾
      ④ 通常,定义浮点型变量时,使用double型。
        ⑤ 浮点型的常量,默认类型为:double。浮点变量默认值是0.0
字符型:char (1字符=2字节=1个汉字)
        ① 定义char型变量,通常使用一对'',内部只能写一个字符
        ② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量。字符变量的默认值为'\u0000'。
布尔型:boolean
      ① 只能取两个值之一:true 、 false
      ② 常常在条件判断、循环结构中使用。布尔变量的默认值为false。

  • 按照声明的位置

               

类型 声明位置 从属于 存储位置 生命周期 初始值
局部变量

方法或者语句块内部

方法/语句块 栈帧

从声明位置开始,直到方法或语

句块执行完毕,局部变量消失

局部变量在使用前必须先声明、初始化(赋初值)再使用

实例变量 方法外,不带static 对象

对象创建,成员变量也跟着创建。

对象消失,成员变量也跟着消失

如果不自行初

始化,它会自动初始化成该类型的默认初始值。

静态变量 方法外、带static 方法区

类被加载,静态变量就有效;类

被卸载,静态变量消失

如果不自行初始化,与成员变量相同会自动初始

化成该类型的默认初始值

显式转换和隐式转换

  • 显式转换 又叫强制转换。小范围数据类型 变量=(小范围数据类型)大范围数据;int n = (int)6.7;
  • 隐式转换:又叫自动转换。大范围数据类型 变量=小范围的数据; double d = 10000;
//隐式转换
short b = 12; //合法 
short b = 1234567; //非法,1234567 超出了 short 的表数范围
short s1 = 1;
s1 = s1 + 1;//s1+1 进行运算时,s1自动转换成int类型,右边运算结果是int类型,经过编译器检查,两边数据类型不一致会报错。
s1 += 1;//+= 或者 ++ 运算符会执行隐式类型转换,相当于s1 = (short) (s1 + 1);

//显式转换
int x = (int)3.14 //x = 3 强制转换可能会导致精度丢失,浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
byte i = (byte) 128;// i = -128 字节转换可能会导致数据溢出。
int money = 1000000000; //右边的数值超过了int的范围,产生溢出行为。

类型转换的规则

  1、八种基本数据类型中,除了boolean类型之外,剩下的7种类型之间都可以进行类型转换。
  2、当整数型字面值没有超出byte、short、char取值范围,那么可以直接将它赋值给byte、short、char类型的变量。
  3、byte short char在做数学运算的时候,各自会先转换成int类型,再做运算。
  4、小容量可以自动转换成大容量。八种基本数据类型容量从小到大的顺序:
      - byte < short < int < long < float < double 
      - ​           < char
      - char和short容量相同,都是2个字节,只不过char可以表示更大的正整数。
  5、多种数据类型做混合运算,各自先转换成容量最大的类型之后再做运算。
  6、大容量转换成小容量的时候,必须添加强制类型转换符,这样编译才能通过,但是运行的时候可能会损失精度。

posted @ 2022-09-21 21:01  小孙不是程序员  阅读(326)  评论(0编辑  收藏  举报
Live2D