- 个人主页: 陶然同学
- 版权: 本文由【陶然同学】原创、在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思考
计算机内存中,用来反复存/取数据的区域,叫做变量。
变量在内存中可以存储各种各样的数据,有整数、有小数、有文字 等。
变量里存储的值也可以被随时改变,以方便参与计算机程序的各项运算。
下面我们来看一下,Java 中,我们如何使用变量进行数据的存取
需求说明
程序运行时,需要向内存保存一个整数 10,并将保存在整数展示在控制台
public static void main(String[] args) {
//定义一个变量,起名叫 a,同时为变量 a 赋予一个整数 10
int a = 10;
//控制台展示变量 a 的值
System.out.println(a);
}
代码实现
这里仅展示 main 方法代码
案例总结
定义变量的语法格式
案例中代码的执行顺序和现实生活的对比,如下:
需求说明
程序运行时,需要向内存保存一个整数 10,并将保存在整数展示在控制台。
该案例使用特殊方式定义变量
代码实现
public static void main(String[] args) {
//定义一个变量,起名叫 a.
int a;
//为变量 a 赋予一个整数 10
a=10;
//控制台展示变量 a 的值
System.out.println(a);
}
案例总结
两个案例中,定义变量并为变量赋值的方式,效果相同
注意:
Java 中,定义变量里的“=”为:为某个变量赋值/向某个变量中存储值
需求说明
现在我们有 10 个整数需要保存到计算机内存中,分别是:
100,200,300,400,500,600,700,800,900,1000
保存完毕后,还需要在控制台依次展示。
效果如下:
现在我们有 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、定义变量的标准语法格式:
2、 “=”:为某个变量赋值/向某个变量中存储值;
3、变量必须先定义,才能存取数据;
4、定义变量后,必须先赋值才能使用;
5、一次定义多个变量,多个变量间用逗号分隔;
6、变量名大小写敏感(即大写字母变量和小写字母变量是两个不同的变量)
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;
}
需求说明
现在需要将整数 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
需求说明
现在需要保存小数 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 保存小数
需求说明
现在需要保存单个字符(文字)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);
}
需求说明
现在需要将“传智专修学院”多个字符保存进计算机内存,并展示在控制台。
效果如下:
问题说明
若该需求我们使用 char 类型解决,会浪费大量时间去定义 char 类型变量
所以我们应使用 Java 中专门保存多个文字的类型,String(字符串)类型
代码实现
public static void main(String[] args) {
//定义一个 String 类型的变量 a,向变量 a 中保存多个字符
String a = "传智专修学院";
System.out.println(a);
}
案例总结
char | String |
用单引号’’包裹 | 用双引号””包裹 |
仅保存单个字符,不能保存空字符 | 能保存多个字符,可以保存空字符 |
能够保存转义字符 |
转义字符:某些特殊符号无法直接保存,必须加\转换成计算机能够识别的字符。
常见转义字符有:
\’ 单引号
\\ 反斜杠
\t 制表符
需求说明
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 学习中,大量运用在各种判断和控制上。
Java 语法中,变量的数据类型大致分为两大类:
基本数据类型 和 引用数据类型
Java 有无限种引用数据类型,每天还在不断推陈出新,
我们学习 Java 并不会将所有引用数据类型都列举学习,而是开发用哪个,就学哪个。
1、请根据需求选择使用最恰当的数据类型,并定义变量保存,最后展示控制台:
a) 保存整数:15 亿
b) 保存小数:10.55
c) 保存布尔值:真
d) 保存:“我爱 Java” 这样的字符串
e) 保存整数:50 亿
f) 保存一个单引号: “’” 这样的单个字符
g) 保存:15.99abc
需求说明
我们知道变量里保存的值是可以被随时替换的,
下面我们需要将数字 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、定义一个变量,起名为 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、要求定义一个字符串类型变量 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、以下代码能否正常执行?若能正常执行,效果是什么?
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、变量可以使用“=”进行重新赋值,次数不限
2、重新赋值时,不能超出变量类型的规定范围
3、一般情况下,重新赋值时,建议赋予相同类型的值
4、变量不能被重复定义
5、代码会先进行右侧运算,最后进行“=”赋值。
6、运算结果若可能存在小数,建议使用浮点型变量。
(因为除号"/"两端若为整数,运算结果会舍弃小数位)
7、任何情况下,整数不能除 0,否则报错
8、任何类型和字符串直接进行“+”运算,都是在拼接字符串
9、最优先执行小括号里的运算
10、每个变量都有自己的作用范围,即离自己最近的{}。
(变量超出作用范围无法使用,强制使用程序报错停止)
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、变量必须先定义,才能存取数据;
2、定义变量后,必须先赋值才能使用。(赋值不能超出变量类型的规定范围)
3、变量名大小写敏感(即大写字母变量和小写字母变量是两个不同的变量)
4、变量不能被重复定义
5、每个变量都有自己的作用范围,即离自己最近的{}。
(变量超出作用范围无法使用,强制使用程序报错停止)
6、基本数据类型有四类八种,常用的有 int/long/double/boolean。
引用数据类型有无限种,目前我们常用一个 String
进制知识
现实世界的数字是由十进制组成。
十进制:每一位有 0123456789,逢十进一
例如:9 再加 1,就会进位,变成 10
计算机世界的数字是由二进制组成。
二进制:每一位有 01,逢二进一
例如:1 再加 1,就会进位,变成 10
后面的发展中,相继又发展出了八进制和十六进制:
八进制:每一位有 01234567,逢八进一
十六进制:每一位有 0123456789,ABCDEF,逢十六进一
1、如果我需要更方便存储更多的数字,我们使用二进制、十进制、八进制、十六进制哪个更
好
2、从占用字节的角度来回答,为什么在整型使用中,
不是直接使用最大的 long,而是根据情况判断使用 int 或 long 呢?
3、现在要让计算机存储 真/假,我们是选择使用 char 存储字符’真’/’假’ 比较好,
还是选择使用 boolean 存储 true/false 更好?从占用字节的角度来回答
我们的Java百炼成神就结束了 欢迎大家添加博主交流 练习过程中遇到问题也可以提供支持 如果需要学习资料 博主也可以推荐
最后 如果觉得文章对您有帮助 请给博主点赞、收藏、关注 博主会不断推出更多优质文章