摘要: 概要 简述 如果遇到多个单链表,那么大概率是需要使用双指针,要么就是优先级队列 链表遍历框架,兼具线性和非线性遍历结构 可以用循环遍历,也可以递归遍历 所以可以思考一下,除了遍历还能用递归解题 题型总结 反转链表题型 判断是否回文链表 合并两个有序链表 合并k个有序链表 寻找单链表的倒数第k个节点 阅读全文
posted @ 2022-09-09 02:39 躲在墙角的 阅读(12) 评论(0) 推荐(0) 编辑
摘要: jmm内存模型 阅读全文
posted @ 2022-09-02 23:57 躲在墙角的 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 并发问题 数据竞争 死锁 活锁 资源不足(饿死) 优先权反转 数据竞争 死锁 四个条件 资源 只能互斥使用(一个资源每次只能被一个进程使用) 请求者 不剥夺条件(进程已获得的资源,在末使用完之前,不能强行剥夺) 请求与保持条件 (若干进程因请求资源而阻塞时,对已获得的资源保持不放) 循环等待条件 ( 阅读全文
posted @ 2022-09-02 23:10 躲在墙角的 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 创建线程两种方式 java线程特征 priority:优先级,取值1-10,值越大优先级越高 deamon:是否守护线程,可以通过setDeamon/isDeamon设置获取 name:名字 id:thread对象的标识 所有java程序,都有一个名为mian的主线程 java线程共享所有资源 ja 阅读全文
posted @ 2022-08-30 01:34 躲在墙角的 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 线程池构造函数参数有哪些 核心线程池 最大线程数 空闲非核心线程存活时长 空闲非核心线程存活时长单位 阻塞队列 线程生产工厂 拒绝执行处理类 execute和submit有什么区别? execute会抛出异常 submit不会抛出异常 线程池怎么处理异常 方式一:在提交的任务中将异常捕获并处理,不抛 阅读全文
posted @ 2022-08-30 01:26 躲在墙角的 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 简述 行为设计模式的作用是为了定义对象或者类之间的沟通和交流. 责任链模式 特征 每个处理者拥有终止处理链的权利 处理链是有序的 传参可以作为上下文存在 做什么事情 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 理解 有多个处理者顺 阅读全文
posted @ 2022-06-03 16:26 躲在墙角的 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 适配器模式 目标 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 参与者 使用者,其实一般都是一个方法 被使用者,可以是类或者接口,但是是类的话,对于 试图作为被使用者的类 一个新建的适配器类(需要把不兼容的类作为构造函数参数传起来) 结构 场 阅读全文
posted @ 2022-06-03 16:03 躲在墙角的 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 基本 设计模式是使用面向对象语言之后,为了重用代码才搞出来的 理解 其实本质上还是把变化的和不变的区分开来,最大程度地重用代码 变化的毫无疑问就是接口或者抽象类搞成一套垂直的体系 设计模式就是把变化的部分和不变的部分怎么组合的问题了 阅读全文
posted @ 2022-06-02 15:32 躲在墙角的 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式 目标 给每个使用者创建一个适合他们的对象 参与者 两套继承体系 结构 两套体系 一套是被使用对象 一套是使用者(未必是真正的使用者,既Factory,自己不用暴露给外面使用) 使用者需要在接口或者父类把 新建被使用者的方法(newXXX) 抽象,让自己去new 类似于模板方法模式 搞个 阅读全文
posted @ 2022-06-02 15:28 躲在墙角的 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 秒杀系统特点 时间极短、 瞬间用户量大。 秒杀系统需要新建一个项目+数据库来搞? 是的 秉着"单一职责"的原则,还是需要另外搞一套系统来做秒杀系统 另外就是,秒杀系统出问题的几率还是比较大的,如果影响到正常的商城系统,那就得杀个程序员祭天了 但是一些流量不大的微服务还是可以调用的,例如商品详情微服务 阅读全文
posted @ 2022-05-30 18:20 躲在墙角的 阅读(14) 评论(0) 推荐(0) 编辑