自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(344)
  • 收藏
  • 关注

原创 一篇博客带你学会JavaScript(前后端必会、二万字笔记)

主要包含script 标签、基本语法、DOM 操作、事件传播、定时器等。包含代码和动图,让你直观的了解javascript,一篇就够,一看就懂。

2024-04-11 08:57:33 955

原创 一篇博客带你学会CSS(前后端必会、三万字笔记)

用一篇博客带你学会CSS,里面包含大量的样例和展示效果,各种动图让你更好的理解。三万字的笔记,让你全方位细致学会。

2024-04-10 15:33:11 1281

原创 一篇博客带你学会HTML(前后端必会、万字笔记)

html的核心就是标签,所以里面包含了大量的样例代码和演示效果,包教包会。

2024-04-09 08:00:00 1261

原创 Redis的前世今生(内存管理、持久化、高可用、集群 详解)一看就懂

redis的诞生和mysql脱不了关系,在redis还未出现时,用户的每次请求都是直接访问mysql,渐渐的人们发现,请求大部分都是读操作,而且很多都是重复的数据,磁盘的i/o是很慢的,所以人们就想,能不能学学cpu建立的缓存机制,mysql也搞一个缓存,就这样一个。在判断一个元素是否存在时,就会用多个相同哈希函数映射,然后判断映射的位置上是否都为1,若都为1说明可能存在,因为可能有其他的一些元素映射会将这些位置正好都置为了1,所以可能会发生很小概率的误判,当然如果不都为1,那么一定是不存在的。

2024-04-06 17:17:33 911

原创 Java:七万字java基础笔记(内含代码和样例)

本文为自己学习java时记录的万字笔记。

2024-03-10 23:48:43 1466

原创 一篇博客带你学会MyBatis-Plus(后端必会)

本文章介绍MyBatis-Plus笔记梳理,基本的使用和拓展。

2024-03-02 17:05:34 1201

原创 一篇博客带你学会MyBatis(后端必会)

本文介绍mybatis如何配置,以及如何使用,sql语句的抒写方法,最后还要缓存的介绍和使用。

2024-02-02 19:22:11 1374

原创 本地缓存Caffeine在springBoot的简单介绍与使用

Caffeine 是一个高性能的 Java 缓存库,它提供了灵活的缓存策略,比如自动加载、大小限制、时间过期和引用回收等。这个库是基于 Google Guava 缓存设计而来,但在性能上进行了大幅优化,是当前 Java 应用中常用的缓存解决方案之一。

2024-04-15 19:04:40 351

原创 LeetCode:200. 岛屿数量(BFS Java)

注意就是,在节点放入queue中就之间把st标为已被遍历,而不是在节点弹出queue的时候再改变st,可以防止重复入队造成时间超时。

2024-04-15 18:04:04 195

原创 LeetCode:LCR099. 最小路径和(dp Java)

dp数组含义:f[i][j]表示到i,j这个位置的最小路径和。由于只能向下和右走,所以我们只要计算f[i -1][j] 和 f[i][ j -1]取最大值即可。

2024-04-13 20:48:00 243

原创 LeetCode:2924. 找到冠军 II(统计入度 Java)

这题估计是标错了,不是中等题就是一个简单题。遍历一下找入度为0的即可。

2024-04-13 20:38:42 427

原创 Java:JDK如何创建动态代理Proxy

动态代理是Java编程语言中的一种特性,允许在运行时创建代理类和对象。它主要用于实现AOP(面向切面编程)和在运行时处理其他类的方法调用,例如远程方法调用(RPC)、事务管理等。

2024-04-10 16:38:17 303

原创 LeetCode:1702. 修改后的最大二进制字符串(贪心 Java)

10可以变01,可以将0都向前推,比如110->011。00可以变10,可以消耗0将高位都变为1,比如000->110。最后只剩下一个0,不用动,此时就是最大的值。

2024-04-10 10:44:29 404

原创 JUC:ScheduledThreadPoolExecutor 延迟任务线程池的使用

timer也可以进行延迟运行,但是会有很多问题。 可以看出通过控制线程数可以解决timer的缺点。同时出现异常也不会影响其他任务运行。

2024-04-09 06:00:00 175

原创 LeetCode:2009. 使数组连续的最少操作数(排序 Java)

nums中最大元素与最小元素的差等于nums.length - 1,说明,数组中的数,一定是从最小值连续到最大值且没有重复值。

2024-04-09 00:54:59 170 1

原创 JUC:ThreadPoolExecutor线程池的使用方法

任务会先创建核心线程执行,若核心线程到达核心数,任务进入阻塞队列(任务队列),若阻塞队列也满了,则启用急救线程执行任务,若达到最大线程数,那么才会启用拒绝策略,急救线程在一段时间没有执行任务会自行关闭。

2024-04-08 15:58:03 984

原创 LeetCode:1600. 王位继承顺序(DFS Java)

看着题目一大堆,其实简单解析一下就是,先序遍历,然后考虑有的节点已经死亡就不再计入遍历结果中而已。 简单的DFS,因为是人名,所有就是用map来映射子节点。

2024-04-08 00:34:12 776

原创 JUC:手写实现一个简易的线程池(Java)

用java来实现一个简易线程池。

2024-04-07 19:28:09 910

原创 JUC:实现一个简易的数据库连接池(享元模式)

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享尽可能多的对象来最小化内存使用和提高性能。在该模式中,对象被分为两种状态:内部状态和外部状态。

2024-04-07 10:33:17 450

原创 LeetCode:1483. 树节点的第 K 个祖先(倍增 Java)

假设我们要找x的第13个祖节点,可以先向上找到最近的第8个节点(t),在找的 t 的最近的第4个祖宗节点.......直到找到目标节点。

2024-04-06 18:42:47 313

原创 LeetCode:1026. 节点与其祖先之间的最大差值(DFS Java)

求从根节点方向向叶子节点方向的最大差值,因为是取绝对值,所以DFS记录路径上的最大值和最小值,然后与当前遍历的节点取差值,更新res,max,min即可。还是比较简单的。

2024-04-05 23:42:22 445

原创 JUC:SimpleDateFormat的线程安全问题 以及 不可变类型DateTimeFormatter的使用

本文阐述SimpleDateFormat的线程不安全原因,从源码上分析,以及如何解决这个问题,同时给出不可变类型的如何构建等。。。

2024-04-05 22:01:05 530

原创 Java实现一个简易的布隆过滤器Bloom Filter

因为只用01表示,所以为数组直接用bitSet来表示,真为1,假为0。 传入的字符串 + 第 i 个 哈希函数,然后对size取余,就表示当前哈希函数映射的位置,我们置为1,也就是true。

2024-04-05 20:10:27 440

原创 Java简单实现一个LRU(最近最少使用淘汰策略)

我这里是用的一个优先级队列,也就是堆来实现,因为堆可以很好的进行排序,同时控制堆中的节点个数。

2024-04-05 19:45:06 724

原创 JUC:原子类型的使用(原子整数、原子引用、原子数组、字段更新器、累加器)

并发编程中原子类型的使用(原子整数、原子引用、原子数组、字段更新器、累加器)

2024-04-03 16:04:44 874

原创 JUC:CAS(比较并交换)解析

介绍CAS操作的用法,以及CAS的内部原理,CAS的特点,与sync的区别。

2024-04-03 15:28:55 384

原创 JUC:七个happens-before 规则保证可见性

本文给出保证可见性的七个规则,同时给出代码和解析。

2024-04-02 10:54:54 272

原创 JUC:double-checked locking(DCL) 懒汉单例模式

本文介绍double-checked locking(DCL)的代码解析,让你看明白这个短,但是却蕴含很多知识的代码。

2024-04-02 10:07:05 792

原创 LeetCode:331. 验证二叉树的前序序列化(模拟 Java)

设x为数字非#, 遍历,用栈存储,x##转换为#,注意用while循环,可能多次消除,像祖玛那样。最后栈里只剩一个“#”,说明是true。

2024-04-01 22:07:36 296

原创 JUC:java内存模型(如何保证?可见性、原子性、有序性)

本文主要介绍java内存模型中的可见性、原子性、有序性,已经如何解决,并且介绍了犹豫模式和volatile的使用方法。

2024-04-01 13:33:40 1030

原创 JUC:ReentrantLock(可打断、锁超时、多条件变量)

本文介绍ReentrantLock的使用发放,以及各种特性,包含例子。

2024-03-31 19:03:34 603

原创 JUC:线程活跃性(死锁、活锁、饥饿)

本文介绍线程的几种活跃性状态,带例子。

2024-03-31 09:24:52 176

原创 LeetCode:2952. 需要添加的硬币的最小数量(贪心 Java)

可以证明从 1 到 19 的所有整数都可由数组中的硬币组合得到,且需要添加到数组中的硬币数目最小为 2。可以证明从 1 到 19 的所有整数都可由数组中的硬币组合得到,且需要添加到数组中的硬币数目最小为 1。可以证明从 1 到 20 的所有整数都可由数组中的硬币组合得到,且需要添加到数组中的硬币数目最小为 3。需要添加面值为 4 、8 和 16 的硬币各一枚,得到硬币数组 [1,1,1,4,8,16]。只需要添加一枚面值为 2 的硬币,得到硬币数组 [1,2,4,5,7,10,19]。

2024-03-31 09:24:16 291

原创 牛客:B-经商(并查集 + 01背包 Java)

简单的01背包问题,不过选择物品时,不一定能选,因为不一定联通,所以用并查集判断一下即可。

2024-03-30 19:24:54 345

原创 牛客:F.桃飘火焰焰,梨堕雪漠漠(排序 Java)

第一行输入三个整数n,m,k(1≤n≤103,0≤m≤k≤n)n,m,k(1 \le n \le 10^3, 0 \le m \le k \le n)n,m,k(1≤n≤103,0≤m≤k≤n),nnn代表EternityEternityEternity购买的总共的游戏数量,mmm代表nnn个游戏中EternityEternityEternity喜欢的游戏数量,kkk代表EternityEternityEternity至少要玩的游戏数量。我就是没注意这个,想当然的就提交了。模拟题,求最小的时间。

2024-03-30 19:18:58 827

原创 JUC:park/unpark的用法与原理

park/unpark的用法与原理

2024-03-30 09:09:05 266

原创 JUC:wait/notify用法并写一个简单消息队列(生产者消费者问题)

本文主要介绍wait/notify的用法以及和sleep的区别,并且写一个消息队列。

2024-03-30 09:08:22 259

原创 JUC:Monitor 与 Java对象头的内容与锁关系

Monitor 与 Java对象头的内容与锁关系

2024-03-29 18:19:31 178

原创 JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

主要介绍synchronized的内部原理,锁的升级过程,已经偏向锁的撤销,重偏向,删除等细节。

2024-03-29 11:18:27 1060

原创 LeetCode:1997. 访问完所有房间的第一天(DP Java)

我愿称之为,虽然我每接近你一步,轮回的次数就会变多,但是我任然想不断的靠近你,即使每次回溯我都要再花费更长的时间重复经历一遍。

2024-03-29 01:12:09 805

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除