
J2SE
文章平均质量分 87
JoeKerouac
前阿里程序员
展开
-
一文读懂rabbitMQ和rocketMQ的消息可靠性机制
一文读懂rabbitMQ和rocketMQ的消息可靠性机制在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化; 发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,原创 2021-11-10 15:43:40 · 2658 阅读 · 0 评论 -
java基础类型的装箱拆箱
java基础类型的装箱拆箱通过本文能了解哪些知识?为什么基本数据类型拆箱有可能会报空指针异常? 基本数据类型的装箱与拆箱操作是如何实现的?自动拆箱首先我们有如下代码:public class Test{ static { Integer integer = new Integer(1234); int i = integer; ...原创 2019-11-12 20:01:17 · 208 阅读 · 0 评论 -
异常警告之-ConcurrentModificationException
异常分析相信写过一些Java代码的人都遇到过这个异常,一般都是由以下代码引起的:import java.util.List;import java.util.ArrayList;public class Test{ public static void main(String[] args){ List<String> list = new Arra...原创 2019-11-12 19:53:38 · 425 阅读 · 0 评论 -
由一个死循环引出的一系列问题及思考
一次粗心引起的死循环场景一次系统升级中,需要修改一个需求,而这个需求需要修改一个for循环的次数,原循环如下:for(byte i = 0 ; i 30 ; i++){ //do something}而修改后如下:for(byte i = 0 ; i 300 ; i++){ //do something原创 2018-02-05 16:45:30 · 350 阅读 · 0 评论 -
如何打造一个百万用户的IM后台(1)
如何打造一个百万用户的IM后台(1)聊天应该是当代人使用频率最高的软件,相信很多java使用者在初学java中socket部分时也会自己写一个聊天软件服务器。那么,如何才能写一个能够提供百万并发能力的IM后台呢?1问题分析要想写一个百万并发的IM后台,首先得知道将要面临什么样的问题,首先是IO模型,传统的BIO模型是肯定不行的,那么就只能使用NI原创 2018-02-05 16:49:25 · 5404 阅读 · 0 评论 -
多线程概述
多线程概述由于CPU核心越来越多,现代编程中总少不了多线程,而多线程编程在java中是比较容易的,这也算是java的一大优势。多线程编程,总避不开一个话题,那就是线程安全。那么,如何保证线程安全呢?可能很多人第一时间想到的就是锁,是的,锁是一个很好的解决方案,那么有没有更好的方案呢?答案也是有的。那么,不用锁如何做到线程安全呢?首先我们需要了解,为什么会有线原创 2018-02-05 16:50:44 · 302 阅读 · 0 评论 -
高效搜索数据结构之红黑树简介
之前介绍java中的HashMap时有说到过红黑树,今天就来讲讲红黑树。首先学习红黑树之前要了解二叉树以二叉搜索树。二叉树是一种基本的数据结构,本身结构也很简单,结构如下图所示:图(1)上图所示就是一个简单的二叉树,每个节点都最多有两个子节点(可以为空),每个节点最多有一个父节点(根节点没有父节点),其中1就是根节点。而二叉搜索树就是原创 2018-02-05 16:54:51 · 291 阅读 · 0 评论 -
如何优雅的写代码
如何优雅的写代码为什么别人的代码看起来那么优美,而我的代码就像一坨翔?相信很多新人都会有这样的疑问吧,看各种框架的代码看着感(根)觉(本)特(看)别(不)溜(懂),而自己写出来的代码怎么看怎么不顺眼,为什么呢?规范!!!规范!!!规范!!!是的,一切都是规范问题,如果你看各种框架代码看得多了你会发现,他们好像大都是一个套路,一个说不上来的套路,看起来就很舒服原创 2018-02-02 23:29:24 · 4498 阅读 · 5 评论 -
性能杀手—伪共享
在之前的一篇文章<java缓存行与volatile>中有讲到缓存行,同时说到了可能导致的一个问题,但是并没有讲完,本文就继续讲解该问题。原创 2017-10-30 22:17:59 · 316 阅读 · 0 评论 -
java数据结构之ArrayList
相信大多数接触java时最早接触的一个数据结构就是ArrayList了,然而ArrayList是如何工作的,内部又是怎样的实现,相信很多人都没有看过或者看过但早已忘记。那么,ArrayList作为java中最基础最常用的数据结构之一,我们就有必要去深入的了解一下ArrayList是如何工作的了。ArrayList构造器简介在java中,一切皆对象,一切操作又离不开对象,Ar原创 2017-06-14 08:40:31 · 351 阅读 · 0 评论 -
发布项目到maven中央仓库
可能很多人都在用maven仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的maven项目。往maven中央仓库发布组件的过程是与Sonatype工作人员交互的过程,这个过程是在Sonatype的JIRA平台上完成的,过程如下: 在Sonatype的JIRA注册 提交一个issue(提出一个发布申请原创 2017-06-13 13:53:46 · 2322 阅读 · 5 评论