随笔分类 - java
1
摘要:CAS(Compare And Swap) 简单的来说,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则返回V CAS指令在Intel CPU上称为CMPXCHG指令,它的作用是将指定内存地址的内容与所给的某个值相比,如果相等,则
阅读全文
摘要:转自:http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 非常完整的总结
阅读全文
摘要:本小节介绍锁释放Lock.unlock()。 Release/TryRelease unlock操作实际上就调用了AQS的release操作,释放持有的锁。 前面提到过tryRelease(arg)操作,此操作里面总是尝试去释放锁,如果成功,说明锁确实被当前线程持有,那么就看AQS队列中的头结点是否
阅读全文
摘要:public void java.util.concurrent.locks.ReentrantLock.lock() 获取锁。 如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1。 如果当前线程已经保持该锁,则将保持计数加 1,并且该方法立即返回。 如果该锁被另一个线程保
阅读全文
摘要:AQS:java.util.concurrent.locks.AbstractQueuedSynchronizer 上面的继承体系中,AbstractQueuedSynchronizer是CountDownLatch/FutureTask/ReentrantLock/RenntrantReadWri
阅读全文
摘要:转自:http://www.blogjava.net/xylz/archive/2010/07/05/325274.html JDK 5中的锁是接口java.util.concurrent.locks.Lock。另外java.util.concurrent.locks.ReadWriteLock提供
阅读全文
摘要:volatile写的内存语义: 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。 volatile读的内存语义: 当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效,线程接下来将从主内存中读取共享变量。 重排序: 能否重排序 第二个操作
阅读全文
摘要:原文:https://my.oschina.net/lichhao/blog/99039 一、web请求框架 URL到框架的映射。 http请求参数绑定 http响应的生成和输出 二、处理过程 1.用户在浏览器中,输入了http://www.xxxx.com/aaa/bbb.ccc的地址,回车后,浏
阅读全文
摘要:作者:cyfonly 出处:http://www.cnblogs.com/cyfonly/ 本文版权归作者和博客园共有,欢迎转载,未经同意须保留此段声明,且在文章页面明显位置给出原文连接。欢迎指正与交流。 抄自:http://www.cnblogs.com/cyfonly/p/5954614.htm
阅读全文
摘要:抄自:http://blog.xiaohansong.com/2015/10/21/IoC-and-DI/ 找不到比这更清楚明白的了 场景:对象A依赖于对象B 控制反转: 控制反转前:由在类A中初始化B,对象A控制着对象B的初始化和使用, 控制反转后:对象B的初始化在对象A需要时由容器初始化并注入到
阅读全文
摘要:07. Java NIO Selector选择器 Selector用于检查一个或多个NIO Channel的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。 创建Selector : Selector selector = Selector.open(
阅读全文
摘要:http://wiki.jikexueyuan.com/project/java-nio-zh/java-nio-overview.html Java NIO,Non-blocking IO 02. Java NIO 概览 NIO包含下面几个核心的组件: Channels Buffers Selec
阅读全文
摘要:http://blog.csdn.net/zjf280441589/article/details/50411737#t3 这篇文章讲的更易懂 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行
阅读全文
摘要:Java 反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值。 Class 对象 Java 构造器 获取 Field 对象 获取 Method
阅读全文
摘要:RPC 是什么? RPC ,Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。
阅读全文
摘要:具体流程如下: 1)当池子大小小于corePoolSize就新建线程,并处理请求 2)当池子大小等于corePoolSize,把请求放入workQueue中,池子里的空闲线程就去从workQueue中取任务并处理 3)当workQueue放不下新入的任务时,新建线程入池,并处理请求,如果池子大小撑到
阅读全文
摘要:4.1.5 java程序初始化顺序 1.静态对象,2.父类,3.子类,4.按照成员变量的顺序初始化 具体的:父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数 4.1.6 java的作用域 成员变
阅读全文
1

浙公网安备 33010602011771号