Java变量:从“盒子”比喻到代码实战
各位小伙伴们好,周末也要努力哦。
如果你学过数学,应该对“变量”这个词不陌生。但在编程世界里,变量的含义不太一样。你可以把它想象成一个“带标签的储物盒”:盒子里可以放东西(数据),标签上写着盒子叫什么名字(变量名),盒子本身还有材质和大小限制(数据类型)。今天就来聊聊Java里这个“储物盒”到底怎么用。
变量
概念
变量相当于内存中的一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)
变量是程序的基本组成单位,总共有三个基本要素:类型 + 名称 + 值
class Test { public static void main(String[] args) { //声明变量 int a = 1; //定义了一个变量,类型为 int 类型,名称为 a,值为1 int b = 3; //定义了一个变量,类型为 int 类型,名称为 b,值为3 b = 89; //把 89 值赋给 b 变量 System.out.println("a = " + a); //输出 a 变量的值 1 System.out.println("b = " + b); //输出 b 变量的值 89 } }变量使用的基本步骤
1. 声明变量 int a;
2. 赋值 a = 60;
3. 使用 System.out.println(a); 打印 a 的值
也可以一步完成步骤 1 和 2:int a = 60;通常我们都是一步完成 ,上述代码可做参考
了解数据类型
学习变量,就需要先了解Java数据类型
这里我们先学习基本数据类型,引用数据类型等到后续再一一学习
[ ] 里面的数字指的是所占用的字节(byte),如字节型 byte 占用1个字节, 整型 int 占用4个字节
| 数据类型 | 关键字 | 占用字节 | 默认值 | 取值范围 |
|---|---|---|---|---|
| 字节型 | byte | 1 | 0 | -128 ~ 127 |
| 短整型 | short | 2 | 0 | -32768 ~ 32767 |
| 整型 | int | 4 | 0 | -2^15 ~ 2^15-1 |
| 长整型 | long | 8 | 0L | -2^63 ~ 2^63-1 |
| 单精度浮点型 | float | 4 | 0.0f | 约 ±3.4E38 |
| 双精度浮点型 | double | 8 | 0.0d | 约 ±1.8E308 |
| 字符型 | char | 2 | '\u0000' | 0 ~ 65535 |
| 布尔型 | boolean | 不固定(通常1) | false | true / false |
注意:boolean 的大小没有明确定义,通常JVM实现中用一个字节表示
//定义变量 byte day = 5; //字节型 1bit short week = 7; //短整型 2bit long year = 365L; //整型 4bit int age = 20; //长整型 8bit float length = 32.6f; //单精度浮点型 4bit double score = 89.5; //双精度浮点型 8bit char gender = '男'; //字符型 2bit String name = "tom"; //字符串型 boolean bool = true; //布尔型数据类型的解读
1. byte, short, long, int 定义范围都是整数,但是各有各的取值范围,结合所定义的值的大小选择数据类型。通常情况Java的整型常量(具体值)默认为 int 类型,如果有 int 不足以表示的大数,才使用 long,声明 long 型常量须后加 'l' 或 'L'(当然如果赋的值在 int 范围内,不声明也是可以的)
int n1 = 1; long n2 = 1; long n3 = 2147483648l; long n4 = 2147483648L;2. float, double 定义范围是小数,其中 double 精确度更高,如果要求精确度很高的话,使用 double 最为保险。通常情况Java的浮点常量(具体值)默认为 double 类型,声明 float 型常量,须后加 'f' 或 'F'
float num1 = 1.1; //错误 float num2 = 1.1f; //可以 double num3 = 1.1;浮点型常量有两种表现形式:
(1). 十进制数形式:如 5.12 512.0f .512(必须有小数点)
(2). 科学计数法形式:如 5.12e2(5.12 * 10^2) 5.12E-2(5.12 * 10^-2)
//十进制数形式 double num4 = .123; //等价0.123 //科学计数法形式 double num5 = 5.12e2; //512.0 double num6 = 5.12E-2; //0.0512浮点数的使用陷阱:2.7 和 8.1 / 3 比较
如果只是但从数学角度讲,二者是相等的,但是对计算机来说,后者只是一个无限接近于但不等于2.7的一个小数
Math.abs(num2 - num2);指的是整数绝对值,即 num1 和 num2 的差的绝对值
3. char 定义范围是一个字符,字符可以是一个字母(如 'a'、'b' 等),也可以是一个汉字(如 '男'、'女' 等),用单引号括起。Java中还允许转义字符 '\' 来将其后的字符转变为特殊字符型常量,如:char c = '\n'; 其中 '\n' 表示换行符。在Java中,char 的本质是一个整数,输出时,时 Unicode 码对应的字符,如:char c = 97; 则对应输出的就是 'a'
4. String 定义范围是一个或多个字符,既可以是字母,也可以是汉字,用双引号括起
5. boolean 是用来判断对错的,定义范围只有 true(对)和 false(错)
boolean pass = true; if(pass) { System.out.println("通过考试"); } else { System.out.println("未通过考试"); } //输出:通过考试int num1 = 20; int num2 = 25; System.out.println(num1 == num2); //false System.out.println(num1 != num2); //true变量使用的注意事项
1. 变量表示内存中的一个存储区域,不同的变量,类型不同,占用的空间大小不同,比如:int 4个字节,double 8个字节
2. 该区域有自己的名称[变量名]和类型[数据类型]
int n = 100; //n 为变量名,int 为数据类型3. 变量必须先声明,后使用,即有顺序
4. 该区域的数据可以在同一类型范围内不断变化
5. 变量在同一个作用域内不能重名
程序中 + 的使用
1. 当左右两边都是数值型时,则做加法运算
System.out.println(100 + 98); //1982. 当左右两边有一方为字符串时,则做拼接运算(即将两个数据拼接在一起,不进行计算)
System.out.println("100" + 98); //10098 System.out.println(100 + 3 + "hello"); //103hello System.out.println("hello" + 100 + 3); //hello10033. 运算顺序是从左到右
小结
变量是Java程序中最基本的存储单元,它的作用是:在内存中开辟一块空间,用一个有意义的名字来存放可变化的数据,方便后续的读取、修改和传递。没有变量,程序就像没有仓库的工厂——原料无处放,产品无处存,根本无法运转。
以上就是白弟对变量内容的分享啦,下期我们来详细聊聊基本数据类型之间的转换!
