[JAVA][入门]八大常用变量的注意要点

什么是变量

JAVA是强类型语言,在运算过程中值可以发生改变的是变量,反之是常量。或者说,变量就是可变的量。 声明变量的格式是:

//数据类型 变量名 = 赋值;
int n = 2;

补充一点,变量在声明的同时会根据数据类型来分配空间大小。

变量的种类

  基本的变量类型有3类8种,并且在声明变量的时候,内存占用大小就已经确定了。

第一类:数值-整型

  • 只要声明为指定的数据类型,在内存中直接分配对应的空间大小
  • 相同数据类型中:1和100占的内存空间是相同的
  • 整型默认的数据类型为int
  • 声明long类型数值的时候,如果超出int的范围,需要在数字后加L或者l ,推荐L
  • 每一个整型数字都有对应的二进制数
类型长度(字节)位数变化种类表数范围
byte 1828=256[-128 ~ 127]
short216216=65536[-32768 ~ 32767]
int432232= 42E[±21亿] [-231 ~ 231-1]
long864264±263
byte b1 = 10;
short s1 = 1;
short s2 = 32767;
int a = 100;
int b3 = 1134567890;
long l1 = 2234567890L;

第二类:数值-浮点型

  • 声明的含有小数的数值
  • 浮点数很多时候是不能精确的转换为二进制数的
  • 只能根据数据类型的长度截取指定的长度,剩下的部分被舍弃
  • 根据IEEE754的二进制浮点数算术标准,浮点数 0.1 + 0.2 != 0.3 ( != 意为不等于)
  • 声明double和float可以直接对应整型数字
  • 浮点型默认的类型为double
  • 如果声明float的时候需要在后面添加 F 、f
类型长度(字节)位数变化种类表数范围
float 4321(符号) + 8(指数) + 23(尾数)2-127 ~ 2128
short2161 + 11 + 52 2-1023,21024
  • 符号位:标识这个浮点数的正负
  • 指数位:计算浮点数的指数 【-127,128】
  • 尾数位: 小数点后面的数据
float f1 = 0.1f;
short s1 = 100;

第三类:布尔

类型长度(字节)位数变化种类表数范围
boolean112true, false
boolean flag = true;
boolean b1 = false;

第四类:字符

类型长度(字节)位数变化种类表数范围
char21665536最多存放65536个字符
char c1 = 'A';
char c2 = 65; // 根据ASCII表,c2输出与c1相同也是'A'。

数据类型转换

隐式的数据类型转换

  • 小类型可以自动转化为大类型

    • 特例:声明变量的时候,可以直接将int的值赋值给byte short
    • int的值不能超出byte short的表值范围
  • 当进行数学运算的时候

    • 小类型默认转化为大类型
  • 整型与整形进行计算,得到的还是整型结果

  • 基本类型转换图

    • 不丢失精度
      • byte -> short -> int -> long
      • char -> int -> long
      • int -> double
      • float -> double
    • 丢失精度
      • int -> float
      • long -> float
      • long -> double
      • 从大的转成小的都是丢失

    注意:

    • 如果运算没有比int类型更大的数据参数运算,最终的结果会自动提升成为int类型。
    • 如果参数运算的有比int更大的类型,自动提升成为最大的数据类型
    • 从大的转成小的都是丢失
    • 如果要给比int范围小的byte,short,char赋值的时候,在其范围内的常量就能够成功赋值

强制数据类型转换

  • 从大类型转成小类型
  • 转换的语法格式为
    • 小类型 = (小类型) 大类型;
  • 整型将大类型转成小类型的时候,只从右向左截取小类型所需要的长度
    • 得到的数字相对是很随机的
  • 浮点型将double转成float是算出来的
  • 将来不要使用浮点数比较大小
  • 如果确定需要比较浮点数,需要确定保留多少位有效数字,然后转成整型再进行比较

变量作用域

不能使用未经声明的变量

  • 局部变量
    • 当前方法中,声明变量之后都可以访问到这个局部变量
    • 局部变量在使用之前必须先赋值
    • 块级作用域
  • 全局变量
    • 定义在类中,可以被类中方法所使用
    • 先后顺序都可以,但是推荐变量定义在类的最上方
    • 全局变量如果没有赋值,会默认给予一个初始值,
      • 首先在内存中申请变量类型长度的空间,全部填充为0
      • 整型:0
      • 浮点:0.0
      • 字符:\u0000
      • 布尔:0–>false
      • 引用数据类型: null
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值