摘要: Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volati 阅读全文
posted @ 2018-08-20 17:05 kaleidoscopic 阅读(613) 评论(0) 推荐(1) 编辑
摘要: 引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 它在某些情况下比synchronize 阅读全文
posted @ 2018-08-20 16:05 kaleidoscopic 阅读(519) 评论(0) 推荐(0) 编辑
摘要: volatile和synchronized特点 首先需要理解线程安全的两个方面:执行控制和内存可见。 执行控制的目的是控制代码执行(顺序)及是否可以并发执行。 内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存 阅读全文
posted @ 2018-08-20 15:57 kaleidoscopic 阅读(43112) 评论(5) 推荐(12) 编辑
摘要: [原文链接] Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义 阅读全文
posted @ 2018-08-20 15:37 kaleidoscopic 阅读(7505) 评论(0) 推荐(0) 编辑
摘要: [原文链接] 什么是Feign Feign是受到Retrofit,JAXRS-2.0和WebSocket的影响,它是一个jav的到http客户端绑定的开源项目。 Feign的主要目标是将Java Http 客户端变得简单。Feign的源码地址:https://github.com/OpenFeign 阅读全文
posted @ 2018-08-20 14:19 kaleidoscopic 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 一、匿名内部类 1、匿名内部类也就是没有名字的内部类 2、正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 3、但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 4、匿名内部类如何访问在其外面定义的变量:匿名内部类不能访问外部类方法中的局部变量,除非该变量被声明为fi 阅读全文
posted @ 2018-08-17 19:27 kaleidoscopic 阅读(3545) 评论(0) 推荐(1) 编辑
摘要: Given a circular linked list, implement an algorithm which returns node at the beginning of the loop. DEFINITION If we move two pointers, one with spe 阅读全文
posted @ 2018-08-17 18:48 kaleidoscopic 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一、概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子 阅读全文
posted @ 2018-08-17 17:40 kaleidoscopic 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 一、常用开源协议汇总图 首先从一张图开始,介绍几种主流的开源协议,以及决定选用哪种框架的思路。 使用哪种开源协议,决定了你发布的开源项目被别人使用了之后,别人的项目是否受到你的项目的开源协议的约束、受到哪种约束。 同理,采用别人的开源项目时,也要留意开源协议,这直接影响到日后你的项目是否需要开源、是 阅读全文
posted @ 2018-08-17 17:20 kaleidoscopic 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO 阅读全文
posted @ 2018-08-17 17:02 kaleidoscopic 阅读(262) 评论(0) 推荐(0) 编辑