Przeglądaj źródła

feat: 新增 Java 授课源码

- day02:数据类型与运算符(含 Scanner 键盘输入)
- day03:流程控制与循环结构(if/switch/for/while/do-while/嵌套)
- day04:进制与进制转换(位运算)
- practice:课堂练习题
WanJL 4 dni temu
rodzic
commit
148ba64dc2
23 zmienionych plików z 925 dodań i 0 usunięć
  1. 35 0
      授课代码/java-prep-bootcamp/src/Main.java
  2. 47 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo01.java
  3. 33 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo02.java
  4. 52 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo03.java
  5. 61 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo04.java
  6. 37 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo05.java
  7. 87 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo06.java
  8. 62 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo01.java
  9. 67 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo02.java
  10. 22 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo03.java
  11. 25 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo04.java
  12. 21 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo05.java
  13. 20 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo06.java
  14. 20 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo07.java
  15. 29 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo08.java
  16. 35 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo09.java
  17. 11 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Main.java
  18. 87 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo01.java
  19. 40 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo02.java
  20. 71 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo03.java
  21. 13 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_1.java
  22. 20 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_3.java
  23. 30 0
      授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_4.java

+ 35 - 0
授课代码/java-prep-bootcamp/src/Main.java

@@ -0,0 +1,35 @@
+public class Main {
+    public static void main(String[] args) {
+        //1、定义int类型的2个变量 a=15、b=10。分别在控制台输出。
+        int a=15,b=10;
+        // sout+回车键
+        System.out.println(a);
+        System.out.println(b);
+
+        //2、交换a和b的变量值,允许使用第三个变量参与交换。让a=10,b=15,再输出。
+        int t=0;
+        t=a;    //把变量a的值赋值给t
+        a=b;    //把变量b的值赋值给a
+        b=t;    //把变量t的值复制给b
+        System.out.println(a);
+        System.out.println(b);
+
+        //3、交换a和b的变量值,不允许使用第三个变量参与交换。
+        // 把a+b(15+10)的结果 赋值给a(25)  b是10
+        a=a+b;
+        //把 a-b  25-10 的结果15 赋值给b(15)
+        b=a-b;  // 25-10=15  b就是15
+        //把 a-b  25-15 的结果10 赋值给a(10)
+        a=a-b;  // 25-15=10 a就是10
+
+        System.out.println(a);
+        System.out.println(b);
+
+
+
+
+
+
+
+    }
+}

+ 47 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo01.java

@@ -0,0 +1,47 @@
+package com.lovecoding.day02;
+
+
+public class Demo01 {
+    //主函数--主方法main
+    // psvm+回车键
+    public static void main(String[] args) {
+     /*
+        创建变量的格式:
+        数据类型 变量名=变量值;
+        int age=25;
+
+        1、分别创建8种基本数据类型的变量,并输出到控制台。
+        2、为以下名词,选择合适的类型:
+            成绩、年龄、性别、学生编号、身高、体重
+        3、编写一个个人简历,为姓名、年龄、身高、体重、性别等等信息分别定义变量
+        然后再输出
+     */
+        //整数类型  byte、short、int、long
+        byte a = 15;
+        //sout+回车键
+        System.out.println(a);
+        short b=16;
+        System.out.println(b);
+
+        //浮点类型  float、double
+        float c=3.14F;       //float 类型的变量值后面必须要加F
+
+        //字符类型 char
+        char d='a'; //char类型是字符类型,只能存1个字符,数字、字母、符号都只能存1个。必须使用单引号
+        System.out.println(d);
+
+        //布尔类型      boolean
+        boolean e=true; //布尔类型的变量只有两个:  true 表示 真   false 标识假
+        System.out.println(e);
+
+        char gender='男';
+        System.out.println("性别:"+gender);
+        int age=25;
+        System.out.println("年龄:"+age);
+
+
+
+
+    }
+
+}

+ 33 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo02.java

@@ -0,0 +1,33 @@
+package com.lovecoding.day02;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo02
+ * @description
+ * @create 2026/7/8
+ */
+public class Demo02 {
+    public static void main(String[] args) {
+        //整数类型  byte、short、int、long   long类型的变量值的最后要加 L
+        //浮点类型  float、double
+        //字符类型  char
+        //布尔类型  boolean
+        //字符串类型  String   ,字符串的值 需要使用双引号括起来。
+        String name="张三";
+        String email="12346@163.com";
+        long phone=13636363366L;
+        //年龄  性别  身高
+        //体重  姓 名  学号
+        //成绩  是否毕业  体温
+        //手机号  邮箱  地址
+        //工龄  月薪  税率
+        //折扣  数量  单价
+        //总分  排名  是否激活
+        //余额  利率  有效天数
+
+        //  int 整数,double 小数,char 字符 ,boolean 布尔
+        // String 字符串
+    }
+}

+ 52 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo03.java

@@ -0,0 +1,52 @@
+package com.lovecoding.day02;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo03
+ * @description
+ * @create 2026/7/8
+ */
+public class Demo03 {
+    public static void main(String[] args) {
+        /*
+            包名
+            类名
+            变量名
+            方法名
+            标识符命名 规则:
+            1、标识符只能使用 字母(a-z、A-Z)、数字(0-9)、符号($美元符号、_下划线)
+            2、不能使用数字开头:  1abc 不可以的  abc1可以
+            3、不能使用Java的关键字或保留字,但是可以包含关键字或保留字
+
+            关键字:Java规定的一些固定单词,为这些单词赋予了特殊的含义,比如:
+            int、byte short....
+            IDEA中  单词是全部小写,并且带有特殊颜色 蓝色的,都是关键字
+
+            java的语法规则,严格区分大小写
+            强烈建议:命名要有含义/意义,不要使用 a、b、x这种没有含义的命名方式
+
+            命名的规范:
+                驼峰式命名
+                    |-大驼峰:多个单词组成的标识符, 所有单词的首字母都大写
+                        String、StringBuffer、StringBuilder
+                        一般我们创建一个Java类的时候,使用大驼峰
+                    |-小驼峰:多个单词组成的标识符, 第一个单词首字母小写,其余单词首字母大写
+                        myClass、studentName、studentAge
+                        一般我们写Java变量的时候,使用小驼峰
+                蛇形命名
+                    |- 多个单词命名的时候,所有单词字母都小写,但是单词之间使用下划线分隔
+                    student_name    student_age
+         */
+
+
+        //引用数据类型,中最常用的是,就是字符串
+        //String
+        //引用数据类型有个特点:首字母大写。
+
+
+
+    }
+
+}

+ 61 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo04.java

@@ -0,0 +1,61 @@
+package com.lovecoding.day02;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo04
+ * @description 运算符
+ * @create 2026/7/8
+ */
+public class Demo04 {
+    public static void main(String[] args) {
+        //算术运算符
+        /*
+            +   加号
+            -   减号
+            *   乘号
+            /   除号
+            %   取余  被除数 ➗   除数 = 商 .... 余数
+                10  ➗ 3 =3 .... 1
+                10  ➗ 2 =5 .... 0
+                10 % 3 =1
+                10 % 2 =0
+            ++  自增   为原本的数 增加1
+                    1++            1+1
+                      10++      10+1
+                     ++ 在前  ++i     就先运算 先自增,再做其他操作比如输出,比如赋值
+                     ++ 在后  i++     就先做其他操作 比如输出,比如赋值,再自增运算
+
+                    int i=1;
+                    i       --- 1
+                    i++     --- 1
+                    当遇到下一个i的时候,就把这个+1算进去
+                    i       2
+
+
+
+            --  自减      自减1
+         */
+        int a=10,b=5,c=3;
+//        System.out.println("10+5="+(a+b));
+//        System.out.println("10-5="+(a-b));
+//        System.out.println("10*5="+(a*b));
+//        System.out.println("10/5="+(a/b));
+//        System.out.println("10/3="+(a/c));  // 符号两边都是整数,那么运算结果也是整数,直接砍掉小数
+//        System.out.println("10%5="+(a%b));
+//        System.out.println("10%3="+(a%c));
+
+
+        int x=1,y=1;
+        System.out.println(x++);
+        System.out.println(x);
+        System.out.println(++y);
+
+
+        int z=1;
+        System.out.println(z+++z+z+++z);
+
+    }
+
+}

+ 37 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo05.java

@@ -0,0 +1,37 @@
+package com.lovecoding.day02;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo05
+ * @description 比较运算符
+ * @create 2026/7/8
+ */
+public class Demo05 {
+    public static void main(String[] args) {
+        /*
+            比较运算符
+            >   大于
+            <   小于
+            ==  等于
+            >=  大于等于
+            <=  小于等于
+            !=  不等于
+            比较运算符的运算结果一定是布尔类型的值 boolean
+            值 true  或者 false
+         */
+        int a=10,b=5;
+        System.out.println(a>b);
+        System.out.println(a<b);
+        System.out.println(a==b);
+        System.out.println(a>=b);
+        System.out.println(a<=b);
+        System.out.println(a!=b);
+
+        int x=7,y=6;
+
+
+
+    }
+}

+ 87 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day02/Demo06.java

@@ -0,0 +1,87 @@
+package com.lovecoding.day02;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo06
+ * @description 逻辑运算符
+ * @create 2026/7/8
+ */
+public class Demo06 {
+
+    public static void main(String[] args) {
+        /*
+            逻辑运算符
+            &   与       布尔表达式   &  布尔表达式
+                |- 符号左右的两边的布尔表达式的结果如果同时为true,则最终运算结果是true,否则就是false
+            |   或
+                |-符号左右的两边的布尔表达式的结果如果同时为false,则最后的运算结果是false,否则就是true
+            !   非 取反
+            &&  短路与
+            ||  短路或
+            ^   异或  符号左右两边的布尔表达式如果相同就返回false,不同就返回true
+         */
+        // & 运算符
+        boolean b1= 15>3 & 7==6;
+        System.out.println(b1);
+        System.out.println(true&true);  //true
+        System.out.println(true&false);  //false
+        System.out.println(false&true);  //false
+        System.out.println(false&false);  //false
+        System.out.println("--------------------------------------");
+        // | 或运算符
+        boolean b2= 15>3 | 7==6;
+        System.out.println(b2);
+        System.out.println(true|true);  //
+        System.out.println(true|false);  //
+        System.out.println(false|true);  //
+        System.out.println(false|false);  //
+
+        System.out.println("--------------------------------------");
+        // ! 取反
+        boolean b3=!(15>3);
+        System.out.println(b3);
+        System.out.println(!true);
+        System.out.println(!false);
+
+        // &&  短路与
+        // 作用跟 & 运算符相同,只不过 如果符号左边的表达式结果是false,右边就不运算了,直接返回false
+        // ||  短路或
+        // 作用跟 | 运算符相同,只不过 如果符号左边的表达式结果是true,右边就不运算了,直接返回true
+
+        System.out.println("--------------------------------------");
+        // ^ 异或
+
+        System.out.println(true^true);  //false
+        System.out.println(true^false);  //true
+        System.out.println(false^true);  //true
+        System.out.println(false^false);  //false
+
+
+        // 三目运算符
+        // 符号左右两侧都有操作数,的运算符 就是双目运算符
+        // ++  --   就属于单目运算符
+        /*
+            布尔表达式 ? 表达式1 : 表达式2
+            表达式1、表达式2 可以是任何值或表达式
+            如果布尔表达式 的结果是 true,就执行表达式1,否则就执行表达式2
+         */
+        System.out.println(15>3?3>6?17:15:"假");
+/*
+     1. 定义两个整数 a 和 b,使用算术运算符计算并输出 a + b、a - b、a * b、a / b、a % b。
+     2. 定义一个整数,使用三目运算符判断它是奇数还是偶数,输出"奇数"或"偶数"。
+     3. 定义三个整数,使用三目运算符找出并输出其中的最大值。
+     4. 定义一个年份,使用逻辑运算符判断是否为闰年(能被4整除且不能被100整除,或能被400整除),输出true或false。
+     5. 定义一个整数 score(0-100),使用嵌套三目运算符输出等级:score >= 90 为 "A",score >= 60 为 "B",否则为 "C"。
+     6. 定义一个整数,使用逻辑运算符判断它是否满足:大于10 且 小于100,输出true或false。
+     7. 定义一个字符,使用比较运算符判断它是否为大写英文字母('A'到'Z'之间),输出true或false。
+     8. 已知 int a = 5; int b = 5; 分别执行 int x = a++; 和 int y = ++b; 后,输出 x、a、y、b 的值,
+     并说明前置和后置自增的区别。
+     9. 定义一个三位正整数,使用算术运算符拆分出它的个位、十位、百位,按格式输出。
+    10. 定义三个边长 a、b、c,使用比较运算符和逻辑运算符判断能否构成三角形(任意两边之和大于第三边),输出true或false。
+
+ */
+
+    }
+}

+ 62 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo01.java

@@ -0,0 +1,62 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo01
+ * @description 流程控制-分支结构---if...else
+ * @create 2026/7/9
+ */
+public class Demo01 {
+    public static void main(String[] args) {
+        //单分支(只有 if)
+/*        if(15>3){
+            System.out.println("15大于3");
+        }
+        int age=5;
+        if (age>18){
+            System.out.println("成年了....");
+        }*/
+        //② 双分支(if...else)
+        int age=5;
+        if (age>18){
+            System.out.println("成年了....");
+        }else {
+            System.out.println("未成年");
+        }
+
+        /*
+        if (username=="zhangsan1213"&&password=="abc123456789"){
+            System.out.println("用户登录成功");
+        }else {
+            System.out.println("用户登录失败");
+        }*/
+
+        //③ 嵌套 if
+        String username="zhangsan123";
+        String password="abc1234567189";
+        //先判断用户名
+        if (username=="zhangsan123"){//判断结果为true
+            //再判断密码
+            if (password=="abc123456789"){
+                System.out.println("登录成功...");
+            }else {
+                System.out.println("密码错误,登录失败");
+            }
+        }else {//判断结果为false,就直接输出错误信息
+            System.out.println("用户名错误,登录失败");
+        }
+        //----------另一种方式的用户名密码判断----
+
+        if (username!="zhangsan123") {//判断结果为true
+            System.out.println("用户名错误,登录失败");
+        }else if(password=="abc123456789"){
+            System.out.println("登录成功...");
+        }else {
+            System.out.println("密码错误,登录失败");
+        }
+
+    }
+
+}

+ 67 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo02.java

@@ -0,0 +1,67 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo02
+ * @description 循环结构--for--while---do...while
+ * @create 2026/7/9
+ */
+public class Demo02 {
+    public static void main(String[] args) {
+        for (int i = 0; i < 10; i++) {
+            System.out.println(i);
+        }
+
+        /*
+            for(初始化循环变量;循环条件;循环变量更新){
+                循环体;
+            }
+            1、执行 初始化循环变量    int i = 0
+            2、循环条件 进行判断     i < 10  如果判断结果为true,就执行第3步,否则执行第4步
+            3、执行循环体 System.out.println(i);
+            4、跳出循环
+            5、执行 循环变量更新 自增 自减  i++,执行完后跳转回第2步
+         */
+
+        /*
+            初始化循环变量
+            while(循环条件){
+                循环体;
+                循环变量更新;
+            }
+         */
+        int j=0;    //初始化循环变量
+        while (j<10){   //循环条件
+            System.out.println(j);  //循环体;
+            j++;    //循环变量更新;
+        }
+
+        /*
+            do...while
+
+
+            初始化循环变量
+            do{
+                循环体;
+                循环变量更新;
+            }while(循环条件);
+            //do...while 无论条件是否为true,都会先执行一次循环体
+         */
+
+        /*
+            使用三种循环:分别输出1~100;
+            使用三种循环:分别统计1~100的和
+         */
+        int sum=0;
+        for (int i = 0; i < 101; i++) {
+            if (i%2==0){    //判断只有i是偶数的时候,才会累加到sum中
+                sum=sum+i;
+            }
+
+        }
+
+    }
+
+}

+ 22 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo03.java

@@ -0,0 +1,22 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo03
+ * @description 给定整数 12345,使用 while 循环统计它有多少位并输出。
+ * @create 2026/7/9
+ */
+public class Demo03 {
+    public static void main(String[] args) {
+        int number=12345;
+        int count=0;//统计除的个数,也就是位数,每次除以10,统计1位
+        while (number!=0){
+            number=number/10;
+            count++;    //累计1次
+        }
+        System.out.println(count);
+
+    }
+}

+ 25 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo04.java

@@ -0,0 +1,25 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo04
+ * @description 给定整数 12345,使用 while 循环求其各位数字之和并输出(1+2+3+4+5)。
+ * @create 2026/7/9
+ */
+public class Demo04 {
+    public static void main(String[] args) {
+        int number=12345;
+        int sum=0;//和
+        // 循环
+        while (number!=0){
+            sum+=number%10; //得到每一个 个位的数
+            number/=10;     //缩小10倍
+            //      /=  +=  -=  *=
+            //  a+=1        a=a+1
+            //  a/=1        a=a/1
+        }
+        System.out.println(sum);
+    }
+}

+ 21 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo05.java

@@ -0,0 +1,21 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo05
+ * @description 给定整数 12345,使用 while 循环将其反转并输出。
+ * @create 2026/7/9
+ */
+public class Demo05 {
+    public static void main(String[] args) {
+        int number=12345;
+        int rev=0;  //反转后的结果    50
+        while (number!=0){
+            rev=rev*10 +(number%10);  //得到最后一位
+            number/=10; //缩小10倍
+        }
+        System.out.println(rev);
+    }
+}

+ 20 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo06.java

@@ -0,0 +1,20 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo06
+ * @description 使用嵌套 for 循环打印一个 5 行的直角三角形星号图案,第一行 1 个星号,第二行 2 个,依此类推。
+ * @create 2026/7/9
+ */
+public class Demo06 {
+    public static void main(String[] args) {
+        for (int i = 1; i <=5; i++) {
+            for (int j = 0; j <i; j++) {
+                System.out.print("*");
+            }
+            System.out.println();
+        }
+    }
+}

+ 20 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo07.java

@@ -0,0 +1,20 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo07
+ * @description 使用嵌套 for 循环打印一个 5 行的倒直角三角形星号图案,第一行 5 个星号,第二行 4 个,依此类推。
+ * @create 2026/7/9
+ */
+public class Demo07 {
+    public static void main(String[] args) {
+        for (int i = 1; i <=5; i++) {
+            for (int j = 5; j >=i; j--) {
+                System.out.print("*");
+            }
+            System.out.println();
+        }
+    }
+}

+ 29 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo08.java

@@ -0,0 +1,29 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo08
+ * @description 使用嵌套 for 循环和 if 语句打印一个 5 行 5 列的空心矩形星号图案
+ * (第一行和最后一行全满,第一列和最后一列全满,其余为空格)。
+ * @create 2026/7/9
+ */
+public class Demo08 {
+    public static void main(String[] args) {
+        for (int i = 0; i < 5; i++) {
+            for (int j = 0; j < 5; j++) {
+                if (i==0||i==4){    //第一行和最后一行
+                    System.out.print("*");
+                }else {//其余行
+                    if (j==0||j==4){
+                        System.out.print("*");
+                    }else {
+                        System.out.print(" ");
+                    }
+                }
+            }
+            System.out.println();
+        }
+    }
+}

+ 35 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Demo09.java

@@ -0,0 +1,35 @@
+package com.lovecoding.day03;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo09
+ * @description 使用嵌套 for 循环打印一个 5 行的菱形星号图案(上下对称,第 3 行最多)。
+ * @create 2026/7/9
+ */
+public class Demo09 {
+    public static void main(String[] args) {
+        for (int i = 1; i <=5; i++) {
+            for (int j = 1; j <=5; j++) {
+                if (i==1||i==5){
+                    if (j==3){
+                        System.out.print("*");
+                    }else {
+                        System.out.print(" ");
+                    }
+                }else if (i==2||i==4){
+                    if (j==1||j==5){
+                        System.out.print(" ");
+                    }else {
+                        System.out.print("*");
+                    }
+                }else {
+                    System.out.print("*");
+                }
+            }
+            System.out.println();
+
+        }
+    }
+}

+ 11 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day03/Main.java

@@ -0,0 +1,11 @@
+package com.lovecoding.day03;
+
+public class Main {
+    public static void main(String[] args) {
+        int a=5,b=5;
+        ++a;    // 直接实现自增
+        System.out.println(a);
+        b++;
+        System.out.println(b);
+    }
+}

+ 87 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo01.java

@@ -0,0 +1,87 @@
+package com.lovecoding.day04;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo01
+ * @description 进制
+ * @create 2026/7/10
+ */
+public class Demo01 {
+    /*
+        电灯的开关说起
+        计算机内部是有电子元件组成,最基本的单位就是 晶体管,我们现在使用的晶体管只有两种状态:
+        通电: 高电压     1
+        断电: 低电压     0
+        如果要让晶体管标识10种状态 十进制,就需要10个不同的电压值 ---那么电路设计就会相当复杂。
+        两种状态 开/关 最稳定 最可靠
+        计算机使用二进制不是因为二进制高级,只是因为硬件只识别通电/断电
+        二极管
+
+        什么叫进制
+        就是计数的规则:
+        基数:有多少个不同的数字符号
+        位权:每个数位代表的实际数值
+
+        四种:
+        二进制:    基数 2    数字符号:0 1                                Java中的写法-加前缀: 0b 或 0B
+        八进制:    基数 8    数字符号:0 1 2 3 4 5 6 7                    Java中的写法-加前缀: 0
+        十进制:    基数 10    数字符号:0 1 2 3 4 5 6 7 8 9               十进制正常写就可以
+        十六进制:  基数 16    数字符号:0 1 2 3 4 5 6 7 8 9 A B C D E F    Java中的写法-加前缀:0x 或 0X
+
+        编码: 把人能看懂的信息形式(十进制数、文本、图片、音频、视频) 按照一定的规则 转换为另一种形式(比如二进制数据)的过程。
+
+        解码:编码的逆过程,把二进制数据 转换为 人能看懂的信息
+
+        二进制(Binary)----计算机的语言
+        二进制数据只有 0  和 1 两个数字,逢二进一
+        1101    这个二进制数的含义:
+        位       1         1       0       1
+        位权     2^3=8    2^2=4  2^1=2   2^0=1        // 二进制数的位权是从右往左,右侧为最低位,左侧为最高位
+        计算     1*8      1*4     0*2    1*1      //得到的结果相加,就得到的最终 的十进制数
+        1101(二进制)=   1*8 + 1*4 + 0*2 + 1*1 = 13(十进制)
+
+        1010    -->
+        1*8+0*4+1*2+0*1 =   10
+
+        八进制(Octal)---二进制的缩写
+        八进制使用 0~7 共8个数字。逢八进一。
+        八进制和二进制的对应关系:每 3 位二进制 对应 1 位八进制
+
+        二进制: 001 101 111
+        八进制:  1   5   7
+
+        十进制 ---人用的数字
+        0~9 逢十进一
+
+        十六进制    二进制的缩写---4位一组
+        十六进制 0~9 加 A~F  共16位数字,逢十六进一
+            A~F对应的十进制数
+            A   B   C   D   E   F
+            10  11  12  13  14  15
+        十六进制和二进制的对应关系:每 4 位二进制 对应 1 位十六进制
+
+        二进制:    1101 1110 1010 0101
+        十六进制:   D     E    A    5
+        十六进制最常用的方式: 颜色的色值、内存地址、MAC地址(计算机硬件地址)、文件权限等等都是使用十六进制标识。
+     */
+    public static void main(String[] args) {
+        int a=0b0101011;    //Java中二进制整数 加前缀 0b 或 0B
+        System.out.println(a);  //Java会自动的转换成十进制输出
+        int b=01234567;    //Java中八进制整数 加前缀 0 或 0
+        System.out.println(b);
+        int c=0x123AFEC9;  //Java中十六进制整数 加前缀 0x 或 0X
+        System.out.println(c);
+
+        /*
+         0  1   2   3   4   5   6   7   8   9   10
+
+
+         0  1   10  11  100
+
+
+         */
+    }
+
+}

+ 40 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo02.java

@@ -0,0 +1,40 @@
+package com.lovecoding.day04;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo02
+ * @description 进制之间的转换方法
+ * @create 2026/7/10
+ */
+public class Demo02 {
+    public static void main(String[] args) {
+        /*
+            任意进制  -> 十进制 : 按权展开法
+            方法: 每一位数字 * 位权 ,再求和。
+            二进制:
+            0b1001
+            1*2^3 + 0*2^2 + 0*2^1 +1*2^0
+            因为是2进制,所以是2的n次方
+
+            八进制
+            0257
+            2*8^2 + 5*8^1 + 7*8^0
+            因为是8进制,所以是8的n次方
+
+            十六进制
+            0x3F
+            3*16^1 + 15*16^0
+            因为是16进制,所以是16的n次方
+         */
+        /*
+            0x1024
+            01024
+            0b1111
+            转换成十进制
+
+         */
+    }
+
+}

+ 71 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/day04/Demo03.java

@@ -0,0 +1,71 @@
+package com.lovecoding.day04;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo04
+ * @description 十进制 --> 任意进制:除基取余法
+ * @create 2026/7/10
+ */
+public class Demo03 {
+    /*
+    除基取余法
+    方法:不断的除以目标进制,取余数,从下往上排列
+
+    十进制  --> 二进制  (除2取余)
+    25 转换为二进制数:
+    25 ÷ 2 = 12 余 1
+    12 ÷ 2 = 6 余 0
+    6 ÷ 2 = 3  余 0
+    3 ÷ 2 = 1  余 1
+    1 ÷ 2 = 0  余 1
+    从下往上读  : 11001
+    结果: 十进制数 25 转换为 二进制数:11001
+
+    十进制  --> 八进制  (除8取余)
+    175 转换成八进制:
+    175 ÷ 8 = 21 余 7
+    21 ÷ 8 = 2  余 5
+    2 ÷ 8 = 8   余 2
+    从下往上读  : 257
+    结果: 十进制数 175 转换为 八进制数:257
+
+
+    十进制  --> 十六进制  (除16取余)
+    255 转换为十六进制:
+    255 ÷ 16 = 15 余 15  -> F
+    15 ÷ 16 = 0 余 15  -> F
+    从下往上读  : FF
+    结果: 十进制数 255 转换为 十六进制数:FF
+
+     */
+
+    /*
+        练习:
+            十进制357 分别转换为:
+                    二进制:    101100101
+                    八进制:    545
+                    十六进制    165
+            十进制1234 分别转换为:
+                    二进制:    1001 1010 010
+                    八进制:    2322
+                    十六进制:   4D2
+
+     */
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 13 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_1.java

@@ -0,0 +1,13 @@
+package com.lovecoding.practice;
+/*
+    1、判断奇偶数:定义一个整数a,判断它是奇数还是偶数。(a%2==0)就是偶数 否则就是奇数
+    2、使用循环 计算 1+2+3+....+100 的和
+    3、打印输出 九九乘法表
+    4、百鸡问题:公鸡5元一只,母鸡3元一只,小鸡1元3只。100元钱买100只鸡,求所有的买法
+ */
+public class Practice_1 {
+    // psvm + 回车键
+    public static void main(String[] args) {
+
+    }
+}

+ 20 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_3.java

@@ -0,0 +1,20 @@
+package com.lovecoding.practice;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Practice_3
+ * @description 3、打印输出 九九乘法表
+ * @create 2026/7/7
+ */
+public class Practice_3 {
+    public static void main(String[] args) {
+        for (int i = 1; i <=9; i++) {
+            for (int j = 1; j <=i ; j++) {
+                System.out.print(j+"✖"+i+"="+(j*i)+"  ");
+            }
+            System.out.println();   //换一行
+        }
+    }
+}

+ 30 - 0
授课代码/java-prep-bootcamp/src/com/lovecoding/practice/Practice_4.java

@@ -0,0 +1,30 @@
+package com.lovecoding.practice;
+
+
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Practice_4
+ * @description 百鸡问题:公鸡5元一只,母鸡3元一只,小鸡1元3只。100元钱买100只鸡,求所有的买法
+ * @create 2026/7/7
+ */
+public class Practice_4 {
+    public static void main(String[] args) {
+        for (int gj = 0; gj <=20 ; gj++) {
+            for (int mj = 0; mj <=33; mj++) {
+                int xj=100-gj-mj;
+                // 小鸡的数量不能是负数
+                // 小鸡的个数必须是整数并且被3整除
+                // 公鸡的个数*公鸡的价钱 + 母鸡的个数*母鸡的价钱 + 小鸡的个数*小鸡的价钱 == 100 元
+                if (xj>=0 && xj % 3==0&& 5 * gj +3 * mj + xj / 3 ==100){
+                    System.out.println("公鸡:"+gj);
+                    System.out.println("母鸡:"+mj);
+                    System.out.println("小鸡:"+xj);
+                    System.out.println("---------------------------------");
+                }
+            }
+        }
+
+
+    }
+}