自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (7)
  • 收藏
  • 关注

转载 SOA服务设计原则

服务设计原则1:优化远程调用这里的远程调用特指RPC(Remote Procedure Call)。当然更面向对象的说法应该是远程方法调用或者远程服务调用等等。但是远程调用方式往往又要受限于具体的业务和部署环境,比如内网、外网、同构平台、异构平台等等。有时还要考虑它对诸如分布式事务,消息级别签名/加密,可靠异步传输等方面的支持程度(这些方面通常被称为SLA:servic

2016-08-03 19:42:32 3544

原创 实习记录(四)

Full GC

2016-07-24 14:49:59 1004

转载 软件设计常识

这是我从Dubbo的作者那里看到的一个文章,觉得挺好的转过来大家学习:1. API与SPI分离 框架或组件通常有两类客户,一个是使用者,一个是扩展者, API(Application Programming Interface)是给使用者用的, 而SPI(Service Provide Interface)是给扩展者用的, 在设计时,尽量把它们隔离开,而不要混在一起, 也就是说,使用者是看不到

2016-07-03 21:35:15 500

原创 实习记录(三)

距离上一次更新日志已经差不多有两周了,因为马上要回学校考试了,所以再更一波。准确来说这两周并没有什么任务可做,所以都属于自己的学习阶段,那么问题来了,两周都学了点什么呢?闲来蛋疼倒是看了两周的Dubbo,大致的实现都看了点吧,服务的发布调用过程等等。但是在这里让我讲讲具体如何实现我已记不大清楚了,只能说说读过部分源码后自己的感受。1.缓存在Dubbo的设计中有很多地方都出现了缓存,

2016-06-23 13:58:33 1140

原创 实习记录(二)

这个距离上次更新日志大概有十天左右吧,适逢端午节也比较悠哉,于是还是再续一篇吧。这两周没做什么重要的内容,依然是之前的退货系统,但是我只是写一些简单的接口,所以内容还是比较有限的。其中我印象比较深刻的就是关于分页的操作吧,之前学长已经写过现成的例子了,当时我们有直接参考,而是照着自己的意思去写分页吧。。然而在这周被指出来了,我当初愚蠢地一次性取出来了所有的数据,然后想着以后放入缓存不久可以了,

2016-06-09 20:24:05 519

原创 实习记录(一)

今天是实习的第二个周末了,想写点东西记录一下自己的所获吧。因为这个实习机会的来之不易,所以在工作的时候也不敢有丝毫懈怠(除非早上有雷霆的比赛),基本上开始的前三天就是在数据业务环境,要部署哪些东西啊,需要申请哪些代码权限啊,顺便留意一下哪些是自己小组的前辈,没事混个脸熟之类的。因为公司好像用到了许多Dubbo,所以大致浏览了一下Dubbo的东西吧,不过啊貌似没有一个完整的Dubbo的介绍书籍或

2016-05-29 20:18:40 1535

转载 DNS解释

DNS域名解析我们都知道我们在上网的时候第一步就是输入相关的域名了,比如www.baidu.com,那么其实在这一步就是发生了一些DNS域名转换我们才能定位和目标主机,当然如果想更清楚的了解DNS的定义的话可自行Google。简单来看的话,DNS就是启动域名向IP的映射关系的准换,为什么需要这种转换呢?直接输入115.28.179.119这样的IP访问网页不就行了吗?方然可

2016-05-05 16:37:36 2174

转载 Http2.0

【交代:时间是在距今的5年后,由于我的智能滑板鞋,还有智能小内内的创业失败,为了在这个先看胸再看脸的时代活下去,我不得不重操旧业,去面试web前端工程师的工作。多年没有接触web开发了,找了个AlloyTeam的老同事晨伯帮我温习一下知识,好让面试通过】“我给你一个表情,你自己体会一下”“你先写个小页面给我看看吧,我指导一下你吧。”晨伯一幅很吊的样子。但是这样的小case当然难不了

2016-04-28 15:43:07 601

转载 JVM字节指令详解

在网上看到的字节指令集,忍不住转了过来大家一起学习一下。http://blog.csdn.net/lm2302293/article/details/6713147 JVM指令集(指令码、助记符、功能描述)指令码助记符功能描述0x00nop无操作 

2016-04-25 15:12:35 535

原创 关于线程的生动介绍

在其他地方看到的一篇非常生动的介绍文章,但是没有得到作者同意没办法转载过来,只能记录一下文章的链接供大家访问,内容真心不错!!!http://blog.jobbole.com/99883/#article-comment

2016-04-25 14:38:27 353

转载 LinkedHashMap解读

HashMap:        put -> addEntry(新建一个Entry)        get        getEntry LinkedHashMap:       put -> addEntry(重写)                新建一个Entry,然后将其加入header前                e.a

2016-04-24 13:25:36 350

原创 关于Java中线程池的解读

之前的面试中多次被问到线程池的相关内容,所以在之后的时间内我仔细的学习了一下线程池的相关内容。1.使用线程池的意义复用:类似WEB服务器等系统,长期来看内部需要使用大量的线程处理请求,而单次请求响应时间通常比较短,此时Java基于操作系统的本地调用方式大量的创建和销毁线程本身会成为系统的一个性能瓶颈和资源浪费。若使用线程池技术可以实现工作线程的复用,即一个工作线程创建和销毁的生

2016-04-23 16:11:11 2574

转载 ThreadLocal详解

在网上看到了这篇文章,实在是写的太好了,忍不住转载了过来。原创地址:http://my.oschina.net/xianggao/blog/392440?fromerr=CLZtT4xCThreadLocal概述学习JDK中的类,首先看下JDK API对此类的描述,描述如下:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问

2016-04-23 14:44:32 831

原创 Java多线程学习笔记

开始于2015年4月10日:※Java的线程机制是抢占式的,这表示调度机制会周期性的中断线程,将上下文切换到另一个任务,从而为每个线程都提供时间片,使得每个线程都会分配到数量合理的时间去驱动他的任务。※如果当多个线程共同访问一个可变的状态变量的时候没事使用合适的同步,那么线程就会出现错误。有三种方式可以修复这个错误:不在线程之间共享该状态变量。将状态变量

2016-04-19 20:27:50 1377 1

转载 Rest的理解

为啥REST如此重要?发表于2013-08-01 14:11| 16945次阅读| 来源babdev.blogspot| 41 条评论| 作者Gregor RieglerRESTWeb服务APISOAP摘要:REST——表征状态转移,由于REST模式的Web服务更加简洁,越来越多的Web服务开始采用REST风格设计和实现。例如,Ama

2016-04-19 20:27:00 705

原创 TCP握手详解

对于TCP链接我们首先要有一个基本认识是:TCP链接的开启和关闭都是做好了最坏的打算,以保证在网络情况最不稳定的情况下仍然可以成功的发送和结束TCP链接,这就好比我们做任何事都要考虑到最坏的情况一样,这充分说明了设计者的睿智,不是吗?在这个基本认知的基础上我们先来看看开启链接的3次握手是什么情况:现在假设有这么一个情景:      A(北京)要和B(上海)进行信件来往,

2016-04-19 20:26:07 2424 3

原创 for,break和continue

我们知道For循环在Java中经常被使用,下面我们来看一下这个for的一些细节运行。例子一:?123for(int i=10;i>0;i--){  System.out.print(" "+i);}输出如下: 10 9 8 7 6 5 4 3 2 1

2016-04-19 20:25:33 708

转载 BufferedReader详解

以下内容转载自:http://www.cnblogs.com/skywang12345/p/io_23.htmlBufferedReader 是缓冲字符输入流。它继承于Reader。BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。BufferedReader 函数列表BufferedReader(Reader in)Buff

2016-04-19 20:24:50 12462

转载 序列化与反序列化

#摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且

2016-04-19 20:24:00 452

转载 动态规划

对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢!    

2016-04-19 20:23:06 348

转载 Java中的IO介绍

在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 散仙不才,在查了一部分资料后,愿试着以通俗易懂的方式解释下这几个名词。如有不足之处,还望告知。 

2016-04-19 20:22:05 294

转载 OSI七层模型

OSI是Open System Interconnect的缩写,这个模型把网络通信的工作分为7层,它们由低到高分别是应用层(Application Layer)。表示层(Presen tation Layer)会话层(Session Layer传输层(Transport Layer),网络层(Network Layer),数据链路层(Data Lin

2016-04-19 20:21:13 423

转载 JDK8中matespace的引入

在Java虚拟机(JVM)内部,class文件中包括类的版本、字段、方法、接口等描述信息,还有运行时常量池,用于存放编译器生成的各种字面量和符号引用。在过去(自定义类加载器还不是很常见的时候),类大多是”static”的,很少被卸载或收集,因此被称为“永久的(Permanent)”。同时,由于类class是JVM实现的一部分,并不是由应用创建的,所以又被认为是“非堆(non-heap)”内

2016-04-19 20:20:27 7800

转载 String常量池

引言在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不

2016-04-19 20:19:37 715

转载 深入理解synchronized

目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。   数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令

2016-04-19 20:18:50 1300

转载 深入理解Lock

前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实

2016-04-19 20:17:56 374

原创 java多线程问题(下)

21、FutureTask是什么这个其实前面有提到过,FutureTask表示一个异步运算的任务。FutureTask里面可以传入一个Callable的具体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。当然,由于FutureTask也是Runnable接口的实现类,所以FutureTask也可以放入线程池中。我们知道在Java的新版中中引入了AIO模

2016-04-19 20:16:53 1111

原创 java多线程问题(上)

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应

2016-04-19 20:15:56 1168

转载 一致性hash实现

一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点

2016-04-19 20:14:38 689

原创 冒泡排序

先用代码说话:?12345678910111213public static void sort(int[] array) {    if (array == null || array.length 1) return;   

2016-04-19 20:13:58 334

原创 选择排序

123456789101112131415161718public static void sort(int[] array) {    int minIndex;    for (int i = 0; i       

2016-04-19 20:13:26 314

原创 插入排序

12345678910111213141516public static void sort(int[] array) {    if (array.length == 0 || array.length == 1)        return

2016-04-19 20:12:51 290

原创 希尔排序

希尔排序是以插入排序为基础的排序算法,搞懂了插入排序之后再来看希尔排序就十分简单了。?1234567891011121314151617public static void sort(int[] array) {

2016-04-19 20:12:18 323

原创 快速排序

快速排序也属于一种交换排序算法,排序的过程中不停地有元素交换,但是因为其在均匀分布的数据中有比较良好的排序效果,因此被广泛利用。?123456789101112131415161718192021

2016-04-19 20:11:48 377

原创 堆排序

堆排序的核心是创建最大堆,然后对堆进行调整。整个算法的实现比较简单,如下:?123456789101112131415161718192021222324252

2016-04-19 20:11:20 334

原创 归并排序

归并排序也是一种常见的排序算法,下面就让我们简单看一下归并排序的实现。?1234567891011121314151617181920212223242526

2016-04-19 20:10:33 327

原创 二分查找树

1234567891011121314151617181920212223242526272829303132333435

2016-04-19 17:38:24 530

转载 关于GC的类型

在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些疑惑。文章要求读者熟悉 JVM 内置的通用垃圾回收原则。堆内存划分为 Eden、Survivor 和 Tenured/Old 空间

2016-04-19 17:37:19 583

转载 进程通信

详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文译本《UNIX环境高级编程》已有机械工业出版社出版,原文精彩,译文同样地道,如果你的确对在Linux

2016-04-19 17:36:13 310

转载 CMS垃圾回收器

1.总体介绍:CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。2.CMS过程:初始标记(STW ini

2016-04-19 17:35:20 313

Thrift的官文翻译

这个是Thrift的官文翻译版,我从其他地方取到的图片,现在为了方便大家阅读已经作成了PDF版本了,免费下载

2016-12-18

Dubbo源码解读

这里整理了我学习Dubbo中的笔记,可能有点乱,分享出来仅供大家学习。

2016-06-23

HBase0.97官方中文文档

免费分享跟大家使用,希望大家把开源精神传递下去

2015-10-26

REST介绍(鼻祖)

好东西要跟大家分享,不需要积分,看完之后定会对REST了解更深一层

2015-05-03

MYSQL中文参考手册

MYSQL中文参考手册

2014-11-02

JDBC连接插件

这是一个用于连接数据库与JavaEclipse的插件,大家可以踊跃下载

2014-11-02

尚桂谷Oracle

这是尚桂谷最新的资源教程代码,可以供大家学习参考一下,效果挺不错的

2014-10-26

空空如也

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

TA关注的人

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