Java基础
文章平均质量分 67
luppy01
这个作者很懒,什么都没留下…
展开
-
Cas 总结
锁机制存在以下问题: (1)线程上下文切换代价 (2)线程竞争锁发送的阻塞 (3)扰乱线程优先级,高优先级线程等待低优先级线程释放锁 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 CAS是硬件CPU提供的元语,它的原理:我认为位置 V 应该包含值 A;如果包含该值,则将原创 2017-05-26 16:25:17 · 2251 阅读 · 0 评论 -
手动实现HashMap
public class HashMap { private static final int DEFAULT_INITIAL_CAPACITY = 16; private static final float DEFAULT_LOAD_FACTOR = 0.75f; private int threshold; private int size;原创 2017-05-29 21:59:03 · 9724 阅读 · 0 评论 -
Java NIO 总结
一、Java NIO与标准IO的区别 1、channels和buffer,标注IO基于字节流和字符流操作,NIO基于通道和缓存操作 2、异步IO,NIO支持异步操作,标准IO只能同步操作 3、Selector,NIO的选择器可以监听多个通道 二、Java NIO由Channel和Buffers和Selectors几个核心部分组成 Channel实现FileChannel、Datagr原创 2017-05-21 13:20:17 · 716 阅读 · 0 评论 -
共享变量可见性
可见性:多线程环境下,一个线程修改共享变量,能够及时被其他线程所感知 共享变量:一个变量在多个线程的工作内存都存在副本,这个变量就是共享变量 线程对共享变量的操作只能在自己的工作内存中进行,不能主内存中操作 不同线程之间无法访问其他线程工作内存中的变量,线程间变量值的传递通过主内存完成 共享变量的可见性实现原理:线程1修改共享变量后,立刻更新主内存,然后线程2立刻从主内存把原创 2017-05-21 19:28:09 · 3810 阅读 · 0 评论 -
Java 中的中文编码问题
不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必原创 2017-06-06 22:34:42 · 9900 阅读 · 0 评论