luoyoub的博客

路漫漫其修远兮,吾将上下而求索

JAVA同步工具类——Semaphore信号量

信号量 计数信号量(Counting Semaphore)用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量; Semaphore管理着一组虚拟许可(permit),许可的初始数量可通过构造函数来指定;在执行操作时先获取许可(只要还有剩余的许可),使用完成后释放许可;如果没有许...

2018-09-29 22:20:00

阅读数 54

评论数 0

JAVA同步工具类——CountDownLatch

闭锁 在学习CountDownLatch之前,让我们先了解一下闭锁的概念。 闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态;闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当到达结束状态时,这扇门会打开并允许所有线程通过;当闭锁到达结束状态后...

2018-09-29 20:46:28

阅读数 51

评论数 0

java集合之CopyOnWriteArrayList

CopyOnWriteArrayList CopyOnWriteArrayList是juc中提供的并发安全的ArrayList,我们拆分一下类名"Copy"“On”“Write”“ArrayList”,从字面意思我们推断出,这个是以在Write时进行Copy数组...

2018-09-29 17:03:29

阅读数 44

评论数 0

Java中集合类遍历性能

集合元素在内存如何存放 数据元素在内存中,主要有2种存储方式: 1、顺序存储,Random Access(或直接存储,Direct Access): 这种方式,相邻的数据元素存放于相邻的内存地址中,整块内存地址是连续的。可以根据元素的位置直接计算出内存地址,直接进行读取。读取一个特定位置元素的平均...

2018-09-29 15:44:17

阅读数 121

评论数 0

Java语法糖之foreach

JAVA集合foreach for-each其实只是java提供的语法糖。语法糖是编程语言提供的一些便于程序员书写代码的语法,是编译器提供给程序员的糖衣,编译时会对这些语法特殊处理。语法糖虽然不会带来实质性的改进,但是在提高代码可读性,提高语法严谨性,减少编码错误机会上确实做出了很大贡献; Jav...

2018-09-29 11:20:49

阅读数 81

评论数 0

设计模式之迭代器模式

迭代器模式 定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节 迭代器模式的结构 抽象迭代器(Iterator)角色:此抽象角色定义出遍历元素所需的接口; 迭代器实现:实现迭代器接口中定义的方法,完成集合的迭代,并保持迭代过程中的游标位置; 抽象容器:一般是一个接口,提供一...

2018-09-29 00:06:03

阅读数 30

评论数 0

JAVA类初始化顺序总结

类的初始化 {#articleHeader1} 初始化顺序 首先来看下,当一个类从main入口方法,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序: public class ClassLoadTest { private static User user = new Use...

2018-09-27 23:16:24

阅读数 913

评论数 0

JAVA对象实例化方式总结--及Unsafe黑科技

JAVA对象实例化的方法 本贴主要对JAVA实例化方式做个简单的总结,尤其是Unsafe的方式,可能很多人都没了解过,这个是sun工程师留的一个后门,可以称为“黑科技” New对象实例 // 直接new对象实例 Productor productor = new Productor(); ...

2018-09-27 17:47:27

阅读数 132

评论数 0

JAVA8 TreeMap学习笔记

TreeMap TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMa...

2018-09-24 10:34:43

阅读数 166

评论数 0

JAVA8 TreeSet学习笔记

TreeSet TreeSet是基于TreeMap的NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。这句话什么意思呢?就是说,跟HashSet底层是一个HashMap来维护类似,TreeSet的底层实...

2018-09-24 00:28:25

阅读数 107

评论数 0

JAVA8 HashSet学习笔记

HashSet Set集合的最主要特性就是没有重复元素,HashSet是Set的一个字类,其内部基于HashMap实现,因此HashSet的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成 // 底层使用HashMap来保存HashSet的元素 priv...

2018-09-24 00:27:27

阅读数 120

评论数 0

JAVA——TreeSet学习笔记

TreeSet TreeSet是基于TreeMap的NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。这句话什么意思呢?就是说,跟HashSet底层是一个HashMap来维护类似,TreeSet的底层实...

2018-09-24 00:20:45

阅读数 33

评论数 0

常见的缓存失效策略

常见的缓存失效策略 常见的几种缓存失效策略,总结一下: FIFO ,first in first out ,最先进入缓存的数据在缓存空间不够情况下(超出最大元素限制时)会被首先清理出去 LFU , Less Frequently Used ,一直以来最少被使用的元素会被被清理掉。这就要求缓存的元...

2018-09-19 13:30:03

阅读数 466

评论数 0

JVM--Native Method Stack(本地方法栈)

Native Method Stack(本地方法栈) 定义:本地方法栈为虚拟机使用到的Native方法服务,虚拟机规范未对本地方法栈中方法使用的语义、使用方式与数据结构进行强制规定,因此具体的虚拟机可以自由实现 特性 线程私有 后进先出(LIFO)栈 作用是支撑Native方法的调用、执行...

2018-09-07 23:21:10

阅读数 135

评论数 0

JVM -- 程序计数器(Program Counter Register)

程序计数器(Program Counter Register) 定义:程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码行号指示器,也可称之为PC寄存器;字节码解释器工作时通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依...

2018-09-07 23:19:02

阅读数 148

评论数 0

JAVA8 Stack学习笔记

栈-Stack 定义:栈的元素是按后进先出(LIFO)的方法进行处理的,最后入栈的元素最先出栈;栈是一种线性集合,其添加和删除都在一端进行;Stack类继承了Vector类 public class Stack<E> ...

2018-09-03 16:43:13

阅读数 104

评论数 0

Socket三次握手四次挥手

Socket 起源于 Unix,而Unix基本哲学之一就是一切皆文件,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也...

2018-09-03 15:05:00

阅读数 334

评论数 0

CAP理论&ZK&Eureka

如果我们期待实现一套严格满足ACID(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)的分布式事务,很可能的情况就是系统的可用性和严格一致性出现冲突。在可用性和一致性之间永远无法存在一个两全其美的方案。 CAP理论 2000年7...

2018-09-01 17:57:43

阅读数 151

评论数 0

【转】Jedis常见异常汇总

【转载】Jedis常见异常汇总,总结的相当详细!! 详见:https://yq.aliyun.com/articles/236384?spm=a2c4e.11153940.blogcont236383.20.d17a1c96Lm3AHM#cc8

2018-08-28 21:52:49

阅读数 323

评论数 0

JVM相关知识总结

本文主要是关于JVM相关知识的总结,大纲: Summary * 前言 * 概述 * JVM运行时数据区 * 程序计数器 * JAVA虚拟机栈 * 栈帧 * 局部变量表 * 操作数栈 * 本地方法栈 ...

2018-08-22 22:37:44

阅读数 41

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭