自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓立的博客

Java技术分享

转载 解读Java并发队列BlockingQueue

上篇文章讲了List的链表实现——LinkedList,同时LinkedList也实现了Dequeue接口,可以通过LinkedList实现栈和队列的操作。刚好昨天看到一篇关于线程池中BlockingQueue相关的不错的文章,这里分享一下,在上篇文章的基础上,也更容易理解。原文链接:解读Java并发队列BlockingQueue。最近得空,想写篇文章好好说说 java 线程池问题,我相信很多...

2018-12-30 09:44:43 82

原创 Java编程拾遗『容器——LinkedList』

上篇文章讲了List的数组实现——ArrayList,在最后讲了ArrayList的一些特性,比如支持随机访问,插入和删除效率偏低。本篇文章来看一下List基于链表的实现LinkedList的一些细节,每一种实现都是有它特定的使用场景的,而LinkedList就可以解决ArrayList上述插入删除效率低下的问题。1. 使用规则LinkedList是基于双向链表实现的,声明如下:...

2018-12-30 09:43:31 118

原创 Java8 Map coumute操作

在整理Java编程拾遗『容器概述』这篇文章时,看到Map接口中在Java8后加入了compute的一系列方法,computeIfAbsent、computeIfPresent以及compute方法。本篇文章就来讲述一下这三个方法的使用。S.N. 方法 说明 1 default V computeIfAbsent(K key, Function<? super K, ...

2018-12-30 09:42:38 244

原创 Java编程拾遗『容器——ArrayList』

上篇文章简单介绍了一下Java集合框架中两个最常见的接口,表示集合的Collection和表示K-V映射的Map。本篇文章重点介绍一下Collection的一个重要实现类,动态数组容器类ArrayList。由于在上一篇文章已经介绍了Collection接口的通用方法,本篇文章会简单介绍一下ArrayList中的方法,重点介绍一下内部原理。1. 使用规则ArrayList是基于数组实现的...

2018-12-30 09:41:18 244

原创 Java编程拾遗『容器概述』

在大学时,我们肯定都学过一门叫数据结构的课,里面详细的介绍了链表、栈、队列、散列、树、图等数据结构的概念及其实现。接下来的几篇文章将详细介绍一下Java API对常见数据结构的实现原理及应用,也就是Java API中的集合类(集合框架)。首先看一下Java集合框架的总体概况,如下:总体而言,基本上可以分为两类,表示集合的Collection和表示K-V的Map。可以看到,所有的集合都间接实...

2018-12-30 09:40:21 66

原创 Java编程拾遗『反射』

在大多数场景下,我们在代码编写时,我们一般都知道所要使用的数据的具体类型,会根据类型创建对象,并使用对象的一些属性及方法。但是有些情况下,我们在编写代码时,无法确定要创建对象的具体类型,比如我要编写一个工厂类,通过运行时的输入信息,决定构建一个什么类型的对象,这时候在编译期就无法完成了。而反射就提供了一种机制,在运行时,而非编译时,动态获取类型的信息,比如接口信息、成员信息、方法信息、构造方法信息...

2018-12-30 09:39:33 151

原创 Java编程拾遗『枚举类』

由于双十一的缘故,忙着各种压测、演练以及值班,最近一直没什么时间写文章。还好,基本上双十一算是很平稳的度过了。作为电商平台,双十一带来的流量冲击,还是给我留下深刻的印象,特别订单、支付链路的环节,流量瞬间可以达到平时峰值的两倍以上。关于双十一这种突发流量冲击的解决方案,我自己还在了解中,本来想写一篇关于双十一的博文的,无奈了解还不够深入,先占个坑,回头补上。继续进行Java编程拾遗这一系列文章的写...

2018-12-30 09:38:32 97

原创 Java编程拾遗『泛型——通配符&约束』

1. 泛型通配符固定的泛型类型系统使用起来不是一直那么方便,比如Pair<Integer>并不是Pair<Number>的子类型,所以不能将Pair<Integer>对象赋值给pair<Number>类型的引用。假如在方法定义时制定了某一种泛型类型,那么就只能使用该类型的泛型对象了,使用起来不是很方便。所以Java泛型中引入通配符类型(仍是安全的...

2018-12-30 09:37:46 150

原创 Java编程拾遗『泛型——基本概念』

泛型是比较常见的一种类型,在Java API容器类以及一些工具类中,都有很多应用。泛型是Java 5中新增的一种类型机制,用于满足在1999年指定的最早的Java规范之一(JSR 14)。使用泛型机制写的程序代码要比那些杂乱地使用Object变量然后再进行强制类型转换的代码,具有更好的安全性和可读性。泛型对于集合类尤其有用,甚至可以讲,Java泛型的引入也是为了更好的支持Java容器。1. 为...

2018-12-30 09:36:43 68

原创 Java编程拾遗『final详解』

之前讲String类的时候,讲了String类是不可变类,其实现方式中有一个重要的保障是final—final修饰class以及final修饰了内部成员变量char[]。本文会详细讲一下final的使用场景以及使用final的好处。1. final的基本用法final是Java中的一个关键字,可以用来声明类、变量、方法和方法参数,分别表示类不可继承、成员变量引用不可改变、方法不可不该以及参...

2018-12-30 09:35:33 64

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