杨·戬
码龄8年
关注
提问 私信
  • 博客:160,857
    社区:39
    160,896
    总访问量
  • 235
    原创
  • 14,027
    排名
  • 131
    粉丝

个人简介:孤舟蓑笠翁 独钓寒江雪

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

Pxx520Tangtian的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    5
    当前总分
    1,364
    当月
    11
个人成就
  • 获得155次点赞
  • 内容获得20次评论
  • 获得459次收藏
  • 代码片获得541次分享
创作历程
  • 3篇
    2024年
  • 51篇
    2023年
  • 91篇
    2022年
  • 12篇
    2021年
  • 33篇
    2020年
  • 11篇
    2019年
  • 29篇
    2017年
  • 6篇
    2016年
成就勋章
TA的专栏
  • 数据结构与算法
    27篇
  • javaee
    44篇
  • 源码专栏
    4篇
  • 算法刷题
    16篇
  • 并发编程
    2篇
  • redis
    1篇
  • java基础面试题
    8篇
  • 大脑训练
    1篇
  • 自我介绍
    1篇
  • 英语
    24篇
  • c编程
    26篇
  • vc++编程
    6篇
  • php编程
    10篇
  • linux程序设计
    6篇
  • smarty模板技术
    3篇
  • 杂文
    5篇
  • java基础
    30篇
  • 数学
    2篇
  • java设计模式
    9篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

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

c语言之在结构体里面定义函数指针

大致相当于是做了一个套娃操作:1.我给head里面的value分配了一片空间,用来存放字符串。像上面这样的字符串空间大小就是20个空间大小。3.然后listRelease里面在去调用了free指向的函数进行释放,同时传入了value这个地址值。不考虑数据类型转换直接释放。2.我们想要释放这片空间,是先把包含head里面的value的这个结点传给listRelease。首先我们必须要注意的是函数名字就可以看成指针地址。这个时候我们回到list这个结构体的设计上面。
原创
发布博客 2024.11.04 ·
208 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

c编程之标记粘贴运算符、数组[-1]

上面的flag = s[-1],这就相当于*(s - 1).,能不能刚好指向上一个元素取决于每次指针移动多少个字节。但是我们还要考虑一问题就是说,当指针往上面移动的时候,指向了某个位置,取值的时候,一定要考虑数据类类型是否匹配。上面的寻址就是从char* 到 char*就不用转换,但是如果你从int * 到short *,就要进行转换,因为寻址的字节数不一样。除非我们它的指针指向,也就是数组指向了越界之后的地址之后,这片地址在我们的掌握之中。用于将两个独立的标记(tokens)合并成一个单一的标记。
原创
发布博客 2024.10.16 ·
329 阅读 ·
8 点赞 ·
0 评论 ·
5 收藏

c语言之字符串的集合存放形式

那么这个时候问题来了,没有在第一次初始化的时候赋值字符串,那么又该如何操作呢?
原创
发布博客 2024.04.16 ·
1027 阅读 ·
15 点赞 ·
0 评论 ·
7 收藏

手撕HashMap源码2

问题1:当我们在扩容的时候,如果当前节点是红黑树的实例,他在节点迁移之后,他还会是一棵红黑树吗答案是不一定,迁移当前桶位以及后面的节点,它是变成一棵红黑树还是单链表,取决于当前链表的迁移数目,是否大于链化阈值,如果当前链表的节点,比如低位链表的节点数目小于等于链化阈值,默认是6这个值,那么他就会把这棵树变成一个单链表存放,也就是说它会调用untreeify方法,内部会返回一个带头节点的单链表。问题2:如果当前桶位是一个树化节点,他一定会被重新树化吗?
原创
发布博客 2023.12.19 ·
941 阅读 ·
23 点赞 ·
0 评论 ·
21 收藏

手撕HashMap源码1

其实就是在数组上面,然后不按照固定的索引去存放数据,这也是利用数组支持按照索引下标进行随机性访问的特性。其中,索引的随机生成并且保证它的唯一性,就是我们哈希表的重要任务那么这个哈希值怎么算出来呢,一般我们会通过一个散列函数去进行计算得到,比如在HashMap的源码里面有下面这个散列函数上面这个哈希函数可以自行设计,它的设计思想就是先拿到key的原始哈希值,这个是系统给我们实现的函数函数,在Java中,每个类都继承自Object类,而Object类中有一个默认的hashCode()方法。这默认的。
原创
发布博客 2023.12.08 ·
1136 阅读 ·
16 点赞 ·
0 评论 ·
19 收藏

leetcode LCR24反转单链表

这个代码里面我加了我自己写的测试数据,自己可以去找对应的部分,直接粘贴赋值就可以在leetcode提交成功,我们就没有把迭代与递归单独分开了,里面还有大量的注释说明,请结合题目分析仔细观看。c语言版本测试代码,仅做参考。好了,祝早安,午安,晚安。
原创
发布博客 2023.11.28 ·
630 阅读 ·
7 点赞 ·
0 评论 ·
7 收藏

leetcode42接雨水问题

【代码】leetcode42接雨水问题。
原创
发布博客 2023.11.27 ·
625 阅读 ·
6 点赞 ·
0 评论 ·
10 收藏

java并发编程之基础与原理2

假设处理器A,B和C同时向总线发起总线事务,这时总线仲裁(Bus Arbitration)会对竞。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中。争做出裁决,这里假设总线在仲裁后判定处理器A在竞争中获胜(总线仲裁会确保所有处理器都。此时处理器A继续它的总线事务,而其他两个处理器则要等待处理器A的。是读事务还是写事务),处理器D向总线发起了总线事务,此时处理器D的请求会被总线禁止。总线的这种工作机制可以把所有处理器对内存的访问以串行化的方式来执行。
原创
发布博客 2023.11.18 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

树之手撕红黑树

简单说一下二叉搜索树与AVL树要学红黑树,首先你必须学会二叉搜索树,也就是二叉查找树,如果不会的同学,可以去看我写过的文章里面有那么这里我们来说一下AVL树他就是一个平衡二叉搜索树,什么叫平衡呢,就是一棵树维持一个稳定的二叉状态,维持一个稳定的高度,高度稳定了,它的查找时间复杂度也就低了,那么AVL树就是一个利用左右子树高度之差小于等于1的这样一个平衡因子来维持的树的平衡,一旦左右子树高度之差大于1,那么树就是开始旋转。下面来简单对比一下二叉搜索树和AVL树。
原创
发布博客 2023.11.18 ·
399 阅读 ·
4 点赞 ·
0 评论 ·
0 收藏

树之二叉排序树(二叉搜索树)

第三种情况:你删除的结点下面就是说还有左右子树,那么这个时候,我们就要去找到这棵树中序遍历结果之后的直接前驱或者直接后继,然后把这个前驱或者后继给按到删除结点这个位置上,将它下面的树移到被替换结点的位置。在上代码之前,先来说一下,二叉搜索树很多方法都利用了递归的思想,许多说明我都放到代码注释里面了,可以结合下面的这张图进行思维分析。再来看java的运行代码(algorithm/bst1)构造树的过程即是对无序序列进行排序的过程。通常采用二叉链表作为存储结构 不能。插入的新节点是以叶子形式进行插入的。
原创
发布博客 2023.11.11 ·
222 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis1之安装redis,启动,常用数据结构

是一个常见的系统目录,用于存放源代码文件。HSET key field value:添加或者修改hash类型key的field的值。SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行。HGETALL:获取一个hash类型的key中的所有的field和value。每一个数据类型的存储啊,它使用的命令都是不一样的 ,比如string类型。HGET key field:获取一个hash类型key的field的值。HKEYS:获取一个hash类型的key中的所有的field。
原创
发布博客 2023.11.02 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode82删除排序链表中的重复元素

上面就是如果头结点与它的next结点的值一样,那么就把这个头结点的next交给move结点,然后内部循环是否继续相等,知道不相等的时候跳出循环,继续以move为头结点进行递归,一旦到了一个与next不相等的位置,那么就把这个当前move指针的next继续下面递归,直到最后next等于NULL时候,停止递归,开始返回数据。那么最早的头一定是最晚返回的数据,所以最后的head,一定就是头结点了。外部循环判定卡住的位置。好了,祝大家早安午安晚安。具体分析一下指针移动。
原创
发布博客 2023.11.01 ·
180 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java并发编程之基础与原理1

当一个线程修改了变量的值后,会将新值同步回主内存,而其他线程在读取这个变量的值之前,会先从主内存中刷新(获取)变量的最新值,而不是直接从自己的工作内存中读取。下面讲一个Thread.yield(),他会释放当前线程的时间片,让当前线程进入一个可运行状态,并且保存数据,下次这个线程在次执行的时候,如果发现主内存已经修改了某个共享变量,就会从主内存去获取这个共享变量的值。,这个变量实际上在计算机内存中有两个位置保存着它的值:一个是主内存(主存,RAM),另一个是线程的工作内存(缓存,CPU缓存)。
原创
发布博客 2023.10.19 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

单链表习题(对应章节chapter2)

这里说一下我用到自己之前写的一个单链表的动态库,不会的同学可以参考我在Linux专栏动态库与静态库制作,后面就不在多说了。参考代码:位置(/chapter2/c++/middle-link-list-node/lc1.cc)第一种思路分析:考虑指针移动到相应的位置来做。题目1:链表的中间结点。
原创
发布博客 2023.10.09 ·
169 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

javaee之Elasticsearch相关知识

比如:小米电视,他会查出小米相关的产品,会查出电视相关的产品,也就是小米与电视是进行分词处理的。某个结果查询多了就会在搜索结果中排的更高。我们可以去kibana看一下是否创建成功。下面为了测试聚合,我们创建一个新的索引。下面就是更改了id=1的所有数据。说一下查询之后,一些属性的含义。下面我们要用聚合创建的索引库。下面我们构建一个demo工程。我们还可以用下面的方式来查。下面是之前创建的一个索引库。这种类型的字段可以分词处理。看一下原始索引库的模板。下面是我索引库中的内容。我们可以查出所有的数据。
原创
发布博客 2023.10.08 ·
317 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

算法的时间复杂度分析习题专题1

时间复杂度为O(nlogn)明显与题目要求不符合,no_pass。之前写了一篇重点是讲理论,今天重点在于对于题目的分析。题目难度不分先后,有题目来源会直接给出链接或者位置。下面是第二种思路分析。时间度O(n),通过。
原创
发布博客 2023.09.29 ·
561 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

javaee之通用mapper

这个是通用Mapper的一个基础类,继承这个类,传入我们需要的一个实体类对象,就可以在这个类里面轻松实现对表的数据操作,而无需写任何多余的sql语句,注意这个类是一个接口。这里说一下上面返回的Page对象,其实他就是一个LIst对象,只是它带了一些分页的信息在里面。它本身就依赖一个jpa的依赖,通用mapper的整体依赖就包含了通用mapper的核心依赖。其实就是插入的语法,里面是包含的哪一个表,一个实体对象进来其实就是一个数据表进来嘛。看一个下面的情况,为什么还可以接收Page这个对象,这个是个什么?
原创
发布博客 2023.09.26 ·
630 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

javaee之黑马乐优商城6

另外还需要注意的是,这个整体的大表单数据是向spu这张表里面做的插入,所以我们必须给spu进行属性的扩展,扩展一些spu本身没有的属性,但是客户端又会传给我们的数据。我们去数据库里面看了一下,本身来说,sku里面是没有stock这个字段的,而这个字段是保存在tb_stock里面,又从某种情况来说,sku表与stock表是一张表。这里的想表达的是什么意思,其实就是当我们添加完了这个商品的最后,我们要添上我们新添加的商品的参数啊,但是这些参数是什么,我们需要通过关联分类id去找这个参数。
原创
发布博客 2023.09.26 ·
1317 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

javaee之黑马乐优商城5

我们大致想一下,id,title有个标题,sub_title子标题可能有,可能没有,然后我们还要考虑与分类的关系,我们之前是通过手机这个分类,找到它相关的参数组,然后通过参数组,又去找它具体的子参数,具体的子参数找到了,然后我们就要去找它具体的值,这个值在什么地方存在?我们查询spu的时候,根据不同的sku组合,我们需要取出这些特殊的键值对 ,那么这里的设计就是,我们选择上面各自分组当中的哪一个值,也就是下面这些组合当中,我们从中怎么去抽取。比如内存,颜色,这就是sku,比如下面这一段参数。
原创
发布博客 2023.09.21 ·
440 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

javaee之黑马乐优商城4

这张表就是规格参数组表的每一个组对应的具体的规格属性,这个可以这样来理解,就是参数组表里面存放的是表头,具体的规格参数名是放在这个规格参数表名里面,这张表的名字是tb_spec_param(明显与参数数组表是一个一(tb_spec_group)对多(tb_spec_param)的关系)首先分析一下,父类与它的直接子类关联的字段就是parent_id,也就是在一棵树中,同级之间的兄弟子类的parent_id都是一样的,于是我们可以进行下面的sql语句查询。
原创
发布博客 2023.09.19 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多