- 博客(16)
- 收藏
- 关注
原创 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?面试官心理分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是这整个就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致比如 Ra...
2019-11-20 23:00:45
196
转载 CAS原理 进阶篇(漫画版)
注:本文转自 程序员小灰 微信公众号~基础篇地址:https://blog.youkuaiyun.com/weixin_39788856/article/details/98721367CAS进阶篇这一期我们来深入介绍之前遗留的两个问题:1.Java当中CAS的底层实现2.CAS的ABA问题和解决方法首先看一看AtomicInteger当中常用的自增方法 incrementAndGet:...
2019-08-07 08:42:21
227
转载 CAS原理 基础篇(漫画版)
注:本文转自 程序员小灰 微信公众号~CAS基础篇示例程序: 启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果是什么呢?一定会是200吗?加了同步锁之后,count自增的操作变成了原子性操作,所以最终的输出一定是count=200,代码实现了线程安全。为什么这么说呢?关键在于性能问题。Synchronize...
2019-08-07 08:37:50
641
原创 JDK源码-Integer类
上节我们介绍过JDK源码-Float类本节我们介绍Integer类,Integer 类在对象中包装了一个基本类型 int 的值。Integer 类对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。一、实现方法Integer类是基本类型int的包装类,继承了Number类,...
2019-07-30 07:42:11
356
原创 JDK源码-Float类
上节我们介绍过JDK源码-Double类本节我们介绍Float,Float 类在对象中包装了一个基本类型 float 的值。此外,该类提供了多个方法,能在 float 类型与 String 类型之间互相转换,同时还提供了处理 float 类型时比较常用的常量和方法。一、实现接口Float类是基本类型float的包装类,继承了Number类,并且实现了Comparable接口public f...
2019-07-26 07:44:35
424
原创 JDK源码-Double类
上节我们介绍过JDK源码-Byte类本节我们介绍Double类,float 单精度浮点数在内存内占 4 个字节,用 32 位二进制描述,double 双精度浮点数在内存内占 8 个字节,用 64 位二进制描述。一、实现接口Double类是基本类型double的包装类,继承了Number类,并且实现了Comparable接口public final class Double extends...
2019-07-25 09:06:42
561
原创 JDK源码-Byte类
上节我们介绍过JDK源码-Boolean类本节我们介绍Byte类,Byte类主要的作用就是对基本类型byte进行封装,提供了一些处理byte类型的方法,比如byte到String类型的转换方法或String类型到byte类型的转换方法。java的基本数据类型byte、short、int、long、float、double、char所占的字节长度分别为1、2、4、8、4、8、2。byte即字节的...
2019-07-24 09:28:49
384
原创 JDK源码-Boolean类
上节我们介绍过JDK源码-StringBuffer类本节介绍Boolean类,Boolean是基本数据类型boolean的包装类,提供了一些常用的方法,比如String类型和boolean类型的转换。boolean的值只有两种,true或者false。一、实现接口Boolean类同时他实现了Serializable、Comparable接口,被定义为final,不能被继承,实现Compar...
2019-07-19 08:49:01
298
原创 JDK源码-StringBuffer类
上文我们介绍过JDK源码-StringBuilder类,StringBuffer同StringBuilder类类似,也是为了解决大量拼接字符串时产生很多中间对象问题,但是它和StringBuilder不同的是所有修改数据的方法都加上了synchronized,保证了线程安全,StringBuilder是线程不安全的,但是保证了线程安全是需要性能的代价的。使用场景:在多线程情况下,如有大量的字符串操...
2019-07-17 08:47:42
234
原创 JDK源码学习--StringBuilder类
上文我们介绍过JDK源码学习–String类,该类的内部用了一个char数组表示一个字符串对象的,只是该字符数组被final修饰,初始化之后就不能被修改,但是对于经常做字符串修改操作的情况下,String类就需要不断创建新对象,性能极低。StringBuilder内部也是封装的一个字符数组,只不过该数组非final修饰,可以不断修改。所以对于一些经常需要修改字符串的情况,我们应当首选StringB...
2019-07-16 09:44:38
294
原创 JDK源码学习--String类
String类String对象不可变,所以可以共享,当对象创建完之后,该对象的内容(字符序列)是不允许改变的,细看源码发现内容改变则会new一个新的String对象,返回到原地址中。String类维护的char数组被final所修饰,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,而原来的字符串还是存在的,并且产生垃圾实现接口public...
2019-07-12 09:04:47
336
原创 JDK源码学习--Object类
摘要大家都知道Object是所有类的父类,任何类都默认继承Object,因此省略了extends Object关键字。Objec类中的方法在任何一个java类中都可以使用,下面学习的类的顺序以jdk源码为准Object类的常用方法:定义为final类型,不能重写的方法:1、registerNatives方法:private static native void registerNati...
2019-07-05 09:37:39
263
原创 JDK源码学习
本文开启JDK源码学习笔记,对现有知识进行整理记录,希望多多指点。摘要JDK7源码下载路径目录的简介包、类整理一、下载路径(JDK8)源码包:http://download.java.net/openjdk/jdk8百度网盘:https://pan.baidu.com/s/12CCP3smDJsTPK3-2XXupHA 提取码:7Z8z二、目录简介目录说明...
2019-07-04 08:25:29
514
原创 mac nginx安装、启动、简单命令
一. brew 安装打开mac终端,输入以下命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装完成,路径信息:安装路径:/usr/local/Cellar/nginx/1.17.0配置文件路径:/usr/local/etc/nginx/nginx.c...
2019-07-03 07:41:19
9259
原创 MyBatis中 sql标签和include标签
<sql>用来封装SQL语句<include>来调用 <sql id="columns"> id,name,sex,birthday </sql> <select id="selectList" resultMap="Map"> SELECT <include refid="...
2019-06-16 11:42:16
1515
原创 Spring中的InitializingBean接口理解
InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。测试时代码:import org.springframework.beans.factory.InitializingBean;public class TestInitializingBean implement...
2019-04-09 13:18:29
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人