下水道程序员
码龄2年
关注
提问 私信
  • 博客:58,731
    社区:9
    58,740
    总访问量
  • 80
    原创
  • 24,760
    排名
  • 426
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:共同进步

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2022-08-28
博客简介:

Cobrander2_0的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    785
    当月
    18
个人成就
  • 获得665次点赞
  • 内容获得32次评论
  • 获得874次收藏
  • 代码片获得573次分享
创作历程
  • 44篇
    2024年
  • 24篇
    2023年
  • 12篇
    2022年
成就勋章
TA的专栏
  • Mysql数据库基础及深入理解
    30篇
  • JVM虚拟机
    7篇
  • java
    10篇
  • C语言
    1篇
  • 爬虫
    3篇
  • python基础知识
    8篇
兴趣领域 设置
  • Java
    java
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MySQL锁

谈到Mysql锁的应用,就应该想到什么时候加锁,在哪种隔离级别下加什么锁。MySQL有四种隔离级别分别是:可重读,串行化,读未提交,读取提交内容这四种。
原创
发布博客 昨天 13:42 ·
589 阅读 ·
15 点赞 ·
0 评论 ·
19 收藏

MySQL补充说明

存储内容:聚簇索引的叶节点存储的是数据行本身,而主键索引(在非聚簇实现中)的叶节点存储的是指向数据行的指针或主键值(在聚簇实现中,主键索引的叶节点也存储数据行,但这时的主键索引与聚簇索引是重合的)。物理存储顺序:聚簇索引决定了数据在磁盘上的物理存储顺序,而主键索引不一定与数据的物理存储顺序一致。对于二级索引idx_key1来说,所有字符串前缀为‘a’的二级索引都是相邻的,也就意味着,我们只要定位到了第一条前缀为‘a’的记录,沿着记录向后扫描,直至某条二级索引的前缀不为‘a’即可。
原创
发布博客 昨天 00:51 ·
256 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

JavaWeb

servlet是一个接口,有一个HttpServlet extends GenericServlet,这个GenericServlet implements Servlet, ServletConfig, Serializable。在这么复杂的继承以及实现关系下,当我们定义的类继承了HttpServlet后,就可以通过前人写好的方法来进行Java Web的开发。来实现在网页上的呈现。那么就得通过一个服务器来实现。没错这个服务器就是Tomcat。
原创
发布博客 2024.10.29 ·
345 阅读 ·
7 点赞 ·
0 评论 ·
1 收藏

Spring AOP

AOP为面向切片编程。在Spring AOP当中面向切面编程就是****编程。
原创
发布博客 2024.10.28 ·
406 阅读 ·
9 点赞 ·
0 评论 ·
4 收藏

REDIS

基础
原创
发布博客 2024.10.27 ·
792 阅读 ·
24 点赞 ·
0 评论 ·
23 收藏

Linux

ls -l 显示的内容如上图所示前面的那串乱码是什么意思呢??chown newowner 文件/目录 改变所有者chown newowner:newgroup 文件/目录 改变所有者和所在组-R 选项,如果是目录,就使得其目录下所有的文件和目录所有者递归生效任务调度:是系统在某个时间执行的特定的命令或程序任务调度分类: 1. 系统工作:有些重要的工作必须周而复始的执行2. 个别用户工作:个别用户可能希望执行某些程序。
原创
发布博客 2024.10.08 ·
1244 阅读 ·
29 点赞 ·
0 评论 ·
23 收藏

JVM内存模型与线程

Java内存模型的主要目的是定义程序当中各种变量访问规则,即关注在虚拟机中把变量存储到内存和从内存当做取出变量值这样的底层细节。此处的变量不包括局部变量和方法参数,因为后者是线程私有的。Java内存模型当中规定了所有的变量都存储在主内存当中。每条线程还有自己的工作内存,线程的工作内存当中还保存了被该线程使用的变量的主内存副本(这个对象的引用,对象中某个在线程当中访问到的字段是有可能会被复制的,并不会复制全部内容)。线程对变量的多有操作都需在工作内存当中进行,而不能直接读写主内存当中的数据。
原创
发布博客 2024.09.02 ·
784 阅读 ·
14 点赞 ·
1 评论 ·
16 收藏

虚拟机字节码执行引擎

栈帧是用于支持虚拟机进行方法调用执行背后的数据结构每一个栈帧都在Java程序进行编译的时候,他需要多大的空间,多么深的操作都被计算好了后写入了Code属性当中,所以一个栈帧需要多少内存只取决于程序源码和虚拟机的栈内存结构每一个栈帧都包括局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在活动线程线程当中只有位于栈顶的方法才是运行的,只有处于栈顶的栈帧才是生效的,我们称其为“当前栈帧”
原创
发布博客 2024.09.02 ·
1078 阅读 ·
11 点赞 ·
0 评论 ·
9 收藏

类文件及其加载机制

Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑排列在文件当中,中间没有任何的分隔符,这使得整个Class文件当中存储的内容几乎完全都是程序运行的必要数据。当Class文件需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。根据《虚拟机规范》的规定,Class文件格式采用类似C语言结构体的伪结构来存储数据。这种伪结构当中只有两种数据类型:“无符号数”和“表”。
原创
发布博客 2024.09.01 ·
991 阅读 ·
20 点赞 ·
0 评论 ·
8 收藏

垃圾收集器与内存分配策略

在一个对象没有引用链链接的时候,会去调用Finalize()方法,但是从Java 9开始弃用该方法。
原创
发布博客 2024.08.30 ·
981 阅读 ·
15 点赞 ·
0 评论 ·
17 收藏

内存区域与内存溢出异常

程序计数器就是当前线程的字节码的行号指示器,是程序控制流的指示器,分支,循环,跳转,异常处理,均要这个计数器来完成。Java虚拟机的多线程是线程轮流切换,分配执行时间来实现的,所以在任何一个时刻,一个处理器只会执行一条指令,执行完后会依赖程序计数器恢复到正确的执行位置,每条线程都有一个独立的程序计数器,放置他们的内存是线程私有的内存,其互不影响,独立存储。
原创
发布博客 2024.08.28 ·
765 阅读 ·
16 点赞 ·
0 评论 ·
7 收藏

MyBatis从浅入深

Mybatis用于简化Java当中对于JDBC的操作,它将连接数据库,执行SQL命令自动化实现。
原创
发布博客 2024.05.21 ·
774 阅读 ·
19 点赞 ·
0 评论 ·
16 收藏

算法模块方法总结(数组)

二分查找(Binary Search)是一种在有序数组(必须是不能重复的,因为如果有重复的,会从几个符合的选项中输出一个,可能不合题意)中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。二分查找的思想是便于理解的,但是边界条件是很容易写错的。比如下面的。
原创
发布博客 2024.05.17 ·
245 阅读 ·
9 点赞 ·
0 评论 ·
3 收藏

回溯算法1

上面说过了,每一个回溯法都可以抽象为一个二叉树,这个一维数组就是path,用于记录路径。回溯算法可以解决 组合问题,切割问题,子集问题,排列问题,棋盘问题(n皇后)。在java语言中可以使用list来写。在解决这些问题的时候可以使用n循环,但是十分困难,使用回溯就比较容易。回溯法通常可以抽象为一个n叉树往下是递归,宽度是一个for循环。我们首先声明两个数组,一个是一维数组,一个是二维数组。组合问题:集合1234,找出大小为2的组合。回溯函数又称为递归函数,是纯暴力搜索。我使用一个例子来说明该问题。
原创
发布博客 2024.05.09 ·
302 阅读 ·
4 点赞 ·
1 评论 ·
0 收藏

Tire 字典树、前缀树

字典树(又称单词查找树或Trie树)是一种树形结构,它是哈希树的变种,通常用于统计、排序和保存大量的字符串(但不仅限于字符串)。字典树在搜索引擎系统中常用于文本词频统计。它的主要优点在于能够利用字符串的公共前缀来减少查询时间,从而最大限度地减少无谓的字符串比较,因此查询效率通常比哈希树高。字典树的基本操作包括查找、插入和删除,但删除操作相对较少见。在查找操作中,通常从根节点开始,依次搜索关键词的每个字母,直到找到对应的节点或确定关键词不存在于树中。
原创
发布博客 2024.05.02 ·
419 阅读 ·
8 点赞 ·
0 评论 ·
4 收藏

前K个高频元素

这块我们得考虑清楚,因为堆中只去维护k个大小的,所以当堆的大小达到k的时候,我们push进去一个新的元素,就要去pop栈顶元素,这块要是我们使用的大顶堆,每次都会pop出大的元素,到了最后剩下的就是小的元素,要是我们使用的小顶堆,剩下的就是频率较大的元素。我们首先想到的是map,map当中存储key和value,value代表着频率,最后在根据value进行排序,输出前k的元素,时间复杂度是nlogn。但是我们仅仅需要的是前k个高频元素,所以无需对全部元素进行排序,只需要去维护一个大小为k的有序集合即可。
原创
发布博客 2024.04.26 ·
229 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

桶排序(Bucket Sort)

当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。桶排序的核心在于合理设计桶的数量和每个桶的范围,使得数据能均匀分布到各个桶中,进而降低后续排序的复杂度。桶排序的步骤主要包括初始化桶确定桶的数量及每个桶对应的数据范围,遍历待排序序列将每个元素放入对应的桶中,以及对每个非空桶内部使用其他排序算法进行排序。总的来说,桶排序是一个利用函数映射关系将数据分布到有限数量的桶中,再对每个桶内的数据进行排序,最后按顺序合并得到全局有序序列的排序算法。的键是数组元素的“桶”ID,值是数组元素的值。
原创
发布博客 2024.04.26 ·
301 阅读 ·
7 点赞 ·
0 评论 ·
2 收藏

递归解决树的相关问题

这道题,我首先想到删除该节点的标志在于左右节点为null,并且该节点的值为0,使用栈对树进行层序遍历后存储,接着删除即可,但是这里存在着一个问题,使用栈弹出的节点,进行删除,并不能影响到原树中的元素,删除节点时,你需要确保父节点正确地更新其子节点的引用。递归算法的基本思想是将一个大规模的问题拆分成若干个规模较小的子问题来解决,子问题的解决方式与原问题相同,只是规模更小。那么就得保存一个路径可以告知父节点,这个时候就可以使用递归的方法。对于删除节点,查找特殊节点的时候,我们就可以使用这种方法来解决。
原创
发布博客 2024.04.25 ·
162 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

使用队列对二叉树进行广度遍历

我们首先创建一个队列,开始遍历二叉树,这里记录一个值len,表示当前层有多少个元素,当然第一层也就是根(root),只有一个元素,那么就是len=1,在遍历的过程当中,我们将使用while循环,而len是否大于0作为判断条件,这样就可以知道这一层是否遍历完,进入遍历时,弹出root,len--,接着对root的左右节点进行判断是否为null,不为null的话就offer进队列当中。我们要对二叉树进行广度遍历,经典的数据结构就是队列,这也是许多算法题中要用到的基础,下面是一些基本思想。
原创
发布博客 2024.04.24 ·
202 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

LCR 039

对于每个元素,如果栈不为空且栈顶元素对应的柱子高度大于等于当前柱子高度,那么就将栈顶元素弹出,因为当前柱子会遮挡住它,使得它无法成为其他柱子的左侧第一个比它矮的柱子。这样,栈中的元素对应的柱子高度是单调递减的。right[i] 存储的是 heights[i] 右侧第一个比它矮的柱子的下标,如果不存在,则设为 n 是 heights 的长度。left[i] 存储的是 heights[i] 左侧第一个比它矮的柱子的下标,如果不存在,则设为 -1。,数组中的数字用来表示柱状图中各个柱子的高度。
原创
发布博客 2024.04.21 ·
369 阅读 ·
13 点赞 ·
0 评论 ·
2 收藏
加载更多