- 博客(13)
- 资源 (23)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 值得多逛逛的技术网站
持续更新中...Tim Yang (杨卫华)专注后端技术 新浪微博架构师 http://timyang.netZhangyan (张宴) 专注于系统架构 金山58等架构师 NGINX布道者 http://zyan.ccCalvin(肖桦) 最文艺的码农、整天写代码的架构师 唯品会 http://calvin1978.blogcn.com
2015-12-31 10:18:16
876
转载 设计模式
策略模式是面向对象行为模式中的一种简单常用的设计模式。首先看下GOF对策略模式的定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式的应用场景描述:(1)实现某特定功能在不同的情况下采用不同的策略即算法,程序在运行时动态选择所要采用的策略。(2)对客户端完全隐藏算法的具体实现细节。(3)不同种算
2017-03-12 17:35:09
301
转载 JAVA技术点学习-纯技术面试题
第一部分: 阿里巴巴 高级阿里面试题目总结:第一轮面试电话(5月6号):1.自我介绍,包括做过项目。2.有看过哪些JDK源码,了解哪些常用库。3.集合框架HashMap的扩容机制,ConcurrnetHashMap的原理4.jvm内存模型与gc内存回收机制5.classloader结构,是否可以自己定义一个java.lang.String类,为什么? 双亲
2016-08-12 10:38:52
4089
转载 Too many open files
原文: http://langyu.iteye.com/blog/763247 运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、locat
2016-08-12 10:30:37
294
转载 TCP协议中的三次握手和四次挥手(图解)
原文连接: http://blog.csdn.net/whuslei/article/details/6667471/建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连
2016-08-12 10:24:55
344
转载 亿级商品详情页架构演进技术解密
商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的,只是展示方式不一样。目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基础服务做不了的都放我们这,因此我们需要一种架构能快速响应和优雅的解决这些需求问题。因此我们重新设计了商
2016-08-08 17:22:39
1399
1
转载 Java工程师成神之路
一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具jps, jstack, jmap
2016-01-06 17:47:31
862
原创 Proxy,InvocationHandler动态代理学习笔记
动态代理的作用显而易见,比如AOP,可以在执行的你方法之前及之后做一些事情,比如事物的开启及关闭,日志的记录等等,最典型的例子莫过于Spring的AOP了...在JDK中,Proxy 和 InvocationHandler 实现动态代理, Proxy 只要负责创建代理对象,而 InvocationHandler 用于负责调度代理对象,也就是说,你需要对目标对象的扩展错作,都应该编码在 Inv
2015-09-18 11:47:58
832
原创 ArrayBlockingQueue学习笔记
官网说明:一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。这是一个典型的“有界缓存区”,固定大小的数组在其中保持生产者插入的元素和使用者提取的元素。一旦创建了这样的缓存区,就不能再增加其容量。试图向已满队
2015-09-15 20:30:29
449
原创 Future,Callable学习笔记
Callable:官方解释:返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。主要接口:V call()
2015-09-15 18:09:57
341
原创 ReentrantLock学习笔记
官方解释:一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。ReentrantLock 将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isHeldByCurre
2015-09-15 18:03:12
344
原创 CountDownLatch学习笔记
官方解释:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 C
2015-09-14 16:09:43
328
原创 Semaphore学习笔记
官方解释:一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。使用场景:Semaphore 通常用于限制可以访问某些资源(物理或逻辑的
2015-09-14 14:12:59
406
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人