自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

武汉红喜

https://github.com/javahongxi

  • 博客(25)
  • 资源 (4)
  • 收藏
  • 关注

原创 【转载】一致性hash算法与server列表维护(备忘)

普通的hash算法有个很大的问题:当hash的"模数"发生变化时,整个hash数据结构就需要重新hash,重新hash之后的数据分布一定会和hash之前的不同;在很多场景下,"模数"的变化时必然的,但是这种"数据分布"的巨大变化却会带来一些麻烦.所以,就有了"一致性hash",当然学术界对"一致性hash"的阐述,还远远不止这些.    在编程应用方面,最直观的例子就是"分布式缓存",一个

2016-01-22 09:45:06 368

原创 【转载】相对平均分布

本文转载自http://shift-alt-ctrl.iteye.com/blog/1961598 有一个项目用来负责调度集群中的"cron任务",比如一个application中可以配置N个定时任务,这些任务信息最终注册到zookeeper上,并开发了一系列代码用于维护这些任务的"活性";当applicaton中一个server故障,那么这个server上接管的任务,需要迁移到其他ser

2016-01-22 09:45:00 490

原创 【转载】java 排序算法

本文转载自http://shift-alt-ctrl.iteye.com/blog/1888827 一.冒泡排序特点:实现简单,无额外空间消耗,速度较慢,适合数据较少的场景,复杂度为O(N^2)思路:每一轮比较都从头开始,然后两两比较,如果左值比右值大,则交换位置,每一轮结束后,当前轮"最后一个元素"必将是最大的. 场景:算法稳定,数据量较小的场景。时间复杂度O(n^2)

2016-01-22 09:44:55 220

原创 【转载】JVM垃圾回收

本文转载自http://shift-alt-ctrl.iteye.com/blog/1842714 一.对象查找    在对对象回收之前,需要首先查找出亟待回收的对象,在JVM中,采取"根检索"算法来查找"死亡"的对象;这个算法的基本思想是通过一系列名为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径为对象引用链;如果一个对象到GC Roots上没有任何引

2016-01-22 09:44:37 311

原创 SemaphoreTest

package com.ixhong.base.thread;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class SemaphoreTest { publ

2016-01-22 09:44:26 311

原创 ExecutorService

一.ExecutorService:它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单,但是很重要,重要在这种设计的模式上。。 ExecutorService在Executor的基础上增加了“service”特性的方法:shutdown()、shutdownNow()

2016-01-22 09:44:20 355

原创 CompletionService

一.CompletionService接口提供了可以操作异步任务的功能,其唯一实现的API为ExecutorCompletionService。此API只是可以获取异步任务执行的结果,它不是ExecutorService。其有5个核心方法:Future poll():同步操作,获取并移除第一已经完成的任务,否则返回null。Future poll(timeout):同步操作,获取并移

2016-01-22 09:44:14 443

原创 JDBC中Connection解惑

参考http://shift-alt-ctrl.iteye.com/blog/1967020 关于JDBC中关于Connection的两个疑问: 1.Connection实例是线程安全的吗?    即一个connection实例,在多线程环境中是否可以确保数据操作是安全的?Java代码  private static Connection connection;   ...

2016-01-22 09:44:09 3183

原创 【转载】BitSet

本文转载自http://shift-alt-ctrl.iteye.com/blog/2194519 JAVA中BitSet就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用bit位上的1或0来表示;一个bit具有2个值:0和1,正好可以用来表示false和true。对于判断“数据是否存在”的场景,我们通常使用HashMap来存储,不过hashmap这个数据结构KEY和Value

2016-01-22 09:44:03 349

原创 【转载】JAVA内存模型和线程安全

本文转载自http://shift-alt-ctrl.iteye.com/blog/1845309 一.JAVA内存模型(JMM,JAVA Memory Model):    运行时涉及到两种内存,主内存和工作区内存,其中工作区内存通常为CPU的高速缓存区用来加快内存数据读取操作的(各线程独立).所有的变量内容都存在主内存中,当需要对内存数据进行操作时,数据将会从主存中load到工作区

2016-01-22 09:43:40 276

原创 【转载】并发数据结构

本文转载自http://shift-alt-ctrl.iteye.com/blog/1841084 请首先参考:http://shift-alt-ctrl.iteye.com/blog/1839142一.BlockingDeque阻塞双端队列(线程安全):注意ArrayDeque和LinkedList仅仅扩展了Deque,是非阻塞类型的双端队列。BlockingQueue单向队

2016-01-22 09:43:28 626

原创 BlockingQueue

package com.ixhong.base.thread;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;public class ArrayBlockingQueueTest { public static void main(S

2016-01-22 09:43:22 249

原创 【转载】Reference

本文转载自http://shift-alt-ctrl.iteye.com/blog/1839163 前言:java提供了几种引用类型,以方便编程者跟踪对象生命周期。    Reference抽象类提供了除强引用之外的其他引用类型基本功能。ReferenceQueue是一个队列(内部实现为一个Reference的列表),用于注册那些GC检测到不可达(即将会被回收)对象。    每个r

2016-01-22 09:43:11 387

原创 【转载】ArrayList 中数据删除

本文转载自http://shift-alt-ctrl.iteye.com/blog/1839147 在循环arrayLlist时,经常会遇到remove操作,那么arrayList的remove的底层是怎么做的?AbstractList中,有一个属性modCount,这个属性是跟踪list中数据被修改的次数,任何对list的add/remove操作,都将导致modCount++.在

2016-01-22 09:43:05 526

原创 Lock&Condition

package com.ixhong.base.thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreeConditio

2016-01-22 09:42:59 328

原创 生产者消费者实例

package com.ixhong.base.thread.base;public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); new Thread(new Producer(ss, "

2016-01-22 09:42:54 367

原创 【转载】JVM类加载机制小结

本文转载自http://shift-alt-ctrl.iteye.com/blog/1845137 一.类加载       虚拟机把class文件加载至内存之后,对字节码数据进行校验/解析/初始化等操作,最终形成可被VM直接使用的java类型,这就是虚拟机类加载机制.类的加载完全可以在运行时进行,这给VM提供了动态加载类提供了可行性.    类生命周期过程大概分为:加载-->校验-

2016-01-22 09:42:48 311

原创 【转载】JVM内存分配与调优参数列表

本文转载自http://shift-alt-ctrl.iteye.com/blog/1842631 一.运行时数据区: 程序计数器:它是一块较小的内存空间,主要作用是当前线程所执行的字节码的行号指示器.由于java虚拟机的多线程是通过轮流切换并分配处理器执行时间的方式来实现的(协作式/抢占式?!),即任何时刻,任一CPU只会正在处理一个线程的指令;为了确保线程切换后能够正确恢复

2016-01-22 09:42:42 350

转载 JMS 概述

本文转载自http://shift-alt-ctrl.iteye.com/blog/1902820一.JMS使用场景: JMS是为"消息"而生,从使用的角度来说,任何可以与业务解耦的数据均可以作为"消息"存储;任何结构化(格式严格,适合解析)但未索引化(不能被随意检索)的数据均可以交付给JMS存储,但尽管JMS不是为存储而生. 1) 异构系统(应用)中,如果数据的交互...

2016-01-22 09:42:36 569

原创 【转载】try-catch

本文转载自http://shift-alt-ctrl.iteye.com/blog/2156937 有时候一些小的细节,确实比较纠结,对于try-catch-finally代码块中代码依次执行,当try中有exception抛出时,将会有catch拦截并执行,如果没有catch区块,那么exception将被添加到“return栈顶”并执行finally。    1) 如果catch中

2016-01-22 09:42:30 355

原创 【转载】Jenkins + Git + Maven + tomcat集成环境搭建

本文转载自http://shift-alt-ctrl.iteye.com/blog/2208786 折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现“自动构建、部署”web应用。 1、安装环境    操作系统:Centos 6.5    JDK:1.7.x    Maven:3.1.x    Git: 1.7.1,自建GitLab平台...

2016-01-22 09:42:19 465

原创 【转载】NIO-Selector 详解

本文转载自http://shift-alt-ctrl.iteye.com/blog/1840411 Selector本身为抽象类,AbstractSelector是Selector类的抽象实现类,具体的实现类更加底层(SelectorImpl,位于sun.nio.ch);Selector即为"选择器",支撑了NIO的多路复用.Selector不能直接创建,需要通过Selector.open

2016-01-22 09:42:13 420

原创 【转载】NIO-SelectableChannel

本文转载自http://shift-alt-ctrl.iteye.com/blog/1841324 SelectableChannel("可被选择"通道):抽象类,此类实现了InterruptableChannel接口."可选择"通道,就是noblocking通道,它的实现需要Selector的支持.因此这些Channel取名为"SelectableChannel"是可以理解的.为 了

2016-01-22 09:42:07 1480

原创 【转载】example for NIO

特别声明:本文转载自 QING_____ NIO-Socket通讯,为我们解决了server端多线程设计方面的性能/吞吐量等多方面的问题,它提供了以非阻塞模式 + 线程池的方式来解决Server端高并发问题..NIO并不能显著的提升Client-server的通讯性能(其中包括全局性耗时总和,Server物理机资源开销和实际计算量),但是它可以确保Server端在支撑相应的并发量情况下,对

2016-01-22 09:41:44 393

原创 mac mysql 修改密码

$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-...

2016-01-22 09:41:26 284

Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ)

Java生态常用技术示例,生产级别Demo。专注于Java生态研究,为Java学习者少走弯路。

2018-09-02

javahongxi的技术博客

Java系列常用技术原理分析:Java基础,Servlet,Tomcat,Spring,SpringMVC,SpringBoot,Redis,Dubbo,RocketMQ,ActiveMQ,Zookeeper,MySQL,架构。资料来源于我的博客www.toutiao.im, GitHub: https://github.com/javahongxi. 深入一点,你会更快乐。

2017-11-05

研究各种Java技术(Springboot+Redis+Dubbo+Rocketmq) 京东技术 www.toutiao.im

研究各种Java技术(Springboot+Redis+Dubbo+Rocketmq),地址https://github.com/javahongxi/whatsmars,为maven项目,含如下模块: whatsmars-common mongodb,mail,AES,DES加解密 whatsmars-earth-web springmvc+velocity whatsmars-earth-support-web earth工程的辅助工程(task,mq,uuid,monitor..) whatmars-fs-web 用mongodb存储图片和文件 whatsmars-javase-example Java基础学习 whatsmars-spring spring原理、集成及新特性 whatsmars-tomcat 模拟tomcat实现 whatsmars-dbrouter 分库分表实现 whatsmars-worker 多实例任务调度 whatsmars-dubbo Dubbo demo whatsmars-mq rocketmq,activemq rocketmq-console rocketmq管理后台 whatsmars-rpc 常用rpc whatsmars-spring-boot springboot果然很方便 whatsmars-redis Cache Service & Redis Cluster whatsmars-motan weibo分布式RPC框架 demo server whatsmars-motan-demo weibo分布式RPC框架 demo server&client

2017-09-12

京东核心技术详解 www.toutiao.im

详解京东核心技术,如服务化框架JSF,云缓存Jimdb,消息中间件JMQ,京东商城技术架构等。更多技术详见www.toutiao.im

2017-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除