腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
须臾之余
随缘
专栏成员
举报
90
文章
97190
阅读量
22
订阅数
订阅专栏
申请加入专栏
全部文章(90)
编程算法(29)
java(27)
spring(14)
网络安全(12)
sql(11)
缓存(11)
数据库(7)
容器(7)
mybatis(7)
node.js(6)
云数据库 Redis(6)
网站(5)
http(5)
jdk(5)
servlet(4)
xml(4)
mvc(4)
jvm(4)
aop(4)
数据分析(4)
https(4)
javascript(3)
android(3)
ide(3)
jar(3)
linux(3)
hashmap(3)
云数据库 SQL Server(2)
unix(2)
serverless(2)
jdbc(2)
数据结构(2)
任务调度(2)
key(2)
费用中心(1)
其他(1)
自动驾驶(1)
c++(1)
web.py(1)
打包(1)
maven(1)
nginx(1)
容器镜像服务(1)
文件存储(1)
企业(1)
数据安全(1)
分布式(1)
面向对象编程(1)
tcp/ip(1)
gradle(1)
spring cloud(1)
大数据(1)
虚拟化(1)
add(1)
executorservice(1)
handler(1)
im(1)
jetty(1)
join(1)
max(1)
mutex(1)
mysql(1)
port(1)
push(1)
show(1)
status(1)
synchronized(1)
table(1)
threadpoolexecutor(1)
unique(1)
插件(1)
基础(1)
命令行(1)
思维导图(1)
线程(1)
线程池(1)
源码(1)
搜索文章
搜索
搜索
关闭
多线程进阶——JUC并发编程之Synchronized底层实现概论🔥
编程算法
jvm
java
数据分析
Java中提供了两种实现同步的基础语义: synchronized 方法和 synchronized 块 ,先来个案例进行分析!
须臾之余
2021-12-28
249
0
多线程进阶——JUC并发编程之Semaphore源码一探究竟?
编程算法
上面两个构造函数,默认构造函数是非公平锁来实现,通过设置构造参数 fail 来选用公平策略还是非公平策略。
须臾之余
2021-07-27
328
0
多线程进阶——JUC并发编程之CyclicBarrier源码一探究竟?
javascript
编程算法
node.js
在上文中我们分析完了 CountDownLatch源码,可以理解为减法计数器,是基于AQS的共享模式使用,而CyclicBarrier相比于CountDownLatch 来说,要简单很多,它类似于加法计数器,在源码中使用 ReentrantLock 和 Condition 的组合来使用。
须臾之余
2021-07-27
298
0
多线程进阶——JUC并发编程之CountDownLatch源码一探究竟?
编程算法
javascript
node.js
JDK的并发包中提供了几个非常有用的并发工具类。 CountDownLatch、 CyclicBarrier和 Semaphore工具类提供了一种并发流程控制的手段。本文将介绍CountDownLatch(闭锁)的实现原理。在了解闭锁之前需要先了解AQS,因为CountDownLatch的实现需要依赖于AQS共享锁的实现机制。
须臾之余
2021-07-27
335
0
面试官问我 三色标记原理我直接蒙了
编程算法
企业
什么是三色标记? 为啥需要三色标记呢? 相比之前的标记清除算法,其GC执行期间需要把整个程序完全暂停,不能异步执行GC操作。对实时性要求比较高的系统来说,这种需要长时间挂起的标记清除算法是不可接受的,而三色标记算法就很好的解决了这个问题。 三色标记最大的好处是可以异步执行,从而可以以中断时间极少的代价或者完全没有中断操作来进行整个GC。 三色标记具体指那三色? 白色、灰色和黑色。 黑色:根对象,或者该对象与它的子对象都被扫描过。 灰色:对象本身被扫描,但是还有没扫描该对象的子对象。 白色:
须臾之余
2020-10-26
3.3K
0
虚拟机的前世今生和Java内存区域 顶
java
虚拟化
编程算法
jvm
打包
Java程序执行过程 javac编译成.class文件,然后jvm将其加载到方法区,执行引擎将会执行这些字节码,执行时会翻译成操作系统相关函数,jvm作为.class文件的翻译存在,输入字节码,调用操作系统函数。 过程如下:Java文件->编译器->字节码->jvm->机器码。 JVM、JRE、JDK的关系 JVM充当翻译的角色,把class翻译成机器识别的代码。 JRE包含jvm,还提供很多类库(也就是jar包,比如读取或者操作文件,连接网络,使用IO等)JVM标准加上实现的一大堆基础类库,组
须臾之余
2020-07-21
396
0
MySQL调优系列——MySQL B+Tree索引和Hash索引的区别?
https
编程算法
网络安全
1、B+Tree索引 1、B+Tree首先是有序结构,为了不至于树的高度太高,影响查找效率,在叶子节点上存储的不是单个数据,提高了查找效率; 为了更好的支持范围查询,B+树在叶子节点冗余了非叶子节
须臾之余
2020-02-25
3.8K
0
深入浅出理解HashMap1.8源码设计思想&手写HashMapV1.0
hashmap
serverless
编程算法
数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n)
须臾之余
2019-12-03
719
0
布隆过滤器redis缓存 顶
数据结构
编程算法
Bloom Filter布隆过滤器 算法背景 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希 表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存。很多时候要么是以时间换空间,要么是以空间换时 间。 在响应时间要求比较严格的情况下,如果我们存在内里,那么随着集合中元素的增加,我们需要的存储空间越来越大,以及检索的时间越 来越长,导致内存开销太大、时间效率变低。 此时需要考虑解决的问题就是,在数据量比较大的情况下,既满足时间要求,又满足空间的要求。即我们需要一个时间和空间消耗都比较 小的数据结构和算法。Bloom Filter就是一种解决方案。 Bloom Filter 概念 布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以 用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。 它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元 素不再集合,那肯定不在。如果判断元素存在集合中,有一定的概率判断错误。因此,Bloom Filter”不适合那些“零错误的应用场合。 而在能容忍低错误率的应用场合下,Bloom Filter比其他常见的算法(如hash,折半查找)极大节省了空间。 Bloom Filter 原理 布隆过滤器的原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,我 们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检 元素很可能在。这就是布隆过滤器的基本思想。 Bloom Filter跟单哈希函数Bit-Map不同之处在于:Bloom Filter使用了k个哈希函数,每个字符串跟k个bit对应。从而降低了冲突的概 率。
须臾之余
2019-08-28
911
0
算法从小白到大神之荷兰国旗问题&快排&堆排 顶
编程算法
给定一个数组arr,和一个数num,请把小于等于num的数放在数 组的左边,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) 问题二(荷兰国旗问题) 给定一个数组arr,和一个数num,请把小于num的数放在数组的 左边,等于num的数放在数组的中间,大于num的数放在数组的 右边。 要求额外空间复杂度O(1),时间复杂度O(N)
须臾之余
2019-08-23
1.3K
0
算法之时间复杂度&几种排序算法探究 顶
编程算法
归并排序的细节讲解与复杂度分析 时间复杂度O(N*logN),额外空间复杂度O(N)
须臾之余
2019-08-22
460
0
两个Integer的引用对象传递给一个swap方法的内部进行交换,返回后,两个引用的值是否会发生变化
缓存
编程算法
数组元素作为函数的实参时,用法跟普通变量作参数相同,将数组元素的值传递给形参时进行函数体调用,函数调用完返回后,数组元素的值不变。这种传递方式是”值传递“方式,即只能从实参传递给形参,而不能从形参传递给实参
须臾之余
2019-08-20
3K
1
Java集合源码分析之LinkedList
编程算法
文件存储
前面一篇我们分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表?
须臾之余
2019-08-13
450
0
Java集合源码分析之ArrayList
编程算法
java
数据结构
分析一个类的时候,数据结构往往是它的灵魂所在,理解底层的数据结构其实就理解了该类的实现思路,具体的实现细节再具体分析。
须臾之余
2019-08-09
345
0
Spring5.0源码深度解析之SpringBean的生命周期终结
spring
编程算法
java
那么这个MemberServiceImpl对象是交给spring到底是通过反射还是其它方式初始化的?
须臾之余
2019-07-31
645
0
Java并发编程笔记——J.U.C之executors框架:ThreadPoolExecutor
编程算法
任务调度
在J.U.C之executors框架:executors框架设计理念的章节中,我们已经简要介绍过ThreadPoolExecutor了,通过Executors工厂,用户可以创建自己需要的执行器对象。ThreadPoolExecutor,它是J.U.C在JDK1.5时提供的一种实现了ExecutorService接口的执行器,或者说线程池。
须臾之余
2019-07-30
603
0
ArrayList和CopyOnWriteArrayList面试题总结与源码分析
编程算法
java
首先我们来看List接口,如上因为ArrayList和CopyOnWriteArrayList都是实现了List接口,所有查看其相应的方法即可。
须臾之余
2019-07-19
1.7K
0
抽象同步队列AQS——AbstractQueuedSynchronizer锁详解
编程算法
谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!
须臾之余
2019-07-19
459
0
六个面试题层层剖析——LongAddr原子类 顶
缓存
编程算法
可以看到,Cell的构造很简单,其内部维护一个被声明为Volatile的变量,保证了内存的可见性。
须臾之余
2019-07-18
895
0
并发编程原理剖析——Java并发包中原子操作类原理剖析
数据分析
jdk
编程算法
代码(1)通过Unsafe。getUnsafe()方法获取到Unsafe类的实例,因为AtomicLong类也是在rt.jar包下的,AtomicLong类就是通过BootStrap类加载器加载的。
须臾之余
2019-07-10
521
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档