自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 为什么说Java匿名内部类是残缺的闭包

前言我们先来看一道很简单的小题:public class AnonymousDemo1{ public static void main(String args[]) { new AnonymousDemo1().play(); } private void play() { Dog dog = new Dog

2017-12-31 22:36:15 238

转载 深入理解ConcurrentHashMap之源码分析(JDK8版本)

注:本文源码是JDK8的版本,与之前的版本有较大差异ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架spring的底层数据结构就是使用ConcurrentHashMap实现的。与同是线程安全的老大哥HashTable相比,它已经更胜一筹,因此它的锁更加细化,而不是像HashTable一样为几乎每个方法都添

2017-12-30 13:50:23 441

转载 JDK 1.8 ConcurrentHashMap 源码剖析

转载两篇不错的文章:第一篇:前言HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。[java] view plain copy final HashMap map = new HashMap(2);  for (int i = 0; i 1

2017-12-30 13:44:58 514

转载 java中的4种reference的差别和使用场景

写在最前面:注意一下最后的两篇文章连接,我看了一下感觉写的也很好我们知道java语言提供了4种引用类型:强引用、软引用(SoftReference)、弱引用(WeakReference)和幽灵引用(PhantomReference),与引用密切相关的,还有一个引用队列ReferenceQueue。引用和引用队列的关系,对于垃圾回收来说非常重要,学习垃圾回收机制,必须要先了解引用

2017-12-29 00:20:28 552

转载 借ThreadLocal出现OOM内存溢出问题再谈弱引用WeakReference

前几篇:Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(8)-多图深入分析ThreadLocal原理Java多线程编程-(9)-ThreadLocal造成OOM内存溢出案例演示与原理分析一、简单回顾在上几篇的时候,已经简单的介绍了不正当的使用ThreadLocal造成OOM的原因,以及ThreadLocal的基本原

2017-12-29 00:15:19 566

转载 深入分析StrongReference,SoftReference, WeakReference和PhantomReference

1、前言在java中,我们知道一般情况下当一个对象被其他对象引用时,该对象则不会被回收。但是有时我们虽然需要使用该对象,但又希望不影响回收。比如在Activity中以内部类的方式创建了一个Handler,这个Handler就会隐式的持有一个activity的引用,当这个Handler被一个耗时线程所引用。这时如果关闭这个Activity,由于被引用该Activity及它所持有的引用

2017-12-29 00:11:56 247

转载 深入学习WeakHashMap

这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍第2部分 WeakHashMap数据结构第3部分 WeakHashMap源码解析(基于JDK1.6.0_45)第4部分 WeakHashMap遍历方式第5部分 WeakHashMap

2017-12-28 17:29:30 174

转载 【转载】 深入理解WeakHashmap

WeakHashmap(一) 查看API文档,WeakHashmap要点如下:以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除WeakHashMa

2017-12-28 17:27:17 124

转载 计算hashCode的常见方法

1. 把某个非零常数值,比如说17,保存在一个叫result的int类型的变量中。2.对于对象中每一个关键域f(值equals方法中考虑的每一个域),完成以下步骤:a.为该域计算int类型的散列吗c: i. 如果该域是boolean类型,则计算[java] view plain copyf?0:1  ii. 如果该域是

2017-12-27 18:16:32 2006

转载 数组查询Arrays类的binarySearch()方法详解

Arrays类的binarySearch()方法,可以使用二分搜索法来搜索指定的数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供多种重载形式,用于满足各种类型数组的查找需要。1)  binarySearch(Object[], Object key)a: 要搜索的数组key:要搜索的值如果key在数组中,则

2017-12-25 22:50:30 18520 1

转载 设计模式之策略设计模式

1. 策略设计模式介绍策略设计模式定义了一系列算法,并将每一个算法封装起来,而且使他们可以相互替换。策略设计模式让算法独立与使用它的客户而独立变化。2. 策略设计模式使用场景针对同一类型的问题的多种处理方式,仅仅是具体行为有差别时。需要安全地封装多种同一类型的操作时。出现同一抽象类有多个子类,而又需要使用if-else 或者switch-case来选择具体子类时。3

2017-12-21 22:15:39 129

转载 BlockingQueue深入分析

一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)

2017-12-20 21:05:36 142

转载 JAVA HASHMAP的死循环

原文链接:https://coolshell.cn/articles/9606.html在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出

2017-12-15 23:36:45 149

转载 HashMap循环遍历方式及其性能对比

主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论。 1. Map的四种遍历方式下面只是简单介绍各种遍历示例(以HashMap为例),各自优劣会在本文后面进行分析给出结论。(1) for each map.entrySet()Java12345MapString, Stri

2017-12-15 23:29:24 164

转载 Java中4种安全沙箱机制之安全管理器及Java API

简介java安全沙箱的前三类保证了jvm所运行程序的完整性,使得jvm不会因为运行有漏洞或恶意的代码而导致出现不可预期的状态。而第四类沙箱模型是“类安全管理器及Java API”,它能保护jvm在运行有漏洞或恶意的代码不会破坏外部资源。java通过称为安全管理器的一类API来保证这类安全性。安全策略文件首先介绍下安全策略文件,如果启用了安全管理器,默认会使用jre自带的安全策略文件

2017-12-13 15:55:44 2109 1

转载 Java中的4种安全沙箱机制之内置于Java虚拟机(及语言)的安全特性

简介jvm装载一个类,并且对字节码进行了四趟扫描,这些字节码就能安全地被执行了。然而去了这些安全校验,jvm在执行字节码时还进行了一些内置的安全机制校验。这些安全机制主要包括:内存自动分配自动拉机回收机制数组边界检查空指针检查异常处理机制内存自动分配在编写java程序时几乎不能直接分配内存,比如当new一个对象时,jvm会在堆

2017-12-13 15:53:43 697

转载 Java中4种安全沙箱机制之class文件检验器

简介jvm的.class文件检验器用于检查.class文件是否拥有合法的内存结构,这种检查是有必要的,因为java的.class文件可能来自本机,也可能来自网络,可能是你自己编译的文件,也可能是别人篡改过的文件。而对于jvm来说,一个.class文件就是一个字节序列,它不会过问字节序列的来源,只会校验字节序列的结构是否正确。.class文件检验器保证安全的措施就是检验.class文件字节码

2017-12-13 15:47:37 266

转载 java的4种安全沙箱之ClassLoader双亲委派机制

java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是:类加载体系.class文件检验器内置于Java虚拟机(及语言)的安全特性安全管理器及Java API本篇博客主要介绍“类加载体系”的基本原理;如需了解其它几类安全机制可以通过上面的博客链接进入查看。简介“类加载体系”及ClassLoa

2017-12-13 15:43:33 1620

转载 ClassLoader 简单总结

做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm.本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义ClassLoader以及Java中打破双亲委托机制的场景四个方面入手去讨论和总结一下。JDK默认C

2017-12-13 14:17:58 178

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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