--- title: "02-基础语法工程" created: 2025-12-02 tags: - Java --- # 基础语法工程 > [!note] 本篇定位 > 本篇聚合 IDEA 工程 `basic-app` 的全部源码练习(2025-12 学),按包分节**全文收录**——当年的学习注释(`// 目标:…` `// 需求:…`)原样保留,是最真实的练习轨迹。工程怎么建、模块/包/类怎么管理见 [[00-管理项目|00-管理项目]]。 **包含 12 个 .java 练习**,目录结构: ```text basic-app/src/ ├── com/zwnsyw/operator/OperatorDemo1.java ├── com/zwnsyw/operator/OperatorDemo2.java ├── com/zwnsyw/operator/OperatorDemo3.java ├── com/zwnsyw/operator/OperatorDemo4.java ├── com/zwnsyw/operator/OperatorDemo5.java ├── com/zwnsyw/operator/OperatorDemo6.java ├── com/zwnsyw/scanner/ScannerDemo1.java ├── com/zwnsyw/type/TypeConversionDemo1.java ├── com/zwnsyw/type/TypeConversionDemo2.java ├── com/zwnsyw/type/TypeConversionDemo3.java ├── com/zwnsyw/variable/ASCIIDemo1.java └── com/zwnsyw/variable/TypeDemo1.java ``` ## 变量 变量定义与 ASCII 演示。 ### ASCIIDemo1.java ```java package com.zwnsyw.variable; public class ASCIIDemo1 { public static void main(String[] args) { // 目标:掌握ASCII编码表的编码特点。 System.out.println('a' + 10); // 97 + 10 = 107 System.out.println('A' + 10); // 65 + 10 = 75 System.out.println('0' + 10); // 48 + 10 = 58 // 二进制 八进制 十六进制在程序中的写法。 int a1 = 0B01100001; System.out.println(a1); int a2 = 0141; // 0开头的数据当成八进制看待! System.out.println(a2); int a3 = 0XFA; // 0X开头的数据是十六进制 System.out.println(a3); } } ``` ### TypeDemo1.java ```java package com.zwnsyw.variable; public class TypeDemo1 { public static void main(String[] args) { // 目标:掌握8种基本数据类型,用来定义变量。 // 1、整型 byte number = 98; System.out.println(number); short number2 = 9000; int number3 = 12323232; // 默认 // 注意:随便写一个整型字面量,默认是int类型的,73642422442424虽然没有超过long的范围,但是它超过了本身int的范围了。 // 如果希望随便写一个整型字面量是long类型的,需要在其后面加上L/l long number4 = 73642422442424L; // 2、浮点型 // 注意:随便写一个小数字面量,默认当成double类型对待的,如果希望这个小数是float类型的,需要在后面加上:F/f float score1 = 99.5F; double score2 = 99.8; // 默认定义方案。 // 3、字符型 char ch1 = 'a'; char ch2 = '中'; char ch3 = '国'; // 4、布尔型 boolean b1 = true; boolean b2 = false; // 引用数据类型:String. // String代表的是字符串类型,定义的变量可以用来记住字符串。 String name = "黑马"; System.out.println(name); } } ``` ## 类型转换 隐式/强制类型转换练习。 ### TypeConversionDemo1.java ```java package com.zwnsyw.type; public class TypeConversionDemo1 { public static void main(String[] args) { // 目标:理解自动类型转换机制。 byte a = 12; int b = a; // 发生了自动类型转换了 System.out.println(a); System.out.println(b); int c = 100; // 4 double d = c;// 8 发生了自动类型转换了 System.out.println(d); char ch = 'a'; // 'a' 97 => 00000000 01100001 int i = ch; // 发生了自动类型转换了 => 00000000 00000000 00000000 01100001 System.out.println(i); } } ``` ### TypeConversionDemo2.java ```java package com.zwnsyw.type; public class 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); } } ``` ### TypeConversionDemo3.java ```java package com.zwnsyw.type; public class 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); // 丢掉小数部分,保留整数部分 } } ``` ## 运算符 各类运算符逐个过一遍。 ### OperatorDemo1.java ```java package com.zwnsyw.operator; public class OperatorDemo1 { 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); // 20 System.out.println(a / b); // 5 System.out.println(5 / 2); // 2.5 ==> 2 System.out.println(5.0 / 2); // 2.5 int i = 5; int j = 2; System.out.println(1.0 * i / j); // 2.5 System.out.println(a % b); // 0 System.out.println(3 % 2); // 1 System.out.println("---------------------------------------------------"); // 目标2:掌握使用+符号做连接符的情况。 int a2 = 5; System.out.println("abc" + a2); // "abc5" System.out.println(a2 + 5); // 10 System.out.println("itheima" + a2 + 'a'); // "itheima5a" System.out.println(a2 + 'a' + "itheima"); // 102itheima } } ``` ### OperatorDemo2.java ```java package com.zwnsyw.operator; public class OperatorDemo2 { public static void main(String[] args) { // 目标:掌握自增自减运算符的使用。 int a = 10; // a++; // a = a + 1 ++a; System.out.println(a); // a--; // a = a - 1 --a; System.out.println(a); // System.out.println(2++); // 自增自减只能操作变量不能操作字面量的,会报错! System.out.println("-------------------------------------------------"); int i = 10; int rs = ++i; // 先加后用 System.out.println(rs); System.out.println(i); int j = 10; int rs2 = j++; // 先用后加 System.out.println(rs2); System.out.println(j); } } ``` ### OperatorDemo3.java ```java package com.zwnsyw.operator; public class OperatorDemo3 { public static void main(String[] args) { // 目标:掌握扩展赋值运算符的使用。 // += // 需求:收红包 double a = 9.5; double b = 520; a += b; // a = (double)(a + b); System.out.println(a); // -= 需求:发红包 double i = 600; double j = 520; i -= j; // i = (double)(i - j); System.out.println(i); int m = 10; int n = 5; // m *= n; // 等价形式: m = (int)(m * n) // m /= n; // 等价形式: m = (int)(m / n) m %= n; // 等价形式: m = (int)(m % n) System.out.println(m); System.out.println("-------------------------------------------------"); byte x = 10; byte y = 30; // x = x + y; // 编译报错 // x = (byte)(x + y); x += y; // 等价形式:x = (byte)(x + y); System.out.println(x); } } ``` ### OperatorDemo4.java ```java package com.zwnsyw.operator; public class OperatorDemo4 { public static void main(String[] args) { // 目标:掌握关系运算符的基本使用。 int a = 10; int b = 5; boolean rs = a > b; System.out.println(rs); System.out.println(a >= b); // 要么a大于b,或者a等于b System.out.println(2 >= 2); // true System.out.println(a < b); System.out.println(a <= b); // false System.out.println(2 <= 2); // true System.out.println(a == b); // false System.out.println(5 == 5); // true // System.out.println(a = b); // 注意了:判断是否相等一定是用 == ,=是用来赋值的。 System.out.println(a != b); // true System.out.println(10 != 10); // false System.out.println(false ^ true ^ false); } } ``` ### OperatorDemo5.java ```java package com.zwnsyw.operator; public class OperatorDemo5 { public static void main(String[] args) { // 目标:掌握逻辑运算符的使用。 // 需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8. double size = 6.8; int storage = 16; // 1、& 前后的条件的结果必须都是true ,结果才是true. boolean rs = size >= 6.95 & storage >= 8; System.out.println(rs); // 需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8. // 2、| 只要多个条件中有一个是true,结果就是true. boolean rs2 = size >= 6.95 | storage >= 8; System.out.println(rs2); // 3、!取反的意思 System.out.println(!true); // false System.out.println(!false); // true System.out.println(!(2 > 1)); // false // 4、^ 前后条件的结果相同时返回false,不同时返回true. System.out.println(true ^ true); // false System.out.println(false ^ false); // false System.out.println(true ^ false); // true System.out.println(false ^ true); // true // 5、&& 左边为false,右边不执行。 int i = 10; int j = 20; // System.out.println(i > 100 && ++j > 99); System.out.println(i > 100 & ++j > 99); System.out.println(j); // 6、|| 左边是true ,右边就不执行。 int m = 10; int n = 30; // System.out.println(m > 3 || ++n > 40); System.out.println(m > 3 | ++n > 40); System.out.println(n); } } ``` ### OperatorDemo6.java ```java package com.zwnsyw.operator; public class OperatorDemo6 { public static void main(String[] args) { // 目标:掌握三元运算符的基本使用。 double score = 58.5; String rs = score >= 60 ? "成绩及格" : "成绩不及格"; System.out.println(rs); // 需求2:找出2个整数中的较大值,并输出。 int a = 99; int b = 69; int max = a > b ? a : b; System.out.println(max); // 需求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); System.out.println(10 > 3 || 10 > 3 && 10 < 3); // true System.out.println((10 > 3 || 10 > 3) && 10 < 3); // false } } ``` ## Scanner 扫描输入 用 Scanner 接收键盘输入。 ### ScannerDemo1.java ```java package com.zwnsyw.scanner; import java.util.Scanner; public class 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 + "欢迎您进入系统~~"); } } ``` --- ⬅️ [[01-HelloWorld工程|HelloWorld工程]] 🏠 [[00-管理项目|00-管理项目]] ➡️ [[03-流程控制工程|流程控制工程]]