Fără Descriere

WanJL 099ba7b2df feat: 新增20260813课堂笔记及授课代码分析——反射Field属性/字段/变量(Demo01演示Class类获取Field对象的4个API getFields/getField/getDeclaredFields/getDeclaredField、Field类常用方法 get/set/setAccessible/getType/getName/getModifiers、Modifier.toString解析修饰符、演示①getDeclaredFields遍历输出全部7个字段的修饰符/类型/属性名、演示②getField+get/set读取修改public属性、演示③getDeclaredField+setAccessible(true)暴力反射读取修改private属性、演示④操作静态属性get/set对象参数传null、反射赋值与普通访问同一份数据、ORM框架用Field.set()把数据库数据映射到Java类的底层原理)+Student实体类(private/public/public static字段设计+4个构造方法),同步更新README授课笔记表与授课代码表 1 săptămână în urmă
授课代码 099ba7b2df feat: 新增20260813课堂笔记及授课代码分析——反射Field属性/字段/变量(Demo01演示Class类获取Field对象的4个API getFields/getField/getDeclaredFields/getDeclaredField、Field类常用方法 get/set/setAccessible/getType/getName/getModifiers、Modifier.toString解析修饰符、演示①getDeclaredFields遍历输出全部7个字段的修饰符/类型/属性名、演示②getField+get/set读取修改public属性、演示③getDeclaredField+setAccessible(true)暴力反射读取修改private属性、演示④操作静态属性get/set对象参数传null、反射赋值与普通访问同一份数据、ORM框架用Field.set()把数据库数据映射到Java类的底层原理)+Student实体类(private/public/public static字段设计+4个构造方法),同步更新README授课笔记表与授课代码表 1 săptămână în urmă
课后作业 2e3234a8fc feat: 放宽反射遍历SysUser题目的Class对象获取方式——同步修改课堂练习练习一与课后作业题目1,获取Class对象不再限定Class.forName,改为三种方式任选其一(类名.class编译期最安全/对象.getClass()需先有对象/Class.forName最灵活框架最常用,三者殊途同归拿到同一个对象),同步更新知识点/场景提示/实现步骤/代码框架注释,思考题新增三种方式对比 1 săptămână în urmă
课堂笔记 099ba7b2df feat: 新增20260813课堂笔记及授课代码分析——反射Field属性/字段/变量(Demo01演示Class类获取Field对象的4个API getFields/getField/getDeclaredFields/getDeclaredField、Field类常用方法 get/set/setAccessible/getType/getName/getModifiers、Modifier.toString解析修饰符、演示①getDeclaredFields遍历输出全部7个字段的修饰符/类型/属性名、演示②getField+get/set读取修改public属性、演示③getDeclaredField+setAccessible(true)暴力反射读取修改private属性、演示④操作静态属性get/set对象参数传null、反射赋值与普通访问同一份数据、ORM框架用Field.set()把数据库数据映射到Java类的底层原理)+Student实体类(private/public/public static字段设计+4个构造方法),同步更新README授课笔记表与授课代码表 1 săptămână în urmă
课堂练习题 2e3234a8fc feat: 放宽反射遍历SysUser题目的Class对象获取方式——同步修改课堂练习练习一与课后作业题目1,获取Class对象不再限定Class.forName,改为三种方式任选其一(类名.class编译期最安全/对象.getClass()需先有对象/Class.forName最灵活框架最常用,三者殊途同归拿到同一个对象),同步更新知识点/场景提示/实现步骤/代码框架注释,思考题新增三种方式对比 1 săptămână în urmă
.gitignore ca21b5a6ed chore:更新.gitignore忽略规则 1 lună în urmă
LICENSE 00cde68bb0 chore: 新增LICENSE开源许可文件 1 săptămână în urmă
README.md 099ba7b2df feat: 新增20260813课堂笔记及授课代码分析——反射Field属性/字段/变量(Demo01演示Class类获取Field对象的4个API getFields/getField/getDeclaredFields/getDeclaredField、Field类常用方法 get/set/setAccessible/getType/getName/getModifiers、Modifier.toString解析修饰符、演示①getDeclaredFields遍历输出全部7个字段的修饰符/类型/属性名、演示②getField+get/set读取修改public属性、演示③getDeclaredField+setAccessible(true)暴力反射读取修改private属性、演示④操作静态属性get/set对象参数传null、反射赋值与普通访问同一份数据、ORM框架用Field.set()把数据库数据映射到Java类的底层原理)+Student实体类(private/public/public static字段设计+4个构造方法),同步更新README授课笔记表与授课代码表 1 săptămână în urmă

README.md

J260713班-课程资料

Java授课资料(J260713 班 | 每日更新)


一、授课笔记

00 - Java 预科

Java 入门基础知识,涵盖数据类型、运算符、流程控制、进制转换等。

日期 笔记
2026-07-08 数据类型与运算符
2026-07-09 流程控制与循环结构
2026-07-10 进制与进制转换
2026-07-10 ASCII 字母对照表

01 - JavaSE 基础

JavaSE 完整知识体系:Java 语法(变量/运算符/流程控制/数组/方法)→ 面向对象(封装/继承/抽象类/接口/多态/内部类)→ Java API(String/Math/日期时间/包装类)→ 异常处理 → 集合框架与泛型 → 比较器排序/Lambda/Stream 流 → IO 流(File/字节流/字符流/缓冲流)。

日期 笔记
2026-07-13 Java 入门与数据类型
2026-07-14 流程控制与运算符
2026-07-15 分支循环与数组
2026-07-16 数组进阶与排序算法
2026-07-17 方法、Random 与数组
2026-07-20 面向对象基础
2026-07-21 构造方法与单例模式
2026-07-22 继承与方法重写
2026-07-23 抽象类、final 与接口
2026-07-24 多态与内部类
2026-07-27 匿名内部类与常用 API
2026-07-28 异常处理与 Object 类
2026-07-29 包装类、集合框架与泛型
2026-07-30 LinkedList 与手写链表
2026-07-31 迭代器、Map 集合与二叉树
2026-08-03 比较器排序与 Lambda
2026-08-04 函数式编程与 Stream 流
2026-08-06 File 文件操作与 IO 流入门
2026-08-07 IO 缓冲流与字符流
2026-08-08 转换流、序列化与多线程入门
2026-08-10 线程操作与线程安全
2026-08-11 volatile、Lock 锁与线程池
2026-08-12 类加载机制与反射
2026-08-13 反射 Field 属性/字段/变量

二、授课代码

日期 名称 项目名 包路径
2026-07-08 数据类型与运算符 java-prep-bootcamp com.lovecoding.day02
2026-07-09 流程控制与循环结构 java-prep-bootcamp com.lovecoding.day03
2026-07-10 进制与进制转换 java-prep-bootcamp com.lovecoding.day04
2026-07-13 JavaSE 基础入门 javaSE-260713-FirstJava 默认包
2026-07-14 Java 运算符与流程控制 c260714 默认包
2026-07-15 switch分支、循环结构与数组 c260715 默认包
2026-07-16 多维数组、Arrays 工具类、排序算法、Scanner 键盘输入 c260716 默认包
2026-07-17 方法 4 种声明方式、Random、学生信息采集系统 c260717 默认包
2026-07-20 面向对象基础:类与对象、封装、包、对象数组 c260720 p1 / p2
2026-07-21 构造方法:重载、this()、单例模式 c260721 course / homework/c260717 / homework/c260720 / exercise/exercise01 / exercise/exercise02
2026-07-22 继承:方法重写、super、访问修饰符、综合练习 c260722 course / exercise/studentSystem / homework/p08_guessgame / homework/p09_bookmanager
2026-07-23 抽象类、final、模板方法、代码块、接口(JDK8/9 新特性) c260723 course
2026-07-24 多态、上下转型、instanceof、接口多态、内部类 c260724 course/polymorphism / course/internalClass
2026-07-27 匿名内部类、String 与可变字符串、Math、日期时间 c260727 course/anonymousInternalClass / course/api / course/api/string / course/api/math / course/api/date / exercise/exercise01 / exercise/exercise06 / exercise/exercise07 / homework_0724/p2_myarray
2026-07-28 异常处理、Object 类(equals/hashCode/toString)、课后作业回顾 c260728 course/api / course/exception / homework260727 / exercise/exercise01 / exercise/exercise07
2026-07-29 包装类、集合框架(ArrayList 底层)、泛型 c260729 course/packaging / course/collection / exercises/exercise01 / exercises/exercise02
2026-07-30 List.of、LinkedList、手写链表、ArrayList 练习 c260730 course / exericse/exericse01 / homework0729/p4
2026-07-31 LinkedList 多接口、Iterator、Map(HashMap 底层)、二叉树 c260731 course / exericse/exericse01 / exericse/exericse02
2026-08-03 比较器排序(Comparable/Comparator)、Collections、可变参数、Lambda、课后作业解析 c260803 course / exericse/exericse02 / homework0731/p2_map / homework0731/p4_exception / homework0731/p5_sort
2026-08-04 函数式编程、Stream 流(中间/终结/收集、方法引用)、课后作业回顾 c260804 course / exericse/exericse03 / homework0803/p4_lambda / homework0803/p5_employee
2026-08-06 File 文件操作、IO 流入门(字节流)、学生信息管理系统大作业 c260806 course / homework0804
2026-08-07 字节缓冲流、接口化文件复制、字符流、字符缓冲流、IO 流体系 c260807 course / exericse
2026-08-08 转换流(字符集转码)、对象持久化(序列化/反序列化)、多线程入门(继承 Thread / 实现 Runnable / 实现 Callable+FutureTask) c260808 course / homework0807
2026-08-10 线程操作方法(Thread.sleep 休眠、线程调度方式、CPU 时间片随机性、线程优先级)、守护线程(setDaemon、JVM 退出机制)、线程生命周期(6 种状态)、线程操作方法(join/interrupt/yield/isAlive、Object 类 wait/notify)、线程安全问题(数据竞争、卖票问题、计数器问题、线程安全三大特性)、synchronized 线程同步(监视器锁、三种写法)、多线程三种实现方式综合练习、课后作业回顾(Callable+FutureTask 带返回值求和) c260810 course / exericse / homework0808
2026-08-11 volatile 关键字(解决可见性和有序性、不保证原子性)、JVM 内存模型(工作内存 CPU 缓存 vs 主内存)、可见性问题演示(程序永不退出 VolatileDemo)、计数器问题升级(volatile 不保证原子性、synchronized 保证原子性)、Lock 锁(ReentrantLock 可重入锁:lock/unlock/tryLock/tryLock(timeout)/lockInterruptibly 四种用法、unlock 必须放 finally、公平锁/非公平锁、synchronized vs Lock 七维对比(锁读读写分离/底层实现 AQS/JDK21 版本更新)、10000 线程 count 验证)、死锁(4 个必要条件、死锁复现、避免方法固定锁顺序/tryLock 超时/ConcurrentHashMap)、线程池(ThreadPoolExecutor:7 参数、执行流程、8 任务演示、getActiveCount/getQueue/shutdown)、课后作业回顾(homework0810 Demo_03 卖票问题 synchronized 修复) c260811 course / homework0810
2026-08-12 类的加载机制(java 文件编译→字节码 class 文件→类加载器→内存→JVM 解释→二进制机器码→执行、类加载器作用(也可能是 jar 包)、类加载 6 种时机、懒加载原则、加载过程 3 大步 5 小步:加载→链接(验证/准备/解析)→初始化、静态代码块/代码块/构造方法执行顺序演示 Demo01)、类加载器(三种类加载器:BootstrapClassLoader/PlatformClassLoader/SystemClassLoader、双亲委派层级、ClassLoader.getSystemClassLoader/getParent 获取父加载器演示 Demo02)、双亲委派模型(Demo03:委派机制、为什么需要双亲委派三个原因、getResourceAsStream 加载资源配置文件 + Properties 解析 prop.properties 数据库配置)、反射机制(Demo04:反射概念、普通调用 vs 反射调用 5 维对比、为什么需要反射、反射工作机制、反射核心类)、获取 Class 对象的三种方式(Demo05:类名.class/对象.getClass/Class.forName 演示 + Student/Person/Animal 辅助类)、反射 Constructor 构造方法(Demo06:getConstructors/getDeclaredConstructors 获取构造方法 + setAccessible(true) 暴力反射 + newInstance 创建对象 + Student 新增 3 个构造方法) c260812 course / src/prop.properties
2026-08-13 反射 Field 属性/字段/变量(Demo01:Class 类获取 Field 对象的 4 个 API——getFields/getField/getDeclaredFields/getDeclaredField(Declared 口诀:含 Declared 拿私有本类全部、不含 Declared 只拿 public 含父类继承)、Field 类的常用方法——get/set 读写属性值/setAccessible(true) 暴力反射/getType 类型/getName 属性名/getModifiers 修饰符 + Modifier.toString 解析、演示① getDeclaredFields 遍历输出全部 7 个字段的修饰符/类型/属性名、演示② getField+get/set 读取修改 public 属性、演示③ getDeclaredField+setAccessible(true) 暴力反射读取修改 private 属性、演示④ 操作静态属性 get/set 对象参数传 null、反射赋值与普通访问同一份数据、ORM 框架用 Field.set() 把数据库数据映射到 Java 类的底层原理)+ Student 实体类(private 四字段 + public 两字段 + public static 字段 + 4 个构造方法) c260813 course

三、课堂练习题

日期 练习题 涵盖知识点
2026-07-15 数组进阶练习 数组创建、遍历、排序算法
2026-07-17 Java 方法基础练习 方法 4 种声明方式、方法调用
2026-07-20 面向对象基础练习 类与对象、封装、包、方法、数组、Random 综合
2026-07-21 构造方法练习 构造方法重载、this()、private 构造方法、对象数组排序综合
2026-07-22 继承练习 继承、方法重写、super()、多态与对象数组综合
2026-07-23 抽象类与接口练习 抽象类(Shape 面积计算)、模板方法、接口入门
2026-07-24 多态练习 多态、上下转型、instanceof、接口多态(Usb 设备管理器)
2026-07-27 内部类练习 成员/静态/局部内部类、匿名内部类三种使用方式、策略模式
2026-07-28 异常处理练习 异常体系、try-catch 多 catch、throws、自定义异常、业务应用(注册验证/ATM)
2026-07-29 集合框架练习 ArrayList 增删改查与底层、包装类应用、嵌套结构
2026-07-30 LinkedList 双链表练习 LinkedList(List/Deque/Queue)、性能对比、手写链表
2026-07-31 Iterator迭代器与Map集合练习 Iterator 遍历、HashMap 操作与遍历、自定义 Key、词频统计
2026-08-03 比较器排序与可变参数练习 比较器排序(Comparable/Comparator/TreeSet)、Collections.sort、可变参数
2026-08-04 Stream 流与函数式编程练习 Stream 生成/中间/终结/收集操作、方法引用、实体类收集成 Map
2026-08-06 File 文件操作练习 File 构造、创建/删除/判断/获取、listFiles 遍历
2026-08-07 IO 字节缓冲流 + 字符流 + 字符缓冲流练习 字节缓冲流、接口化复制、字符流/字符缓冲流读写、数据持久化、读取排序写回
2026-08-08 对象序列化与转换流练习 对象序列化/反序列化、Serializable、serialVersionUID、transient、转换流字符集转码
2026-08-10 线程操作与生命周期练习 线程生命周期(getState 6 种状态)、线程优先级(setPriority)、守护线程(setDaemon/JVM 退出机制)、线程协作(join/interrupt/yield)
2026-08-11 volatile 与 Lock 锁练习 volatile 可见性(程序永不退出)、volatile 不保证原子性 vs synchronized、Lock 锁基本用法(lock/unlock + finally)、Lock 进阶(tryLock / tryLock(timeout) / lockInterruptibly)、Lock 改造卖票问题(synchronized vs Lock 七维对比)
2026-08-12 反射练习 反射遍历 SysUser 四个构造方法创建对象(public 无参/private 二参/public 六参/private 四参:Class.forName + getConstructor/getDeclaredConstructor + setAccessible(true) 暴力反射 + newInstance + instanceof 强转)、反射给私有属性赋值(getDeclaredField + setAccessible + field.set/get)、反射调用方法(getMethod + invoke 带参返回值)、综合实战配置文件驱动 + 反射(模拟 Spring IOC:Properties 加载类名/属性/方法名)