java变量常量及变量赋值变量溢出

0 阅读2分钟

变量命名规范

  • 只能用数字、字母或者下滑线,且数字不能出现在第一个位置
  • java的关键字不能当作变量名

定义变量

int a;

定义常量

final int A;

变量类型

image.png

变量溢出

当某个类型的字符大小超出时会从该字符的另一边开始计算,我们称之为变量大小溢出

byte a = 129
//这样会报错,提示129似乎是一个int值,强制转换为byte会有精度损失
//我们强制它类型转换为byte,就会发生奇怪的现象
byte a = (byte)129
System.out.println(a)
// -127
//发现从数据范围的另一边开始了

变量赋值标注

有些类型的变量需要赋值的时候进行标注,以告诉编译器正在初始化的是该类型变量,这样设计是为了避免隐式强制转换,以便对程序进行优化

  • 定义long类型的变量的时候要在最后面加一个L
long l = 2147483648l;
long l = 2147483648L;
System.out.println(l) //2147483648
  • 单精度浮点数,在定义的时候要加一个f
float f = 3.14f;
  • 双精度浮点数,则加个d
double d = 3.14d;
  • 同时要注意的是浮点数的计算会有精度丢失

字符变量的类型转换

  • 字符型变量变量值要写在单引号内
char c = 'A';
System.out.println(c) //A
  • 对字符类型进行强制类型转换为数字,会得到字符的ASSIC码
char c = 'A';  
int ic = (int) c;  
System.out.println("ic:" + ic);  
System.out.println("c:" + c);
/*  
ic:65  
c:A  
* */

多变的布尔类型

  • 在java中布尔类型的大小是不确定的,有的时候是4个字节有的时候是1个字节
  • 因为在大多数情况java会把布尔类型看作int类型即为4个字节,false(0) true(1),而在一些特殊的应用场景中需要使用布尔类型的数组,这时布尔变量就占1个字节

4b496b51501106c1662d4304a7b9324fb2bf5daf.jpg@1256w_848h_!web-article-pic.webp