> 文档中心 > 【Java百炼成神】魂力篇——Java之变量

【Java百炼成神】魂力篇——Java之变量



  • 💂 个人主页: 陶然同学
  • 🤟 版权: 本文由【陶然同学】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
  • 💅 想寻找共同成长的小伙伴,请点击【Java全栈开发社区

目录

一、变量

1.1【入门】

        1.1.1概念

        1.1.2入门案例1:定义变量存储整数

        1.1.3入门案例2:特殊方式定义变量

        1.1.4随堂练习:一次定义多个变量

        1.1.5入门案例3:一次定义多个变量

        1.1.6入门案例总结

        1.1.7思考

1.2【进阶】

        1.2.1进阶案例1:定义变量存储最大整数

        1.2.2进阶案例2:定义变量存储小数

        1.2.3进阶案例3:定义变量存储单个文字

        1.2.4 进阶案例4:定义变量存储多个文字

        1.2.5进阶案例5:定义变量存储真/假

        1.2.6进阶案例总结

        1.2.7思考

1.3【高级】

        1.3.1高级案例1:变量重新赋值

        1.3.2高级案例2:数字类型变量的四则运算             

        1.3.3高级案例3:字符串拼接

        1.3.4变量作用范围

        1.3.5高级案例总结

        1.3.6思考

1.4总结

1.5【扩展】

        1.5.1int与进制

        1.5.4思考


一、变量

1.1【入门】

        1.1.1概念

计算机内存中,用来反复存/取数据的区域,叫做变量。

变量在内存中可以存储各种各样的数据,有整数、有小数、有文字 等。 
变量里存储的值也可以被随时改变,以方便参与计算机程序的各项运算。 
 
下面我们来看一下,Java 中,我们如何使用变量进行数据的存取 

        1.1.2入门案例1:定义变量存储整数

                需求说明

程序运行时,需要向内存保存一个整数 10,并将保存在整数展示在控制台 

public static void main(String[] args) {  //定义一个变量,起名叫 a,同时为变量 a 赋予一个整数 10  int a = 10;  //控制台展示变量 a 的值  System.out.println(a); } 

                代码实现

这里仅展示 main 方法代码

                案例总结

定义变量的语法格式

 案例中代码的执行顺序和现实生活的对比,如下:

        1.1.3入门案例2:特殊方式定义变量

                需求说明

程序运行时,需要向内存保存一个整数 10,并将保存在整数展示在控制台。 
该案例使用特殊方式定义变量

                代码实现

public static void main(String[] args) {  //定义一个变量,起名叫 a.  int a;  //为变量 a 赋予一个整数 10  a=10;  //控制台展示变量 a 的值  System.out.println(a); }

                案例总结

两个案例中,定义变量并为变量赋值的方式,效果相同

 注意: 
Java 中,定义变量里的“=”为:为某个变量赋值/向某个变量中存储值

        1.1.4随堂练习:一次定义多个变量

                需求说明

现在我们有 10 个整数需要保存到计算机内存中,分别是: 
100,200,300,400,500,600,700,800,900,1000 
保存完毕后,还需要在控制台依次展示。 
效果如下: 

        1.1.5入门案例3:一次定义多个变量

现在我们有 10 个整数需要保存到计算机内存中,分别是: 
100,200,300,400,500,600,700,800,900,1000 
保存完毕后,还需要在控制台依次展示。 
根据前面讲解,我们可能写出的代码如下:

 我们看到,当我们定义多个变量时,每个变量定义占用一行,虽然代码标准规范,但占用行
数较大,我们可以合并,一次定义多个变量。

                代码实现A:先一次定义多个 再赋值多个

public static void main(String[] args) {  //一次定义多个变量  int a,b,c,d,e,f,g,h,i,j;  //一次为多个变量赋值  a=100;  b=200;  c=300;  d=400;  e=500;  f=600;  g=700;  h=800;  i=900;  j=1000;  System.out.println(a);  System.out.println(b);  System.out.println(c);  System.out.println(d);  System.out.println(e);  System.out.println(f);  System.out.println(g);  System.out.println(h);  System.out.println(i);  System.out.println(j); } 

                代码实现B:一次定义多个变量并赋值

public static void main(String[] args) {  //一次性定义多个变量并赋值  int a=100,b=200,c=300,d=400,e=500,f=600,g=700,h=800,i=900,j=1000;  System.out.println(a);  System.out.println(b);  System.out.println(c);  System.out.println(d);  System.out.println(e);  System.out.println(f);  System.out.println(g);  System.out.println(h);  System.out.println(i);  System.out.println(j); }

        1.1.6入门案例总结

1、定义变量的标准语法格式:

 2、 “=”:为某个变量赋值/向某个变量中存储值; 
3、变量必须先定义,才能存取数据; 

 4、定义变量后,必须先赋值才能使用;

 5、一次定义多个变量,多个变量间用逗号分隔;

 6、变量名大小写敏感(即大写字母变量和小写字母变量是两个不同的变量)

        1.1.7思考

1、以下代码是否能够正常执行

public static void main(String[] args) {  int aa;  aa=10;  System.out.println(bb); }

2、以下代码是否能够正常执行

public static void main(String[] args) {  int aa;  aa=10;  System.out.println(AA); }

3、以下代码是否能够正常执行 

public static void main(String[] args) {  int aa;  System.out.println(aa);  aa=10; }

4、以下代码是否能够正常执行 

public static void main(String[] args) {  int aa=10;bb=20;cc=30;  System.out.println(aa);  System.out.println(bb);  System.out.println(cc); }

5、以下代码是否能够正常执行

public static void main(String[] args) {  int aa,bb;cc;  System.out.println(aa);  System.out.println(bb);  System.out.println(cc); }

6、以下代码是否能够正常执行

public static void main(String[] args) {  int aa=10,bb,cc;  bb=20,cc=30;  System.out.println(aa);  System.out.println(bb);  System.out.println(cc); }

7、以下代码是否能够正常执行

public static void main(String[] args) {  int aa=10,bb,cc;  bb=20;  cc=30;  dd=40;  System.out.println(aa);  System.out.println(bb);  System.out.println(cc);  System.out.println(dd); }

8、以下代码是否能够正常执行

public static void main(String[] args) {  int aa=10,bb,cc;  bb=20;  cc=30;  System.out.println(aa);  System.out.println(bb);  System.out.println(cc);  cc=50; } 

1.2【进阶】

        1.2.1进阶案例1:定义变量存储最大整数

                需求说明

现在需要将整数 10 亿和整数 30 亿分别存储进计算机内存,并在控制台展示 

                问题说明

编写代码时,整数 10 亿可以正常保存使用, 
而整数 30 亿保存报错

 因为 int 类型的变量,保存的整数大小是有上限的 
(Java 规定,int 类型保存的最大值 2147483647) 
所以若需要保存大整数,则需要更换更大的变量类型。

                代码实现

public static void main(String[] args) {  //int 类型保存的整数最大值为:2147483647  int aa = 1000000000;  //long 类型保存的整数最大值为:9223372036854775807  long cc = 3000000000L;   System.out.println(aa);  System.out.println(cc); }

                案例总结

Java 中保存整数的变量类型有四种:

名称 占用大小  范围
byte  1 字节 -128~127 
例如:byte aa = 100; 
short 2 字节 -32768~32767 
例如:short aa = 100; 
int 4字节 -2147483648~2147483647 
约 43 亿个数 
例如:int aa = 100; 
long(长整型)  8 字节 -9223372036854775808~9223372036854775807 
long 类型在赋值时,需要在值后加入字母 L 区分其
是一个长整型 
例如:long aa = 100L;

四种整数类型各有各的存储范围,超出范围进行存储,会导致报错。 
开发中保存整数一般使用 int,需保存的整数超出 int 范围,才会使用 long 

        1.2.2进阶案例2:定义变量存储小数

                需求说明

现在需要保存小数 100.99 到计算机内存,并在控制台展示 

                问题说明

若使用 byte/short/int/long 这样的整数类型保存小数,则会报错

                代码实现

public static void main(String[] args) {  //定义小数类型变量 a,保存小数 10.5  double a = 10.5;  System.out.println(a); }

                案例总结

Java 中,保存小数的类型叫做浮点型。 

名称 占用大小 范围
float 4 字节 float 类型在赋值时,需要在值后加入字母 F 
例如:float aa = 100.5F; 
double 8 字节 例如:double aa = 100.5; 

开发中我们一般使用 double 保存小数 

        1.2.3进阶案例3:定义变量存储单个文字

                需求说明

现在需要保存单个字符(文字)A 到计算机内存,并向控制台展示 

                问题说明

之前学过的整数、小数类型变量,都无法直接保存单个字符, 
我们需要使用 Java 中专门保存单个字符的变量类型:char 

                代码实现

public static void main(String[] args) {  //定义 char 类型变量 a,向变量 a 保存单个字符'A'  char a = 'A';  System.out.println(a); }

                案例总结

Java 中保存单个字符(文字)的类型叫做字符型 

名称 占用大小 范围
char 2 字节 必须使用’’包裹,且不能空着,
必须填写一个字符 
例如:char aa = ‘好’; 

                思考

1、以下代码是否能够正常执行

public static void main(String[] args) {  char a = 'AB';  System.out.println(a); }

2、以下代码是否能够正常执行

public static void main(String[] args) {  char a = '';  System.out.println(a); }

3、以下代码是否能够正常执行

public static void main(String[] args) {  char a = '棒';  System.out.println(a); }

4、以下代码是否能够正常执行,若删除\会如何 

public static void main(String[] args) {  char a = '\'';  System.out.println(a); }

        1.2.4 进阶案例4:定义变量存储多个文字

                需求说明

现在需要将“传智专修学院”多个字符保存进计算机内存,并展示在控制台。 
效果如下: 

                问题说明

若该需求我们使用 char 类型解决,会浪费大量时间去定义 char 类型变量

所以我们应使用 Java 中专门保存多个文字的类型,String(字符串)类型 

                代码实现

public static void main(String[] args) {  //定义一个 String 类型的变量 a,向变量 a 中保存多个字符  String a = "传智专修学院";  System.out.println(a); }

                案例总结

char String 
用单引号’’包裹 用双引号””包裹 
仅保存单个字符,不能保存空字符 能保存多个字符,可以保存空字符 
能够保存转义字符

转义字符:某些特殊符号无法直接保存,必须加\转换成计算机能够识别的字符。 
常见转义字符有: 
\’ 单引号 
\\ 反斜杠 
\t 制表符 

        1.2.5进阶案例5:定义变量存储真/假

                需求说明

Java 语言可以向计算机内存保存 “真” 或 “假” 这两个特殊值。 
真:true 
假:false

下面我们来分别保存并展示 

                代码实现

public static void main(String[] args) {  //定义布尔类型的变量 a,用来存储 true,真  boolean a = true;  System.out.println(a);  //定义布尔类型的变量 b,用来存储 false,假  boolean b = false;  System.out.println(b); } 

                案例总结

Java 中,用来保存“真”/“假” 值的类型,叫做布尔型 

名称  占用大小 范围
boolean 1 字节 只有两个值 true 与 false。 
例如:boolean aa = true; 

布尔型在后期 Java 学习中,大量运用在各种判断和控制上。

        1.2.6进阶案例总结

Java 语法中,变量的数据类型大致分为两大类: 
基本数据类型 和 引用数据类型 

Java 有无限种引用数据类型,每天还在不断推陈出新, 
我们学习 Java 并不会将所有引用数据类型都列举学习,而是开发用哪个,就学哪个。 

        1.2.7思考

1、请根据需求选择使用最恰当的数据类型,并定义变量保存,最后展示控制台: 
a) 保存整数:15 亿 
b) 保存小数:10.55 
c) 保存布尔值:真 
d) 保存:“我爱 Java” 这样的字符串 
e) 保存整数:50 亿 
f) 保存一个单引号: “’” 这样的单个字符 
g) 保存:15.99abc 

1.3【高级】

        1.3.1高级案例1:变量重新赋值

                需求说明

我们知道变量里保存的值是可以被随时替换的, 
下面我们需要将数字 10 保存到变量中,然后再用数字 20 替换数字 10。

                代码实现

public static void main(String[] args) {  //定义 int 类型变量 a,保存整数 10  int a = 10;  //重新向变量 a,赋予整数 20.(原来的整数 10 被替代)  a = 20; }

                案例总结

1、变量可以使用“=”进行重新赋值,次数不限 
2、重新赋值时,不能超出变量类型的规定范围

 3、一般情况下,重新赋值时,建议赋予相同类型的值

 4、变量不能被重复定义

        1.3.2高级案例2:数字类型变量的四则运算             

                需求说明

变量值可以随时被改变,也可以参与到计算机的各种运算中。 
下面需要: 
1、定义一个变量,起名为 num,保存整数 10. 
2、num 变量和 9 相加,将运算后的结果重新保存到 num 变量中,并展示控制台 
3、num 变量减去 1,将运算后的结果重新保存到 num 变量中,并展示控制台 
4、num 变量乘以 2,将运算后的结果重新保存到 num 变量中,并展示控制台 
5、num 变量除以 9,将运算后的结果重新保存到 num 变量中,并展示控制台 
 
效果如下:

                代码实现

public static void main(String[] args) {  //1、定义变量 num,保存整数 10  int num = 10;  //2、使用变量 num 的值加 9,将运算结果再重新保存回变量 num 中  num = num+9;  System.out.println(num);  //3、使用变量 num 的值减 1,将运算结果再重新保存回变量 num 中  num = num-1;  System.out.println(num);  //4、使用变量 num 的值乘以 2,将运算结果再重新保存回变量 num 中  num = num*2;  System.out.println(num);  //5、使用变量 num 的值除以 9,将运算结果再重新保存回变量 num 中  num = num/9;  System.out.println(num); }

                案例总结

以 num = num+9;为例,运算并赋值的执行流程如图

整体案例代码的执行流程如下:

综上,执行代码时,会先进行算式运算,最后进行赋值操作  

                思考

1、定义变量,保存小数 10.55,使用变量除以 5,运算结果再保存回变量,展示到控制台 
 
2、以下代码是否正确执行,效果是什么,效果是否准确? 

public static void main(String[] args) {  int num = 5;  //进行除法运算  num = num/2;  System.out.println(num); }

3、以下代码是否正确执行,效果是什么?

public static void main(String[] args) {  int num = 5;  //进行除法运算  num = num/0;  System.out.println(num); }

4、以下代码执行效果是什么,控制台展示语句执行后,num1 和 num2 的变量值是否发生改
变 
 

public static void main(String[] args) {  int num1 = 10;  int num2 = 20;  System.out.println(num1+num2); }

        1.3.3高级案例3:字符串拼接

                需求说明

1、要求定义一个字符串类型变量 str,保存:“传智专修学院” 
2、在变量 str 上继续追加字符串“软件工程系-Java 方向” 
3、控制台展示变量 str,效果如下: 
 

                代码实现

public static void main(String[] args) {  //定义一个字符串类型变量 str,并保存字符串  String str="传智专修学院";  //先用+号进行字符串拼接,再将拼接结果重新保存到 str 中  str = str+" 软件工程系-Java 方向";  System.out.println(str); }

                案例总结

1、与整数型、浮点型不同,字符串类型变量的“+”不是数学运算,而是追加拼接字符串。 
2、 同样也是先进行“+”拼接运算,再进行“=”赋值

                思考

1、以下代码效果是什么? 
 

public static void main(String[] args) {  String str = "今天星期";  str = str+1+2;  System.out.println(str); }

2、以下代码效果是什么? 

public static void main(String[] args) {  String str = "今天星期";  str = str+(1+2);  System.out.println(str); }

3、要求定义四个变量,分别是: 
1、字符串类型变量,存储“一年有” 
2、字符串类型变量,存储“天” 
3、整数类型变量,存储:36 
4、整数类型变量,存储:5 
 
现需要在控制台展示时,展示如下效果:

请编写代码,完成以上效果  

        1.3.4变量作用范围

                知识讲解

每个变量都是有自己的作用范围,超出范围无法正常使用。 
变量的作用范围:仅限于离自己最近的花括号{}内

                思考

1、以下代码能否正常执行?若能正常执行,效果是什么? 

public static void main(String[] args) {  int num = 10;  {  num = 20;  }  System.out.println(num); }

2、以下代码能否正常执行?若能正常执行,效果是什么?

public static void main(String[] args) {  {  int num = 10;  System.out.println(num);  } } 

3、以下代码能否正常执行?若能正常执行,效果是什么?

public static void main(String[] args) {  int num1 = 10;  {  int num2 = 20;  System.out.println(num1);  }  System.out.println(num2); } 

4、以下代码能否正常执行?若能正常执行,效果是什么?

public static void main(String[] args) {  int num1 = 10;  {  int num2 = 20;  }  System.out.println(num1+num2); }

5、以下代码能否正常执行?若能正常执行,效果是什么? 

public static void main(String[] args) {  int num1 = 10;  {  int num2 = 20;  num1 = num2+num1;  }  System.out.println(num1); } 

6、以下代码能否正常执行?若能正常执行,效果是什么?

public static void main(String[] args) {  int num1 = 5;  {  int num2 = 8;  }  System.out.println("幸运数字:"+num1+num2); }

        1.3.5高级案例总结

1、变量可以使用“=”进行重新赋值,次数不限 
2、重新赋值时,不能超出变量类型的规定范围

 3、一般情况下,重新赋值时,建议赋予相同类型的值

 4、变量不能被重复定义

 5、代码会先进行右侧运算,最后进行“=”赋值。

 6、运算结果若可能存在小数,建议使用浮点型变量。
 (因为除号"/"两端若为整数,运算结果会舍弃小数位)

 7、任何情况下,整数不能除 0,否则报错

 8、任何类型和字符串直接进行“+”运算,都是在拼接字符串

9、最优先执行小括号里的运算 

 10、每个变量都有自己的作用范围,即离自己最近的{}。
 (变量超出作用范围无法使用,强制使用程序报错停止) 

        1.3.6思考

1、以下代码的效果是什么? 

public static void main(String[] args) {  double xnum = 5.0;  int num1 = 2;  xnum = xnum/num1;   System.out.println(xnum); }

2、以下代码的效果是什么? 
 

public static void main(String[] args) {  int num1 = 5;  int num2 = 10;  String str1 = "1";   System.out.println(num1+(num1+num2)+(str1+num2)+(num1+str1+num2)); }

3、以下代码的效果是什么? 

public static void main(String[] args) {  int num1 = 5;  int num2 = 10;  String str1 = "1";   System.out.println(num1/0+(num1+num2)+(str1+num2)+(num1+str1+num2)); } 

4、以下代码的效果是什么 

public static void main(String[] args) {  int num1 = 5;  {  int num2 = 1;  num1 = num2+num1;  }  System.out.println(NUM1); }

1.4总结

1、变量必须先定义,才能存取数据;

 2、定义变量后,必须先赋值才能使用。(赋值不能超出变量类型的规定范围)

 3、变量名大小写敏感(即大写字母变量和小写字母变量是两个不同的变量)

 4、变量不能被重复定义

 5、每个变量都有自己的作用范围,即离自己最近的{}。
 (变量超出作用范围无法使用,强制使用程序报错停止)

 6、基本数据类型有四类八种,常用的有 int/long/double/boolean。 
 引用数据类型有无限种,目前我们常用一个 String

1.5【扩展】

        1.5.1int与进制

                进制知识

现实世界的数字是由十进制组成。 
十进制:每一位有 0123456789,逢十进一 
例如:9 再加 1,就会进位,变成 10

计算机世界的数字是由二进制组成。 
二进制:每一位有 01,逢二进一 
例如:1 再加 1,就会进位,变成 10

 后面的发展中,相继又发展出了八进制和十六进制: 
 
八进制:每一位有 01234567,逢八进一

 十六进制:每一位有 0123456789,ABCDEF,逢十六进一

        1.5.4思考

1、如果我需要更方便存储更多的数字,我们使用二进制、十进制、八进制、十六进制哪个更
好 
 
2、从占用字节的角度来回答,为什么在整型使用中, 
不是直接使用最大的 long,而是根据情况判断使用 int 或 long 呢? 
 
3、现在要让计算机存储 真/假,我们是选择使用 char 存储字符’真’/’假’ 比较好, 
还是选择使用 boolean 存储 true/false 更好?从占用字节的角度来回答 

         我们的Java百炼成神就结束了 欢迎大家添加博主交流 练习过程中遇到问题也可以提供支持 如果需要学习资料 博主也可以推荐

        最后 如果觉得文章对您有帮助 请给博主点赞、收藏、关注 博主会不断推出更多优质文章