
JAVA
文章平均质量分 64
zhangxl
这个作者很懒,什么都没留下…
展开
-
常用JAVA集合框架(Collection、List、Set、Map)
1.常用集合框架结构2. List 2.1 ArrayListList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于Vector 类,除了此类是不同步的。)每个ArrayList 实例都有一个容量。该容量是指用来存储列表元素原创 2016-07-29 20:17:18 · 4770 阅读 · 0 评论 -
Java 9 新特性之模块化和进程API
Java 9 新特性:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F61. Java Platform Module System 模块化系统模块化系统是Java 9 最大的一个特性,模块之间存在相互的依赖关系,可以导出一个公共的API,并且隐藏实现的细节原创 2017-09-24 18:45:34 · 479 阅读 · 0 评论 -
JVM指令重排导致Singleton双重锁定出错
指令重排导致单例模式失效我们都知道一个经典的懒加载方式的单例模式:public class Singleton {private static Singleton instance = null;private Singleton() { }public static Singleton getInstance() {if(instance == n原创 2017-03-16 15:56:38 · 1837 阅读 · 0 评论 -
Java ThreadPoolExecutor 简单剖析
一、ThreadPoolExecutor概述1.简介ThreadPoolExecutor继承自AbstractExecutorService。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行集合任务时使用的线程)的方法。每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数原创 2017-03-22 15:52:43 · 364 阅读 · 0 评论 -
Synchronized 锁优化
文章转自:http://blog.youkuaiyun.com/u010723709/article/details/503416311 对象头与锁要了解Synchronized的锁,必须知道对象头是怎么回事。因此这个锁就保存在对象头中。Hotpot虚拟机的对象头分两部分信息,第一部分用于存储对象自身的运行时数据,如HashCode,GC分代年龄等,这部分数据长度在32位和64位虚拟机中分别为32bi转载 2017-03-28 19:40:17 · 562 阅读 · 0 评论 -
Java多线程之 生产者与消费者
JDK的Concurrent包中的BlockingQueue接口,增加了可阻塞的插入和获取等操作。当队列为空时,获取操作被阻塞;当队列满时,插入操作被阻塞。通过BlockingQueue可以和方便的实现生产者与消费者模式。LinkedBlockingQueue(一个BlockingQueue的实现类)通过分别在插入和获取操作上加不同的Reentrant锁,来实现插入操作的同步和获取操作的同步,原创 2016-11-26 10:45:45 · 389 阅读 · 0 评论 -
java.util.concurrent.locks.ReentrantLock 源码剖析
ReentrantLock从jdk1.5开始引入,相对于synchronized关键字有较好的效率。方法摘要如下:方法摘要 intgetHoldCount() 查询当前线程保持此锁的次数。protected ThreadgetOwner() 返回目前拥有此锁的线程,如果此锁不被任何线程拥有,则返回原创 2017-02-28 22:32:53 · 458 阅读 · 0 评论 -
Java并发编程(一) Java内存模型
物理计算机并发问题在介绍Java内存模型之前,先简单了解下物理计算机中的并发问题。由于处理器的与存储设置的运算速度有几个数量级的差距,所以现代计算机加入一层读写速度尽可能接近处理器的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存中,这样处理器就无须等待缓慢的内存读写了。基于高速缓存的存储交互引入一个新的问题转载 2016-09-27 16:12:57 · 300 阅读 · 0 评论 -
Java并发编程之Java内存模型
物理计算机并发问题在介绍Java内存模型之前,先简单了解下物理计算机中的并发问题。由于处理器的与存储设置的运算速度有几个数量级的差距,所以现代计算机加入一层读写速度尽可能接近处理器的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存中,这样处理器就无须等待缓慢的内存读写了。基于高速缓存的存储交互引入一个新的问题转载 2016-09-27 16:08:58 · 338 阅读 · 0 评论 -
JVM——体系结构、生命周期简述
1. JVM 体系结构如图所示,JVM包括类装载器子系统、运行时数据区、执行引擎。类装载器子系统根据给定的权限的名来装入类型(类或者接口)。执行引擎负责执行那些包含在被装载类的方法中的指令。运行时数据区包含方法区、堆、Java栈、PC寄存器、本地方法栈。类装载器子系统:在JVM中负责查找并装载类型的那部分被称为类装载器子系统。JVM中有两种类装载器:启动类装载器和用户自定义原创 2016-08-24 20:38:10 · 1668 阅读 · 0 评论 -
Java String、StringBuffer和StringBuilder
1. String String 类代表字符串。Java 程序中的所有字符串字面值(如"abc" )都作为此类的实例来实现。字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享它们。String 类包括的方法有:检查序列的单个字符;比较字符串;搜索字符串;提取子字符串;创建字符串副本,在该副本中,所有的字符都被转换原创 2016-07-30 11:47:44 · 255 阅读 · 0 评论 -
Consul 微服务注册与发现
1. 创建Spring Boot项目IDE :IntelliJ IDEAFile ->new->project->Spring Initializer 创建Spring Boot项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht原创 2017-10-22 21:25:26 · 1688 阅读 · 0 评论