- 博客(32)
- 收藏
- 关注
原创 2025.08.11课后作业
大部分参数传递使用#{},优先保证安全性动态表名、列名、排序方式等必须使用${}模糊查询推荐使用<bind>标签配合#{}实现,避免使用${}
2025-08-11 19:40:44
441
原创 静态代理、JDK 动态代理、CGLIB 及 AOP 核心要点
静态代理是在编译期就确定代理类与目标类关系的代理模式。代理类需要手动编写,且与目标类实现相同的接口(或继承同一父类)。动态代理是在运行时动态生成代理类的代理模式。无需手动编写代理类,通过反射或字节码技术在程序运行时动态创建代理对象,解决静态代理的代码冗余问题。CGLIB 是一个第三方字节码生成库,通过继承目标类动态生成代理类(子类),从而实现代理功能。无需目标类实现接口,弥补了 JDK 动态代理的局限性。AOP 是一种编程思想,核心是分离 “横切关注点”(如日志、事务、安全)与 “核心业务逻辑”
2025-08-08 20:41:44
642
原创 代码库详细笔记
JDK 动态代理:基于接口实现,通过创建代理对象,核心是的invoke()方法静态代理:编译期确定代理关系,代理类与目标类实现同一接口,直接持有目标对象引用Spring IOC:通过和@Bean定义 Bean,支持自定义初始化方法和作用域Bean 生命周期:通过等接口和可监控和干预 Bean 的创建过程注解驱动:使用@Service等注解快速注册 Bean,简化配置。
2025-08-07 22:25:22
243
原创 JSP 内置对象与 Servlet 代码结合笔记
内置对象类型对应 Servlet 对象作用域request方法参数req一次请求response方法参数resp一次响应session会话周期应用生命周期out页面输出config过滤器 / Servlet 的组件配置无直接对应页面级别page当前 Servlet 实例页面自身exception异常对象错误页面requestresponse贯穿整个请求 - 响应流程,是数据传递的核心session负责用户状态管理,是登录功能的基础。
2025-08-05 17:30:45
963
原创 Servlet 相关笔记整理
场景方法示例处理 GET 请求处理 POST 请求初始化 Servlet销毁 Servlet通用服务方法获取会话对象设置响应字符流。
2025-08-04 19:02:29
320
原创 数据库Day04
脏读 / 不可重复读 / 幻读:用多事务并发操作,演示 “读未提交数据”“多次读结果不同”“读新增数据” 的现象。隔离级别:通过切换级别,验证不同级别对并发问题的解决能力。事务日志:redo log 保障崩溃恢复,undo log 保障回滚,可通过 “模拟崩溃”“手动回滚” 间接验证。
2025-07-31 19:34:19
539
原创 数据库Day03
创建语法-- 允许创建函数create function 函数名(参数 类型) returns 返回类型begin-- 函数体(声明变量、逻辑处理、return语句)end;示例计算数值翻倍:beginend;beginend;
2025-07-30 17:37:38
918
原创 数据库Day02
• 主键 COUNT(student_id) 速度 ≈ COUNT(1) > COUNT(*) > COUNT(可空列)。SUM(CASE WHEN subject='数学' THEN fraction ELSE 0 END) AS '数学。SUM(CASE subject WHEN '数学' THEN fraction END) AS 数学,运算符:=、>、<、!=、<>、IN、NOT IN、BETWEEN …聚合函数:COUNT() / SUM() / AVG() / MAX() / MIN()
2025-07-29 20:14:58
686
原创 Java基础Day09&&数据库Day01
在程序中我们可以利用每个类的类对象,动态的获取类中已经定义好的属性,方法以及构造方法。java程序中每一个类都有一个<类对象>用来描述这个类的定义。这段信息用来描述某个类中定义了哪些属性,方法以及构造方法。并且可以获取/修改对象中的属性,也可以调用对象中的方法。Java是面向对象的,在java内存中的数据都是对象。查看mysql是否安装以及版本:-u root -p。java的类也应该有一段内存来纪录java类的信息。这个用来描述<类的定义>的对象属于Class类型。这段描述类定义的信息也是一个对象。
2025-07-28 17:17:08
232
原创 Java基础Day08
join 加入/插队 A线程中执行了B.join(),A线程让B线程先运行,A线程挂起等待,B线程运行完毕后,A线程才继续运行。执行yield方法,触发CPU分配机制,避免单个线程长时间占用CPU资源,达到CPU资源合理分配的效果。线程同步和方法无关,只跟锁对象有关系,同一时间同一个锁对象只能放行一个线程,不管这个线程要执行哪个方法。2.静态方法 锁对象是当前类的类对象 例如A中的方法 锁对象就是A.class。执行这个方法只是告诉线程可以中断了 就是修改了线程中的一个属性。
2025-07-25 17:18:41
409
原创 Java基础Day07
快速排序的核心思想是分而治之:首先,从待排序的数组中随意选取一个元素作为“基准值”(pivot),然后将所有比它小的元素移到其左侧,所有比它大的元素移到其右侧,这一步称为“分区”或“划分”;接着,对基准值左右两侧形成的两个子数组,分别再递归地重复上述过程——即再选基准、再分区——直到子数组的长度缩减到 0 或 1,此时整个数组便自然完成了排序。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。将读取到的数据存入到arr数组中 返回的是读取到的数据的长度。
2025-07-24 20:29:15
748
原创 Java基础Day06
List:有序,允许重复,适合需要通过索引访问的场景。Set:无序,不允许重复,适合需要去重的场景。Map:键值对,键唯一,适合需要通过键快速查找值的场景。
2025-07-23 17:34:00
276
原创 Java基础Day05
finalize:是Object 类的一个方法,在垃圾回收前由 JVM 调用,做资源清理(已过时,不建议用)。比较:基本数据类型和对应的封装类型进行比较,将封装类型的对象拆箱,然后再和基本数据类型比较。在使用字符串时,先检测字符串常量池中是否有对应的字符串,如果有,就直接使用。如果没有,将str字符串复制一份到字符串常量池中,返回字符串常量池中的对象。运行时异常:只有在程序运行阶段才会抛出的异常,可以通过编码技巧规避这些异常。执行过程:try尝试运行可能抛出的异常,如果try块中的代码抛出了异常对象。
2025-07-22 20:01:29
1488
原创 Java基础Day04
非static修饰的属性和方法,它是属于对象的,只有对象(类的的个体)才能调用,不能通过类名直接调用。在内存中,属性保存在对象中,方法保存在类中,对象中会记录该对象输入哪个类,从而找到对应的方法。条件:父类变量里装的必须是“这个子类或它的子孙类”的实例,否则会抛 ClassCastException。接口可以多继承,是因为它们只定义行为,不持有状态或实现,天然避免了多继承带来的复杂性。static 的归“类”,非 static 的归“对象”规则:编译期只看“=”左边的类型,运行期才看“=”右边的对象。
2025-07-21 20:39:40
879
原创 Java基础Day03
访问权限修饰符 public(公共的) protected(受保护的) default 本包(默认的) private 本类(受保护的)import com.easy0718.EasyC(类的全名);编译器通过调用时传入的参数匹配到对应的方法,从而实现“同名不同参”的多态性。所有的类默认继承Object类,Object类是所有类的超级父类。1.同一个包下的类可以相互引用(类会默认引入同一个包下的类)外部类:在.java文件中直接声明的类叫做外部类。程序中:必须先有类,通过类实例化个体(对象)
2025-07-19 11:14:22
845
原创 Java基础day02
这样一轮一轮进行下去,每一轮都会把一个当前最大的数字放到它最终应该在的位置上,就像气泡不断往上冒一样,直到所有数字都排好序。冒泡排序的原理是从左边开始将数组第一个数字和后面的比较,如果前面的数字大于后面的数字,他俩就交换位置,这样最大的数字就会像“气泡”一样浮到最右面。数组扩容(复制) 由于数组的大小从定义好了以后就不能改变,所以想让数组有更大的容量就只能开一个更大的数组,将原来数组的内容复制过去。简单来说,就是不断比较相邻元素,把大的往后挪,每轮确定一个最大值的位置,直到没有需要交换的元素为止。
2025-07-17 16:53:43
451
原创 java基础day01
其中基本数据类型有八种,包括byte,short,int,long,float,double,char,boolean.强制数据类型转换:需要代码强制声明的转换过程,如果内存溢出就是一刀切 取值范围大的向取值范围小的类型转换。隐式转换:系统默许的,不需要代码强制声明的转换过程,取值范围小的可以向取值范围大的类型转换。在程序运行过程中,定义一些名称来记录一些数据,在之后的代码中方便使用。++a 先加加 先将a的值加一,然后再将a的值赋给++a表达式。a++ 后加加 先将a的值赋给a++表达式,然后a+1。
2025-07-16 20:34:29
165
原创 C语言-结构体
7-5 小鑫の日常系列故事(十)——排名次。7-10 简单枚举类型——植物与颜色。7-2 小 I 的小姐姐。7-4 小 I 选宾馆。7-1 检查宿舍卫生。7-8 老--质价比。
2023-05-19 07:18:52
156
原创 2022/11/11 程序课笔记
也称直接插入排序。基本思路:每一步将一个数插入一个已经排好的序列中,并使之保持有序。直到插完所有的数为止。指的是在排序时,每次比较数组中相邻的两个数组元素的值,将较大的数(从小到大排列)排在较小的数后面。(3)验证该位置是否与i相等,如果不相等,交换;(2)从剩下的所有数中选择一个更小的数;2.冒泡排序(o(n^2),稳定性排序)(1)n个数经过n-1轮排序;(1)n个数n-1轮冒泡。外层循环要经过n-1轮;第一种:找到位置的插入。
2022-11-14 17:36:54
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2