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

JavaQ

专栏作者
165
文章
187771
阅读量
52
订阅数
聊一聊Redis官方置顶推荐的Java客户端Redisson
写这篇的时候,相信有很多朋友还在用Jedis作为Redis的客户端,我不禁有很多问号,Jedis还香吗?如果你早些年说它香我信,但是都2020年了,它真的不那么香了。那为什么还继续使用它呢?大部分原因或多或少是因为遗留代码没人敢大动,就这样吧;二是新项目没人主导使用其它实现做替换。祖传代码不轻易大动,这个真理必须相信,且坚持相信;至于没人主导拍板做技术替换,可能是习惯了Jedis的用法,也可能是没人了解其它技术实现,当然还有其它原因,有兴趣分享的朋友可以在评论区聊一聊。咳咳,扯远了,来聊我们今天的话题-Redisson实战用法。
JavaQ
2020-10-29
2.7K0
我画了25张图展示线程池工作原理和实现原理,原创干货,建议先收藏再阅读
有朋友留言提到文中的场景是IO密集型操作,不是CPU密集操作,不需要使用线程池,我猜这位朋友可能想表达的是IO密集且阻塞时间久的不要使用线程池方案解决。IO密集型在控制好同步处理时间或阻塞等待的条件下是可以使用线程池的,不知道这么描述是否合理,有高见的大佬可以继续留言讨论。
JavaQ
2020-05-27
1.4K0
这样的API网关查询接口优化,我是被迫的
线上某系统的用户中心页面展示了用户基本信息(包括会员昵称、姓名、性别、年龄、证件号码、手机号、等级、头像图片)、信用信息(信用等级、可授信额度、已授信额度)、银行卡信息(借记卡卡号、银行名称、支行名称),还有其它信息不一一罗列了,这里以这三个为例。
JavaQ
2020-05-20
7730
没使用加号拼接字符串,面试官竟然问我为什么
小小白:主要是为了确保String对象中存储的值不会被改变,充分利用字符串常量池的优化策略,同时字符串对象的hashCode也不会被改变。如果String设计成可变的,那么自定义的类就可以通过集成String,重写其中的方法将其存储的值改变。如果String是可变的,将String类型变量作为参数传递的过程中,存储的将有可能会被改变,这样会导致安全隐患。
JavaQ
2020-03-31
1K0
String引发的提问,我差点跪了
面试官:下面代码执行结果是什么?String t0 = "helloworld";String t1 = new String("helloworld");System.out.println(t0==t1);
JavaQ
2019-12-12
3390
如何掌握所有的程序语言,对的,是所有
很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。
JavaQ
2019-11-25
8780
就写了一行代码,被问了这么多问题
小白:(是不是太基础了,暗笑)byte[] arrays = new byte[1024]。
JavaQ
2019-11-25
5560
synchronized连环问
synchronized是面试中经常会被问到的知识点,相关的问题点也很多,问题答案涉及的知识点也很多,有经验的面试官就会顺着你的答案不断追问一下,下面的对话场景就是相关面试题的连环炮。
JavaQ
2019-11-25
6090
【每天一道面试题】泛型是什么?类型擦除又是怎么回事?
泛型就是在编码时为为所操作的对象指定具体的数据类型,例如ArrayList<String>表明ArrayList中元素类型都为String,它同样可以应用在类、接口和方法上,分别称为泛型类、泛型接口和泛型方法。
JavaQ
2019-11-15
3830
【每天一道面试题】说一下ThreadLocal原理及会不会发生内存泄漏
ThreadLocal的实现原理是每一个Thread维护一个ThreadLocalMap映射表,映射表的key是ThreadLocal实例,并且使用的是ThreadLocal的弱引用 ,value是具体需要存储的Object。下面用一张图展示这些对象之间的引用关系,实心箭头表示强引用,空心箭头表示弱引用。
JavaQ
2019-11-12
5290
「每天一道面试题」如何理解Java中的happens-before?
happens-before是Java内存模型中定义的两个操作之间的偏序关系,即如果操作A在操作B之前先发生,那么操作A产生的操作结果,操作B可以观察到,或者说操作A的结果影响到操作B。可以认为Java内存模型中的这种与生俱来的原则实现了可见性和顺序性。
JavaQ
2019-11-12
4840
支撑海量数据的数据库架构如何设计?
作为一个全球人数最多的国家,一个再怎么凄惨的行业,都能找出很多的人为之付出。而在这个互联网的时代,IT公司绝对比牛毛还多很多。但是大多数都是创业公司,长期存活的真的不多。大多数的IT项目在注册量从0-100万,日活跃1-5万,说实话就这种系统随便找一个有几年工作经验的高级工程师,然后带几个年轻工程师,随便干干都可以做出来。 因为这样的系统,实际上主要就是在前期快速的进行业务功能的开发,搞一个单块系统部署在一台服务器上,然后连接一个数据库就可以了。接着大家就是不停的在一个工程里填充进去各种业务代码,尽快把公司的业务支撑起来。
JavaQ
2019-06-02
1.1K0
高并发编程-HashMap深入解析
在JDK1.8以前版本中,HashMap的实现是数组+链表,它的缺点是即使哈希函数选择的再好,也很难达到元素百分百均匀分布,而且当HashMap中有大量元素都存到同一个桶中时,这个桶会有一个很长的链表,此时遍历的时间复杂度就是O(n),当然这是最糟糕的情况。
JavaQ
2018-12-17
5030
三分钟学习分布式ID方案
在分布式系统中,当数据库数据量达到一定量级的时候,需要进行数据拆分、分库分表操作,传统使用方式的数据库自有的自增特性产生的主键ID已不能满足拆分的需求,它只能保证在单个表中唯一,所以需要一个在分布式环境下都能使用的全局唯一ID。
JavaQ
2018-07-26
3990
HashMap死循环精简说
在JDK1.8之前的版本中,HashMap的底层实现是数组+链表。当调用HashMap的put方法添加元素时,如果新元素的hash值或key在原Map中不存在,会检查容量size有没有超过设定的threshold,如果超过则需要进行扩容,扩容的容量是原数组的两倍,具体代码如下:
JavaQ
2018-07-25
9780
如何用六点教会老婆写 Python ?
code就就是一种语言,一种计算机能读懂的语言。计算机是一个傻逼,他理解不了默认两可的任何东西。比如,你让你老公去买个西瓜,你老公会自己决定去哪里买,买几个,找个搞活动打折的买,总之,你给他钱,他就给你买回来让你吃到爽的西瓜。但是,你想让计算机买一个西瓜?你要告诉他:去门口的鲜丰水果店买,买沙瓤无子西瓜,若旁边的店打折,就去旁边的店买。总之,你不能让计算机做任何决定,你要清楚的告诉他所有情况下的所有的行为。而code,就是你和计算机交流的语言,或者说是对计算机的命令。
JavaQ
2018-07-25
4110
HashMap在JDK1.8前后区别精简说
在JDK1.8以前版本中,HashMap的实现是数组+链表,它的缺点是即使哈希函数选择的再好,也很难达到元素百分百均匀分布,而且当HashMap中有大量元素都存到同一个桶中时,这个桶会有一个很长的链表,此时遍历的时间复杂度就是O(n),当然这是最糟糕的情况。 在JDK1.8及以后的版本中引入了红黑树结构,HashMap的实现就变成了数组+链表或数组+红黑树。添加元素时,若桶中链表个数超过8,链表会转换成红黑树;删除元素、扩容时,若桶中结构为红黑树并且树中元素个数较少时会进行修剪或直接还原成链表结构,以提高后
JavaQ
2018-04-08
7490
多参数方法进阶
很多高级工程师还在写包含N个参数的方法、使用setter方法构造实例,其实这些方式都是过时并且有很大缺陷的,本篇将深入讲解这些问题及解决方法。 多参数方法的问题 相信很多人曾经都写过多参数的构造方法,
JavaQ
2018-04-08
9580
拒绝一针串到底式参数类
当参数个数多于三个的时候,通常会将这些参数封装到一个类中,进而形成参数类。参数类通常是类间或方法间进行通信的纽带,起到承上启下的作用。 基本上一个稍微有些规模的项目都会由多个模块组成,而这些模块的内部又都会分为多个层级,如controller、service、dao等。如果一个参数类被像针一样,一传到底,跨越多个模块、多个层级,结果会导致坑越来越深。下面来一一细说这些深坑。 牵一发而动全身 举个例子,一个项目由A、B、C三个模块组成,A模块用于接收http请求,相当于网关;B模块提供具体的业务处理服务;C模
JavaQ
2018-04-08
4590
你写的单例真的对吗
单例模式是设计模式中最容易理解、最容易上手的设计模式,同时也是最容易出错的设计模式。它的实现写法有多种,但是并不都是正确的写法。 1饿汉模式 饿汉,即迫切的、立马的,所以饿汉模式又称作立即加载,下面代码实现是它最普遍的写法。 public class SingletonObject { private static final SingletonObject singletonObject = new SingletonObject(); private Singleto
JavaQ
2018-04-04
6900
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档