month177
码龄1年
关注
提问 私信
  • 博客:26,318
    26,318
    总访问量
  • 36
    原创
  • 26,900
    排名
  • 542
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:目前在Java方向发展

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

2302_80113478的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    341
    当月
    87
个人成就
  • 获得632次点赞
  • 内容获得55次评论
  • 获得528次收藏
创作历程
  • 29篇
    2024年
  • 7篇
    2023年
成就勋章
兴趣领域 设置
  • Java
    java
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

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

Java多线程进阶(锁策略)

但是,如果在偏向锁状态下,有某个线程也尝试来对这个对象加锁,立马把偏向锁升级成轻量级锁(真的加锁,真的有互斥了),相当于立即确认关系,也就可以保证锁能够正常生效。synchronized即使悲观锁也是乐观锁,既是轻量级锁也是重量级锁,轻量级锁是自旋转实现,重量级锁就是挂起等待锁实现,是可重入锁,不是读写锁,是非公平锁。{系统本身线程调度的顺序就是随机的,如果需要实现公平锁,就需要引入额外的队列,按照加锁顺序把这些获取锁的线程的线程入队列,再一个一个的取}可以保证此处的++--操作是原子的。
原创
发布博客 前天 22:03 ·
696 阅读 ·
15 点赞 ·
0 评论 ·
6 收藏

Java多线程(线程池)

标准库线程池ThreadPoolExector,使用起来比较复杂,构造方法中,包含很多参数。
原创
发布博客 2024.11.11 ·
238 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Java多线程(阻塞队列)

阻塞功能(1,队列为空,尝试出队列,出队列操作就会被阻塞,一直阻塞到队列不空为止2,队列为满,尝试入队列,入队列操作也会阻塞,一直阻塞到队列不满为止)队列有许多种:0.普通队列1.优先级队列2.阻塞队列(先进先出,线程安全,并且带有阻塞功能)3.消息队列 不是普通的先进先出,而是通过topic这样的参数来对数据进行归类,出队列的时候,指定topic,每个topic下的数据是先进先出的。(消息队列往往也会带有阻塞队列)通过代码来看一下阻塞队列/生产者消费模型。
原创
发布博客 2024.11.10 ·
222 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Java多线程(wait等待通知机制)

系统内部。线程是抢占式执行,随机调度,程序员也是有手段干预的,通过“等待”的方式,能够让线程一定程度的按照预期来执行,无法主动让某个线程被调度,但是可以主动让某个线程等待等待通知机制,就能够解决上述问题通过条件,判定看当前逻辑是否能够执行,如果不能执行,就主动wait(主动进行阻塞)就把执行的机会让给别的线程了,避免该线程进行一些无意义的重试。
原创
发布博客 2024.11.09 ·
672 阅读 ·
24 点赞 ·
0 评论 ·
9 收藏

Java多线程(锁的操作)

首先我们要先了解线程不安全的原因1)线程在系统中是随机调度的,抢占式执行的2)多个线程同时修改同一个变量3)线程针对变量的修改操作,不是“原子”的4)内存可见性问题,引起的线程不安全5)指令重排序,引起的线程不安全。
原创
发布博客 2024.11.08 ·
841 阅读 ·
32 点赞 ·
0 评论 ·
11 收藏

Java多线程(线程的等待)

多个线程,调度顺序,在系统中,是无序的(抢占式执行)上述代码中,main和t线程,之间的结束顺序是不确定的,如果希望让代码里面的t能够结束,main结束,就可以在main中使用线程等待main线程中调用t.join就是让main等待t,也就是t先结束,main后结束。
原创
发布博客 2024.11.07 ·
399 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

Java多线程的几种常见写法

多线程的几种写法。
原创
发布博客 2024.11.06 ·
248 阅读 ·
7 点赞 ·
0 评论 ·
1 收藏

Java中的JDBC的详解

Java提出的一套关于数据库操作的接口各个数据库厂商要把自己的api对接到/适配到jdbc上程序员只需要掌握一套api就可以操作不同的数据库了数据库厂商提供的这个原生api适配到jdbc转换程序,称为“数据库驱动包”
原创
发布博客 2024.11.05 ·
408 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

MySql中的索引与事务

show index from 表名;
原创
发布博客 2024.11.05 ·
745 阅读 ·
25 点赞 ·
0 评论 ·
10 收藏

MySQL数据库增删改查基础操作(超长详解)

数据库的基本操作。
原创
发布博客 2024.10.17 ·
1366 阅读 ·
8 点赞 ·
0 评论 ·
11 收藏

MySQL数据库基础知识详解

尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其 如此,还不如设计时,将int类型提升为bigint类型。1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就 是-2^31到2^31-1。如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则 不创建。数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除。
原创
发布博客 2024.06.23 ·
917 阅读 ·
15 点赞 ·
0 评论 ·
19 收藏

Map和Set的知识点详解

线性探测的缺陷是产生冲突的数据堆积在一块,这与其找下一个空位置有关系,因为找空位置的方式就是挨 着往后逐个去找,因此二次探测为了避免该问题,找下一个空位置的方法为:Hi = (H0 +i² )% m, 或者: = (H0 - i²)% m。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一 个问题,冲突的发生是必然的,但我们能做的应该是尽量的降低冲突率。已知哈希表中已有的关键字个数是不可变的,那我们能调整的就只有哈希表中的数组的大小。
原创
发布博客 2024.06.22 ·
997 阅读 ·
43 点赞 ·
0 评论 ·
22 收藏

优先级队列(堆)的知识点详解

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:2. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常。
原创
发布博客 2024.06.21 ·
1131 阅读 ·
40 点赞 ·
0 评论 ·
30 收藏

二叉树的基本操作以及一些二叉树相关例题

这个题我们首先进行结构上的判断,首先判断root节点是否为空,如果为空返回true,然后判断左右子树的节点,首先看左右子树是否为空,然后判断左右子树的值。这个题首先我们考虑他们是否相同,可以利用例题1的方法进行判断,第二种情况就是左边的是它的左子树,第三种情况就是右边的是它的右子树。第三种是两个都不为空,值不一样,不是两课相同的树。第一种是一个为空一个不为空,则不是两个相同的树。这个题需要找一个临时变量,然后进行交换。第二种是如果两个都为空,则是相同的树。这个例题需要首先考虑的是根的三种情况。
原创
发布博客 2024.06.20 ·
292 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

二叉树的知识详解

由于现在大家对二叉树结 构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按 照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。对于深度为K的,有n 个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。
原创
发布博客 2024.06.19 ·
1060 阅读 ·
15 点赞 ·
0 评论 ·
28 收藏

栈和队列的知识点详解

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。在实际工程中,使用Deque接口是比较多的,栈和队列均可以使用该接口。通过链表实现栈,可以使用单链表和双链表。
原创
发布博客 2024.06.18 ·
964 阅读 ·
10 点赞 ·
0 评论 ·
26 收藏

LinkedList与链表

(LinkedList的官方文档)LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。
原创
发布博客 2024.06.17 ·
886 阅读 ·
17 点赞 ·
2 评论 ·
28 收藏

Java中ArrayList和顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。
原创
发布博客 2024.04.22 ·
1056 阅读 ·
19 点赞 ·
8 评论 ·
18 收藏

Java包装类和泛型的知识点详解

一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化.方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { ... }
原创
发布博客 2024.04.11 ·
767 阅读 ·
34 点赞 ·
12 评论 ·
21 收藏

Java时间和空间复杂度的知识详解

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作 空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间, 在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计 算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。
原创
发布博客 2024.04.02 ·
691 阅读 ·
10 点赞 ·
5 评论 ·
12 收藏
加载更多