- 博客(32)
- 收藏
- 关注
原创 AQS 等待队列中的线程自旋多少次后挂起?
结论:节点在加入等待队列后会进行两次自旋,获取不到锁后线程挂起,等待前驱节点唤醒。以 ReentrantLock#lock() 的非公平锁实现为例。
2025-04-04 16:27:54
128
原创 线程等待与唤醒的几种方法与注意事项
无论是调用哪种等待和唤醒的方法,都必须是当前线程所持有的对象,否则会导致 java.lang.IllegalMonitorStateException 等并发安全问题。以三个线程循环打印 XYZ 为例。
2025-04-01 19:25:34
313
原创 八股之 Java 常用框架
Before(前置通知):目标对象的方法调用之前触发After(后置通知):目标对象的方法调用之后触发(返回通知):目标对象的方法调用完成,在返回结果值之后触发(异常通知):目标对象的方法运行中抛出 / 触发异常后触发。AfterReturning 和 AfterThrowing 两者互斥。如果方法调用成功无异常,则会有返回值;如果方法抛出了异常,则不会有返回值。Around(环绕通知):编程式控制目标对象的方法调用。
2024-08-20 18:03:41
1128
1
原创 八股之数据库
外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。
2024-08-16 10:24:47
1103
1
原创 八股之Java并发编程
wait()是让获得对象锁的线程实现等待,会自动释放当前线程占有的对象锁。每个对象(Object)都拥有对象锁,既然要释放当前线程占有的对象锁并让其进入 WAITING 状态,自然是要操作对应的对象(Object)而非当前的线程(Thread线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态//资源 1//资源 2try {}, "线程 1").start();try {}, "线程 2").start();
2024-08-12 22:16:59
892
原创 八股之设计模式
比如接口一旦新增加方法,目标对象和代理对象都要进行修改需要对每个目标类都单独写一个代理类实际应用场景非常少(1)定义一个接口及其实现类(2)创建一个代理类同样实现这个接口,将目标对象注入进代理类,然后在代理类的对应方法调用目标类中的对应方法,在目标方法执行前后拓展功能实际使用。
2024-08-10 14:51:20
642
原创 八股之Java集合
Java 集合,也叫作容器,主要是由两大接口派生而来:一个是Collection接口,主要用于存放单一元素;另一个是Map接口,主要用于存放键值对。对于CollectionListSetQueueListSetQueueMapJava 集合提高了,可以更好地适应现代软件开发中多样化的数据需求,并支持高质量的代码编写。
2024-08-08 23:03:46
445
原创 八股之Java基础
泛型类泛型接口泛型方法// 泛型类// 泛型方法// 泛型接口注意:一般被称为静态泛型方法;在 java 中泛型只是一个占位符,必须在传递类型后才能使用。类在实例化时才能真正的传递类型参数,由于静态方法的加载先于类的实例化,也就是说类中的泛型还没有传递真正的类型参数,静态的方法的加载就已经完成了,所以静态泛型方法无法使用类上声明的泛型。
2024-08-07 16:09:40
703
原创 算法刷题之数组
本质为数列题,由通项公式求前n项和、由前n项和求通项公式。的定义(正确答案所在区间),在循环中根据区间定义做。(注意对插入情况的分析讨论)
2024-08-01 16:26:20
303
原创 Spring之AOP
AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期方式实现,在不修改源代码的情况下,给程序动态统一的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。静态代理动态代理。
2024-07-11 11:49:17
169
原创 Spring之IOC(应用)
Spring 提供了以下多个注解,这些注解可以直接标注在 Java 类上,将它们定义成 Spring Bean// value属性可以省略,默认值为类名小写。
2024-06-18 16:32:24
818
原创 JavaWeb之Ajax
AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个页面的情况下,能够与服务器交换数据并更新部分网页的技术。AJAX允许网页在不失去用户当前状态的情况下与服务器进行,这使得用户体验更加流畅,页面响应更快。
2024-06-05 15:29:49
196
原创 JavaWeb之过滤器、监听器
并不是所有请求都可以访问目标资源,也不是所有响应都要返回客户端,这时就需要过滤器进行过滤操作Filter的常用应用包括但不限于:登录权限检查、解决网站乱码、过滤敏感字符、日志记录等。
2024-06-05 13:45:45
423
原创 JavaWeb之会话管理
HTTP是无状态协议,自身简单理解就是浏览器发送请求,服务器接收并响应,但是服务器不记录请求是否来自哪个浏览器以及浏览器的特征举例:张三去一家饭馆点了几道菜,觉得味道不错,第二天又去了,对老板说,还点上次的那几道菜。无状态就是老板没有记录张三是否来过,更没有记录上次他点了那些菜,张三只能重新再点一遍在会话管理中我们使用Cookie和Session保存信息。
2024-06-04 11:13:52
377
原创 JavaWeb之Servlet
顶级servlet接口—>genericServlet抽象类(重写除service外的方法)—>HttpServlet类(重写service方法)—>自定义servlet类。
2024-06-03 13:14:09
432
1
原创 JavaWeb之数据库JDBC
在创建好数据库后,需要通过Java实现数据库的操作JDBC(Java DataBase Connectivity)意为Java数据库连接,是Java提供的用来操作数据库的API。
2024-05-24 12:41:17
1040
1
原创 C语言实现贪吃蛇(详细版)
以上就是贪吃蛇的基本内容啦,完结撒花~下面有一些想说的话:这篇文章的完成时间是2023.5.12,我现在是一名大一下的计科学生,其实C语言在去年十月份的中旬就看完了翁恺老师的网课,那个时候其实就有能力完成这个贪吃蛇的编写了,但是知道现在才写完,其实是走了很多弯路,耽误了不少时间北哥,在加入北哥的知识星球”编程指北“后才回正了自己的学习方向,也希望大家都能在正确的道路上越走越远~
2023-05-12 14:37:04
43001
26
原创 代码随想录算法训练营第二天|双指针、滑动窗口、模拟
给你一个按排序的整数数组 nums,返回组成的新数组,要求也按排序。:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]:排序算法的最优复杂度是,而这个题目要求的时间复杂度为,需要这一条件得出原数组的是的。
2023-05-11 21:09:24
676
1
原创 代码随想录算法训练营第一天 |二分 + 双指针
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入:nums = [5,7,7,8,8,10], target = 8。如果数组中不存在目标值 target,返回 [-1, -1]。的问题(因为mid = l + r >> 1),理清二分查找的思路需要时刻关注。二分查找的操作对象是。需要注意的是如果进行。
2023-05-10 19:13:48
962
1
空空如也
文件写入与读取遇到的问题
2022-10-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人