首页
学习
活动
专区
工具
TVP
发布

Java程序员那些事

专栏作者
64
文章
93989
阅读量
15
订阅数
mysql系列-锁
上面的查询语句中,我们使用了select…for update的方式,这样就通过开启排他锁的方式实现了悲观锁。
用户6182664
2022-11-14
4010
mysql系列-索引
常见的数据结构中, 哈希表和二叉平衡树的查找效率分别是O(1)和O(logn), 是效率最快的两个, MySQL也毫不意外的使用了这两种数据结构来做索引。 MySQL索引的数据结构有两种选择, B+Tree 和 Hash。
用户6182664
2022-11-14
6140
分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道来。一般而言,对于推广营销类短信,它们针对某一群体(譬如注册会员)进行定点推送,有时这个群体的成员量比较大,甚至可以达到千万级别。因此相应的,发送推广短信的量也会增大。然而,要完成这些短信发送,我们是需要调用服务商的接口来完成的。倘若一次发送的量在200万条,而我们的服务商接口每秒能处理的短信发送量有限,只能达到200条每秒。那么这个时候就会产生问题了,我们如何能控制好程序发送短信时的速度昵?于是限流这个功能就得加上了
用户6182664
2020-05-11
4.4K0
基于atomic包分析CAS原理
不想上来就贴上来千篇一律的各种概念,懂得人我不说也懂,不懂得看完概念依然不懂,用码说话,先看个小demo,开五个线程,每个线程累计1000次操作共享变量,共享变量分别使用int和基于CAS的AtomicInteger
用户6182664
2020-05-11
3670
ThreadLocal原理
ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问。
用户6182664
2020-05-09
4620
使用Guava RateLimiter限流以及源码解析
首先通过RateLimiter.create(1);创建一个限流器,参数代表每秒生成的令牌数,通过limiter.acquire(i);来以阻塞的方式获取令牌,当然也可以通过tryAcquire(int permits, long timeout, TimeUnit unit)来设置等待超时时间的方式获取令牌,如果超timeout为0,则代表非阻塞,获取不到立即返回。
用户6182664
2020-05-08
1.1K0
synchronized源码分析
(3)修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁
用户6182664
2020-05-07
3920
探讨Java中的父子类转化问题
------------------------------------------------------------------------------------------------------------------------------------
用户6182664
2020-05-07
3.8K0
JS字符串false转boolean
大家都知道在JS的世界里, 0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的"false"是不是false呢,答案是否定的,if ("false") 来判断的话,是等于true的
用户6182664
2020-05-06
13.5K1
反射(四)
在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法
用户6182664
2019-12-30
2390
HashMap源码要点整理
size和ArrayList一样,是map中实际存入数据的多少,而非数组table的长度。threshold是map需要扩容的限值,loadFactor则是当前hash存储结构的装载因子。table是实现hash存储的主要结构,是一个Entry数组。简单看下(HashMap的)Entry结构
用户6182664
2019-12-11
2780
《JAVA与模式》之策略模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
用户6182664
2019-12-02
4000
JavaScript之数据类型
  JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
用户6182664
2019-12-02
5350
JavaScript之引用类型
  Object类型是JavaScript中使用最多的一种类型。虽然Object的实例不具备多少功能,但对于在应用程序中存储和传输数据而言,它确实是非常理想的选择。
用户6182664
2019-12-02
1.4K0
面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类的。Java5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
用户6182664
2019-11-22
7930
sessionStorage的使用
localStorage对象是HTML5的客户端存储持久化数据的方案。为了能访问到同一个localStorage对象,页面必须来自同一个域名,使用同一种协议,在同一个端口上。
用户6182664
2019-11-14
1.1K0
十大经典排序算法最强总结
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
用户6182664
2019-10-14
4620
HashTable原理和底层实现
上次讨论了HashMap的结构,原理和实现,本文来对Map家族的另外一个常用集合HashTable进行介绍。HashTable和HashMap两种集合非常相似,经常被各种面试官问到两者的区别。
用户6182664
2019-10-14
2.9K0
JDK7的Comparison method violates its general contract异常
前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又进一步研究了一下这个神奇的算法。
用户6182664
2019-10-08
1.5K0
JavaScript 中 call()、apply()、bind() 的用法
比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ;
用户6182664
2019-09-27
8090
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档