Java从入门到精通 - Java语法
Java 语法
此笔记参考黑马教程,仅学习使用,如有侵权,联系必删
文章目录
- Java 语法
- 01 变量详解
- 1. 变量里的数据在计算机中的存储原理
- 1.1 二进制
- 1.2 十进制转二进制的算法
- 1.3 计算机中表示数据的最小单元
- 总结
- 1.4 字符在计算机中是如何存储的呢?
- 1.5 图片数据 - 彩色图
- 1.6 声音数据
- 总结
- 1.7 十进制转二进制的算法
- 1.8 八进制、十六进制介绍
- 1.9 计算机的数据单位
- 总结
- 2. 数据类型
- 2.1 数据类型的分类
- 代码演示
- 总结
- 02 类型转换
- 1. 自动类型转换
- 1.1 定义
- 1.2 自动类型转换在计算机中的执行原理
- 1.3 自动类型转换的其他形式
- 代码实现
- 总结
- 2. 表达式的自动类型转换
- 2.1 定义
- 代码实现
- 总结
- 3. 强制类型转换
- 3.1 引入
- 3.2 强制类型转换
- 3.3 强制类型转换在计算机中的执行原理
- 代码实现
- 总结
- 03 运算符
- 1. 基本的算术运算符、+符号做连接符
- 1.1 基本的算术运算符
- 1.2 "+" 符号可以做连接符
- 代码实现
- 总结
- 2. 自增自减运算符
- 1. 定义
- 2. 自增自减的使用注意事项
- 代码演示
- 总结
- 3. 自增、自减拓展案例
- 3. 赋值运算符
- 3.1 基本赋值运算符
- 3.2 扩展赋值运算符
- 代码实现
- 总结
- 4. 关系运算符
- 代码实现
- 5. 逻辑运算符
- 代码实现
- 总结
- 6. 三元运算符、运算符的优先级
- 6.1 三元运算符介绍
- 6.2 运算优先级
- 代码实现
- 04 API 介绍、Scanner:获取用户键盘输入的数据
- 代码实现
- 总结
- 总结
01 变量详解
1. 变量里的数据在计算机中的存储原理
1.1 二进制
- 只有0、1,按照逢2进1的方式表示数据:
1.2 十进制转二进制的算法
- 除二取余法
1.3 计算机中表示数据的最小单元
- 计算机中表示数据的最小单位:一个字节(byte,简称B,是使用8个二进制组成的)
- 字节中的那个二进制位就成为 位(bit,简称b),1B = 8b
总结
- 数据在计算机底层都是怎么存储的?
- 都是采用二进制:使用0、1,按照逢2进1的规则表示数据来存储
- 如何快速的算出一个数据的二进制形式?
- 除二取余法
- 计算机底层表示数据的最小单位是什么?
- 字节,一个字节等于8个二进制位:1B = 8b
1.4 字符在计算机中是如何存储的呢?
- ASCII 编码表:即美国信息交换标准编码,规定了现代英语、数字字符、和其他西欧字符对应的数字编号
package b_java语法.a_ASCII;public class a_ASCIIDemo1 {public static void main(String[] args) {// 目标:掌握ASCII编码表的编码特点System.out.println('a' + 10); // 97 + 10 = 107System.out.println('A' + 10); // 65 + 10 = 75System.out.println('0' + 10); // 48 + 10 = 58}
}
1.5 图片数据 - 彩色图
- 图片就是无数个像素点组成的
- 每个像素点的数据:用0~255 * 255 * 255表示其颜色
- 本质上也是存二进制
1.6 声音数据
- 存储波形图 -> 将波形图映射到一个坐标上
总结
- 字符数据在计算机中是怎么存储的?
- 字符存的是 ascii 码表中对应的数字的二进制形式
- 字符 ’A‘ 对应的数字是65
- 字符 ’a‘ 对应的数字是97
- 字符 ‘0’ 对应的数字是48
- 图片和音视频等文件的数据是怎么存储的?
- 也是采用二进制进行存储的
1.7 十进制转二进制的算法
- 十进制转二进制:除二取余法
- 二进制转十进制
1.8 八进制、十六进制介绍
-
为了便于观察和表示二进制,推出了八进制和十六进制
-
都是先转换为二进制再转换为十进制
- 每3位二进制作为一个单元,最小数是0,最大数是7,共八个数字,这就是八进制
- 每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用:0~9 A B C D E F 表示就是十六进制
注意:Java 程序中支持书写二进制、八进制、十六进制的数据,分别需要以 0B或者0b、0、0X或者0x开头
package b_java语法.a_ASCII;public class a_ASCIIDemo1 {public static void main(String[] args) {// 二进制 八进制 十六进制在程序中的写法int a1 = 0B01100001; // 0B开头的数据是二进制System.out.println(a1);int a2 = 0141; // 0开头的数据是八进制System.out.println(a2);int a3 = 0XFA; // 0X开头的数据是十六进制System.out.println(a3);}
}
1.9 计算机的数据单位
- 计算机表示数据的最小组成单位:字节,1B=8b
- 在 B 的基础上,计算机发展出了 KB、MB、GB、TB、… 这些数据单位
转换表 |
---|
1B = 8b |
1KB = 1024B |
1MB = 1024KB |
1GB = 1024MB |
1TB = 1024GB |
总结
- 二进制如何计算成十进制?
- 二进制如何计算成八进制?
- 每3位二进制作为一个单元,最小数是0,最大数是7,0-7有8个数字
- 二进制如何计算成十六进制?
- 每4位二进制作为一个单位,最小数是0,最大数是15
- 0-15有16个数字,依次用:0~9 A B C D E F 代表
- 数据大小的单位换算是怎么样的?
2. 数据类型
数据类型 变量名称 = 初始值;
规定变量只能存储什么类型的数据
2.1 数据类型的分类
- 基本数据类型:4大类8种
数据类型 | 内存占用(字节数) | 数据范围 | |
---|---|---|---|
整形 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2147483648~2147483648(10位数,大概21亿多) | |
long | 8 | -9223372036854775808~9223372036854775808(19位数) | |
浮点型(小数) | float | 4 | -1.401298 E -45 到 3.4028235 E +38 |
double(默认) | 8 | 4.9000000 E -324 到 1.797693 E +308 | |
字符型 | char | 2 | 0-65535 |
布尔型 | boolean | 1 | true,false |
代码演示
package b_java语法.a_ASCII;public class b_VariableDemo2 {public static void main(String[] args) {// 目标:掌握常见的基本数据类型的使用// 1. byte short int longbyte a = 127; // -128 - 17// byte a2 = 128; // 越界了short s = 13244;// short s1 = 91412; //越界了int i = 314135;// 注意:随便写一个整形字面量默认是int类型,145436354164354虽然没有超过long的范围,但是超过了本身int类型的范围// 如果希望随便写一个整形字面量默认是long类型的,需要在后面加上L / llong lg = 145436354164354L;//2. float double// 注意:随便写小数字面量,默认是double,如果希望小数float,后面加F / ffloat f = 3.14F; // float在开发中少见double d = 56.45;// 3. char 字符型char ch = 'a';char ch2 = '中';// 4. booleanboolean flag = true;boolean flag2 = false;// 拓展一种引用数据类型,后面要用// String 称之为字符串类型,定义的变量可以用于记住一个字符串数据String name = "张三";System.out.println(name);}
}
总结
- 数据类型分为几种?
- 基本数据类型:4大类8种
- byte short int(默认) long 整形
- float double(默认) 浮点型
- char 字符型
- boolean 布尔型
- 引用数据类型:String
- 随便写的整数、小数字面量,他们默认是什么类型?
- 23,默认是 int 类型,加上 L/l 就是 long 类型的数据了
- 23.8,默认是 double 类型,加上 F/f 就是 float 类型了
02 类型转换
- 在我们的开发种存在某种类型的变量赋值给另一种类型的变量
- 存在不同类型的数据一起运算
1. 自动类型转换
1.1 定义
- 类型范围小的变量,可以直接赋值给类型范围大的变量
- 比如 byte 类型的变量可以直接赋值给 int 类型的变量
1.2 自动类型转换在计算机中的执行原理
1.3 自动类型转换的其他形式
代码实现
package b_java语法;public class c_TypeConversionDemo1 {public static void main(String[] args) {// 目标:理解自动类型转换机制byte a = 12;int b = a; // 发生了自动类型转换System.out.println(a);System.out.println(b);int c = 100;double d = c; // 发生了自动类型转换System.out.println(c);char ch = 'a'; // 占两个字节int i = ch; // 占四个字节 发生了自动类型转换System.out.println(i);}
}
总结
- 为什么要进行类型转换?
- 存在不同类型的变量赋值给其他类型的变量
- 什么是自动类型转换?
- 类型范围小的变量,可以直接赋值给类型范围大的变量
2. 表达式的自动类型转换
- 在开发中会有不同类型的变量或者数据一起运算
- 最终运算出的数据的类型是什么?
2.1 定义
- 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
注意事项:
- 表达式的最终结果类型由表达式中的最高类型决定
- 在表达式中,byte、short、char 是直接转换成 int 类型参与运算的
- 防止运算后数据超出原本类型的范围
代码实现
package b_java语法;public class d_TypeConversionDemo2 {public static void main(String[] args) {// 目标:掌握表达式的自动类型转换机制byte a = 10;int b = 20;long c = 30;long rs = a + b + c;System.out.println(rs);double rs2 = a + b +1.0;System.out.println(rs2);byte i = 10;short j = 30;int rs3 = i + j;System.out.println(rs3);// 面试笔试题byte b1 = 110;byte b2 = 80;int b3 = b1 + b2;System.out.println(b3);}
}
总结
- 表达式的自动类型转换是什么样的?
- 小范围的类型会自动转换成大范围的类型运算
- 表达式的最终结果类型是由谁决定的?
- 最终类型由表达式中的最高类型决定
- 表达式有哪些类型转换是需要注意的?
- byte short char 是直接转换成 int 类型参与运算的
3. 强制类型转换
大范围类型的变量 -> 小范围类型的变量
3.1 引入
类型范围大的数据或者变量,直接赋值给类型范围小的变量,会报错
3.2 强制类型转换
- 强行将类型范围大的变量、数据赋值给类型范围小的变量
数据类型 变量2 = (数据类型) 变量1、数据
3.3 强制类型转换在计算机中的执行原理
注意事项:
- 强制类型转换可能造成数据(丢失)溢出
- 浮点型强制转成整形,直接丢掉小数部分,保留整数部分返回
代码实现
package b_java语法;public class e_TypeConversionDemo3 {public static void main(String[] args) {// 目标:掌握强制类型转换int a = 20;byte b = (byte) a; // 快捷键:ALT + ENTER 强制类型转换System.out.println(a);System.out.println(b);int i = 1500;byte j = (byte) i;System.out.println(j);double d = 99.5;int m = (int) d; // 强制类型转换System.out.println(m); // 丢掉小数部分,保留整数部分}
}
总结
- 什么是强制类型转换?
- 默认情况下,大范围类型的变量直接赋值给小范围类型的变量会报错
- 可以强行将范围大的变量、数据赋值给类型范围小的变量
数据类型 变量2 = (数据类型) 变量1、数据
- 强制类型转换有哪些需要注意的?
- 可能出现数据丢失
- 小数强制转换成整数是直接截断小数保留整数
03 运算符
对变量、字面量进行运算的符号
1. 基本的算术运算符、+符号做连接符
1.1 基本的算术运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 参考小学一年级 |
- | 减 | 参考小学一年级 |
***** | 乘 | 参考小学二年级,与 “✖” 相同 |
/ | 除 | 与 “➗” 相同,注意:在 java 中两个整数相除的结果还是整数 |
% | 取余 | 获取的是两个数据做除法的余数 |
1.2 “+” 符号可以做连接符
- “+” 符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串
"abc" + 5 ---> "abc5"
- 遇到 “+” 符号,能算则算,不能算就在一起
代码实现
package b_java语法;public class f_OperaterDemo1 {public static void main(String[] args) {// 目标:掌握基本的算术运算符的使用int a = 10;int b = 2;System.out.println(a + b);System.out.println(a - b);System.out.println(a * b); // 20System.out.println(a / b); // 5System.out.println(5 / 2); // 2.5 ==> 2System.out.println(5.0 / 2); // 2.5int i = 5;int j =2;System.out.println(1.0 * 1 / j); // 2.5System.out.println(a % b); // 0System.out.println(3 % 2); // 1System.out.println("----------------------------------------");// 目标2:掌握使用+符号做连接符的情况int a2 = 5;System.out.println("abc" + a2); // "abc5"System.out.println(a2 + 5); // 10System.out.println("wlgsg" + a2 + 'a'); // wlgsg5aSystem.out.println(a2 + 'a' + "wlgsg"); // 5 + 97 + "wlgsg" = 102wlgsg}
}
总结
- 算术运算符有哪些?
- +、-、、/、%*
- / 需要注意什么,为什么?
- 如果两个整数做除法,其结果一定是整数,因为最高类型是整数
- +除了做基本算术运算符,还有哪些功能?
- 与字符串做+运算时会被当做链接符,其结果还是字符串
- 识别技巧:能算则算,不能算就在一起
2. 自增自减运算符
1. 定义
符号 | 作用 |
---|---|
自增:++ | 放在某个变量前面或者后面,对变量自身的值加1 |
自减:– | 放在某个变量前面或者后面,对变量自身的值减1 |
注意:++、-- 只能操作变量,不能操作字面量
2. 自增自减的使用注意事项
- ++、-- 如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后会存在明显区别
- 放在变量的前面,先对变量进行+1、-1,再对变量的值进行运算
int a = 10; int res = ++a;
- 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
int b = 10; int res = b++;
代码演示
package b_java语法;public class g_OperaterDemo2 {public static void main(String[] args) {// 目标:掌握自增自减运算符的使用int a = 10;a++; // a = a + 1System.out.println(a); // 11a--; // a = a - 1System.out.println(a); // 10System.out.println("------------------------------");int i = 10;int res = ++i; // 先加后用System.out.println(res); // 11System.out.println(i); // 11int j = 10;int res2 = j++;System.out.println(res2); // 10System.out.println(j); // 11}
}
总结
- 自增、自减运算符是什么,有什么作用,需要注意什么?
- ++、–;对当前变量值+1、-1
- 只能操作变量,不能操作字面量
- 自增、自减运算符放在变量前后有区别吗?
- 如果单独使用放前放后是没有区别的
- 非单独使用:放在变量前,先进行变量自增/自减,再使用变量
3. 自增、自减拓展案例
package b_java语法;public class h_OperatorDemo3 {public static void main(String[] args) {int m = 5;int n = 3;// m 5 6 5 4// n 3 4// 6 - 5 + 5 - 4 + 4int result = ++m - --m + m-- - ++n + n-- + 3;System.out.println(result); // 9System.out.println(m); // 4System.out.println(n); // 3}
}
3. 赋值运算符
3.1 基本赋值运算符
- 就是 “=”,从右往左看
int a = 10; // 先看"="右边,把数据10赋值给左边的变量a存储
3.2 扩展赋值运算符
符号 | 用法 | 作用 | 底层代码形式 |
---|---|---|---|
+= | a+=b | 加后赋值 | a = (a的类型)(a + b) |
-= | a-=b | 减后赋值 | a = (a的类型)(a - b) |
*= | a*=b | 乘后赋值 | a = (a的类型)(a * b) |
/= | a/=b | 除后赋值 | a = (a的类型)(a / b) |
%= | a%=b | 取余侯赋值 | a = (a的类型)(a % b) |
代码实现
package b_java语法;public class i_OperatorDemo4 {public static void main(String[] args) {// 目标:掌握扩展赋值运算符的使用// +=// 需求:收红包double a = 9.5;double b = 520;a += b; // a = (double)(a + b);System.out.println(a); // 529.5// -= 需求:发红包double i = 600;double j = 520;i -= j; // i = (double)(i - j)System.out.println(i); // 80.0int m = 10;int n = 5;m *= n; // 等价形式:m = (int)(m * n)System.out.println(m); // 50m /= n; // 等价形式:m = (int)(m / n)System.out.println(m); // 10m %= n; // 等价形式:m = (int)(m % n)System.out.println(m); // 0System.out.println("-------------------------------------------");byte x = 10;byte y = 30;// x = x + y; // 编译报错,x、y会自动转为int,不能相加后传入一个byte中x += y; // 等价形式x = (byte) (x + y);System.out.println(x); // 40}
}
总结
- 赋值运算符有哪些?
- 基本的赋值运算符:=(从右往左看)
- 扩展的赋值运算符:+=、-=、*=、/=、%=
- 扩展赋值运算符的作用是什么?有什么特点
- +=可以实现数据的累加,把别人的数据加给自己
- 扩展的赋值运算符自带强制类型转换
4. 关系运算符
符号 | 例子 | 作用 | 结果 |
---|---|---|---|
> | a > b | 判断 a 是否大于 b | 成立返回 true、不成立返回 false |
>= | a >= b | 判断 a 是否大于或者等于 b | 成立返回 true、不成立返回 false |
< | a < b | 判断 a 是否小于 b | 成立返回 true、不成立返回 false |
<= | a <= b | 判断 a 是否小于或者等于 b | 成立返回 true、不成立返回 false |
== | a == b | 判断 a 是否等于 b | 成立返回 true、不成立返回 false |
!= | a != b | 判断 a 是否不等于 b | 成立返回 true、不成立返回 false |
- 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true 或者 false
注意“在 java 中判断是否相等一定是 " == " ,千万不要把 " == " 误写成 “=”
代码实现
package b_java语法;public class j_OperatorDemo5 {public static void main(String[] args) {// 目标:掌握关系运算符的基本使用int a = 10;int b = 5;boolean res = a > b;System.out.println(res); // trueSystem.out.println(a >= b); // true 要么a大于b,或者a等于bSystem.out.println(2 >= 2); // trueSystem.out.println(a < b); // falseSystem.out.println(a <= b); // falseSystem.out.println(2 <= 2); // trueSystem.out.println(a == b); // falseSystem.out.println(5 == 5); // true// System.out.println(a = b); // 5 注意了:判断是否相等一定是用 ==,= 是用来赋值的System.out.println(a != b); // trueSystem.out.println(10 != 10); // false}
}
5. 逻辑运算符
- 把多个条件放在一起运算,最终返回布尔类型的值:true、false
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2 > 1 & 3 > 2 | 多个条件必须都是 true,结果才是 true;有一个是 false,结果就是 false |
| | 逻辑或 | 2 > 1 | 3 < 5 | 多个条件中只要有一个是 true,结果就是 true |
! | 逻辑非 | !(2 > 1) | 就是取反:你真我假,你假我真。!true == false、!false == true |
^ | 逻辑异或 | 2 > 1 ^ 3 > 1 | 前后条件的结果相同,就直接返回 false,前后条件的结果不同,才返回 true |
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
&& | 短路与 | 2 > 10 && 3 > 2 | 判断结果与 “&” 一样,过程不同:左边为 false,右边则不执行 |
|| | 短路或 | 2 > 1 || 3 < 5 | 判断结果与 “|” 一样,过程不同:左边为 true,右边则不执行 |
注意:在 java 中,“&”、“|”:无论左边是 false 还是 true,右边都要执行
由于 &&、|| 运算效率更高,在开发中用的更多
代码实现
package b_java语法;public class k_OperatorDemo6 {public static void main(String[] args) {// 目标:掌握逻辑运算符的使用// 需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8double size = 6.8;int storage = 16;// 1. & 前后的条件的结果必须都是true,结果才是trueboolean res = size >= 6.95 & storage >= 8;System.out.println(res); // false// 需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8// 2. | 只要多个条件中有一个是true,结果就是trueboolean res2 = size >= 6.95 | storage >= 8;System.out.println(res2); // true// 3. !取反的意思System.out.println(!true); // falseSystem.out.println(!false); // trueSystem.out.println(!(2 > 1)); // false// 4. ^ 前后条件的结果相同时返回false,不同时返回trueSystem.out.println(true ^ true); // falseSystem.out.println(false ^ false); // falseSystem.out.println(true ^ false); // trueSystem.out.println(false ^ true); // true// 5. && 左边为false,右边不执行int i = 10;int j = 20;System.out.println(i > 100 && ++j > 99); // falseSystem.out.println(j); // 20// 6. || 左边为true,右边就不执行int m = 10;int n = 30;System.out.println(m > 3 || ++n > 40); // trueSystem.out.println(n); // 30}}
总结
- 逻辑运算符有哪些,有什么特点?
- &:有一个为 false、结果是 false
- &&:一个为 false、结果就是 false,但前一个为 false,后一个条件不执行了
- |:有一个为 true、结果是 true
- ||:一个为 true、结果是 true,但前一个为 true,后一个条件不执行了
- !:!false=true、!true=false
- ^:相同是 false、不同是 true
注意:在实际开发中,常用的逻辑运算符还是:&&、||、!
6. 三元运算符、运算符的优先级
6.1 三元运算符介绍
- 格式:
条件表达式 ? 值1 : 值2;
- 执行流程:首先计算关系表达式的值,如果值为 true,返回值1,如果为 false,返回值2
6.2 运算优先级
- 在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于 ”+、-“
代码实现
package b_java语法;public class l_OPeratorDemo7 {public static void main(String[] args) {// 目标:掌握三元运算符的基本使用double score = 98.5;String res = score >= 60 ? "成绩及格" : "成绩不及格";System.out.println(res); // 成绩及格// 需求2:找出2个整数中的较大值,并输出int a = 99;int b = 167;int max = a > b ? a : b;System.out.println(max); // 167// 需求3:找3个整数中的较大值int i = 10;int j = 45;int k = 34;// 找出2个整数中的较大值int temp = i > j ? i : j;// 找出temp与k中的较大值int max2 = temp > k ? temp : k;System.out.println(max2); // 45System.out.println(10 > 3 || 10 > 3 && 10 < 3); // trueSystem.out.println((10 > 3 || 10 > 3) && 10 < 3); // false}
}
04 API 介绍、Scanner:获取用户键盘输入的数据
API(Application Programming Interface:应用程序编程接口)
- Java 写好的程序,咱们程序员可以直接拿来调用
- Java 为自己写好的程序提供了相应的 程序使用说明书(API 文档)
- 网址:https://www.oracle.com/cn/java/technologies/downloads/
需求:
- 请在程序中,提示用户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据,怎么解决?
使用 Scanner 接收用户键盘输入的数据,需要三个步骤:
- 导包:告诉程序去 JDK 的哪个包中找扫描器技术
- 抄代码:代表得到键盘扫描器对象(东西)
- 抄代码:等待接收用户输入的数据
注意:
- System、String 在 JDK 中的 Java.lang 包下
- lang 包不需要我们导包,是默认的包
代码实现
package b_java语法;import java.util.Scanner;public class m_ScannerDemo1 {public static void main(String[] args) {// 1. 导包:一般不需要我们自己做,idea工具会自动帮我们导包的// 2. 抄写代码:得到一个键盘扫描器对象(东西)Scanner sc = new Scanner(System.in);// 3. 开始调用sc的功能,来接收用户键盘输入的数据System.out.println("请您输入您的年龄:");int age = sc.nextInt(); // 执行到这儿,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据System.out.println("您的年龄是:" + age);System.out.println("请输入您的名字:");String name = sc.next(); // 执行到这儿,会开始等待用户输入一个字符串,直到用户按了回车键,才会拿到数据System.out.println(name + "欢迎您进入系统~~~");}
}
总结
- API 是什么?API 文档是什么?
- Application Programming Interface,应用程序编程接口:Java 写好的程序,咱们可以直接调用
- Java 提供的程序使用说明书
- Java 程序中如何实现接收用户键盘输入的数据?
- 使用 Java 提供的 Scanner 来完成,步骤如下
-
- 导包:import java.util.Scanner
-
- 抄代码得到扫描器对象:Scanner sc = new Scanner(System.in);
-
- 抄代码等待接收用户输入的数据:
- int age = sc.nextInt();
- String name = sc.next();