- 博客(22)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 【综合知识】系分综合知识总结
https://wenku.baidu.com/view/789092eeb8f67c1cfad6b887.html
2017-03-31 15:22:14 379
原创 【容器】并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要
2017-03-29 11:26:13 434
转载 微服务时代 怎么看华为软件开发云实现DevOps落地
【51CTO.com原创稿件】 云计算改变了服务构建和交付的模式,从最初饱受争议到万千宠爱,扮演着越来越重要的角色,为业务创新和价值交付奠定了基础。以此同时,在软件行业中,随着移动、社交、大数据、IoT、人工智能等众多新技术的快速发展,颠覆式创新和跨界竞争加剧,企业急需快速而且持续的创新能力,传统研发能力越来越难于满足新型研发的要求,软件生产力正在6个方面发生巨大变革:· 研发场景...
2017-03-29 09:52:31 2001
原创 【详解设计模式】工厂模式
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
2017-03-27 20:13:31 875
原创 【详解设计模式-简介】设计模式简介
设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证...
2017-03-27 20:12:24 367
转载 【设计模式】Java开发中的23种设计模式详解(转)
http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模...
2017-03-27 18:06:37 739
原创 【容器】深入理解HashMap原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...
2017-03-25 11:11:24 441
转载 【并发】ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获...
2017-03-24 17:26:18 411
原创 【并发】ThreadLocal可能引起的内存泄露
threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法. 在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引用,虚线代表弱引用. 每个thread中都存...
2017-03-23 16:44:12 540
转载 【集合】深入理解WeakHashmap
(一) 查看API文档,WeakHashmap要点如下:1. 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除2. WeakHashMap 类的行为部分取决于垃圾回收
2017-03-23 15:26:32 406
原创 【https】九个问题从入门到熟悉HTTPS
Q1: 什么是 HTTPS?BS: HTTPS 是安全的 HTTP HTTP 协议中的内容都是明文传输,HTTPS 的目的是将这些内容加密,确保信息传输安全。最后一个字母 S 指的是 SSL/TLS 协议,它位于 HTTP 协议与 TCP/IP 协议中间。 Q2: 你说的信息传输安全是什么意思BS: 信息传输的安全有三个方面: 1、客户端和服务器直接的通信只2、...
2017-03-22 22:33:11 504
转载 【Netty】Netty 高性能之道
NettyNetty 系列之 Netty 高性能之道1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用 Netty4 + Thrift 压缩二进制编解码技术,他们实现了 10 W TPS(1 K 的复杂 POJO 对象)的跨节点远程服务调用。相比于传统基于 Java 序列化 +BIO(同步阻塞 IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不...
2017-03-18 20:48:55 360
原创 【并发】并发-不可变对象
一个对象如果在创建后不能被修改,那么就称为不可变对象。在并发编程中,一种被普遍认可的原则就是:尽可能的使用不可变对象来创建简单、可靠的代码。 在并发编程中,不可变对象特别有用。由于创建后不能被修改,所以不会出现由于线程干扰产生的错误或是内存一致性错误。 但是程序员们通常并不热衷于使用不可变对象,因为他们担心每次创建新对象的开销。实际上这种开销常常被过分高估,而且使用不可变对象所
2017-03-17 17:23:29 335
原创 【操作系统】信号量与P、V操作
知识点:信号量机制主要有整形信号量、记录性信号量、信号量集机制。信号量是一个整形变量,根据控制对象的不同赋不同的值。信号量可分为公用信号量和私用信号量两类。公用信号量:实现进程间的互斥,初值=1或资源的数目私用信号量:实现进程间的同步,初值=0或某个整数信号量S的物理意义:S>=0时表示某资源的可用数,s<0时其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实...
2017-03-17 12:15:14 12368 3
原创 【并发】volatile是否能保证数组中元素的可见性?
问题 一个线程向volatile的数组中设置值,而另一个线程向volatile的数组中读取。比如seg.setValue(2),随后另一个线程调用seg.getValue(2),前一个线程设置的值对读取的线程是可见的吗?我看书上说volatile的数组只针对数组的引用具有volatile的语义,而不是它的元素。 对一个共享变量使用Volatile关键字保证了线程间对该数...
2017-03-16 14:53:53 6024 3
转载 【并发】volatile详解
一、不得不提的volatilevolatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它;我们在JDK及开源框架中随处可见这个关键字,但并发专家又往往建议我们远离它。比如Thread这个很基础的类,其中很重要的线程状态字段,就是用volatile来修饰,见代码 /* Java thread status for tools,/* J...
2017-03-16 01:45:19 345
原创 【OS】虚拟存储器,虚拟存储器的工作过程,调度方式,Cache的异同点
所谓虚拟存储器(Virtual Memory),就是采用一定的方法将一定的外存容量模拟成内存,同时对程序进出内存的方式进行管理,从而得到一个比实际内存容量大得多的内存空间,使得程序的运行不受内存大小的限制。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。目录虚拟存储器的工作过程 虚拟存储器的调度方式 虚拟存储器和Cache的异同点 虚拟存储器地址变换算法 ...
2017-03-07 20:35:55 3692 1
转载 【Spring Cloud】Spring Cloud构建微服务架构
文章汇总Spring Cloud构建微服务架构(一)服务注册与发现 Spring Cloud构建微服务架构(二)服务消费者 http://bbs.springcloud.cn/d/1-dd-spring-cloud欢迎关注公众号:...
2017-03-04 22:26:28 329
转载 【并发】java使用volatile的场景
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:互斥...
2017-03-04 11:33:57 504
原创 【并发】java线程内存模型,线程、工作内存、主内存
java线程内存模型线程、工作内存、主内存三者之间的交互关系图: key edeas所有线程共享主内存每个线程有自己的工作内存refreshing local memory to/from main memory must comply to JMM rules 产生线程安全的原因线程的working memory是cpu的寄存器和高速缓存的抽象描述:现在...
2017-03-04 11:13:36 514
原创 【并发】java并发之可见性与原子性
一、定义1.可见性在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份”造...
2017-03-03 18:11:16 448
算法第四版-扫描版-Robert Sedgewick
2018-11-11
java抓包需要的包
2014-12-30
java一个mina框架的传输对象的问题
2014-08-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人