Java集合如Map、Set、List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int、long、float、double等基础类型的数据。
......
为什么 stop() 和 suspend() 方法被废除
JDK1.0定义了stop和suspend方法:
从JDK1.2开始,这两个方法都被弃用了.stop天生就不安全,而经验告诉我们呢suspend方法会经常导致死锁。
stop这个方法将终止......
记录HashMap的七个面试题
第一题:当key为null时,这次put操作,数据将被放入哪个桶位?为什么?
0号桶位,这是因为HashMap计算桶位是根据你传入key的hashcode进行一个扰动函数或者说二次hash之后,然......
Java 拷贝文件的 9 种方式和FileInputStream,BufferedInputStream 和 FileReader 区别
为了比较 Java 几种方式读取字符的速度,博主从网上下载了一个 三国演义.txt ,文件大小 1196684 字节,即 1.1 MB。
先放总结
如果是对图片、音......
谈谈ConcurrentHashMap1.7和1.8的不同实现
ConcurrentHashMap
在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为......
线程安装的List:Collections.synchronizedList与CopyOnWriteArrayList比较
之前帮一个朋友写代码的时候,遇到一个需要遍历列表。
一、单线程:性能较差
版本一、单线程方式
Long startTime = Syste......
线程池ExecutorService和CountDownLatch组合使用处理大量数据和统计时间
最近在做公司的项目数据迁移,需要把大量的数据查出来做一些逻辑处理,依靠基本是不能完全实现,还是需要我们通过代码来处理。
传统操作是查出所有数据,然后遍历处理。
为了发挥多核CPU的优势,提升处理速度,......
HashMap的容量与扩容
紧接着上一篇文章 HashMap 实现原理和源码分析,因为上篇文章在扩容方面写得并不详细,博主于是在网上找了一篇比较好的关于 HashMap 的扩容的文章
原文地址:http://blog.c......
HashMap 实现原理和源码分析
HashMap 源码分析是面试中常考的一项,下面一篇文章讲得很好,特地转载过来。
本文转自:https://www.cnblogs.com/chengxiao/p/6059914.html
......
Vector和Arraylist的区别
最近上了 JSP 课程,其中有一个作业是实现一个简单的留言板,就是把留言内容加到 application 对象中。
部分代码如下
<%! Vector v=new Vec......
成员变量、全局变量、实例变量、类变量、静态变量和局部变量的区别
变量名首写字母使用小写,如果由多个单词组成,从第2个单词开始的其他单词的首写字母使用大写。
如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this
&......
HashMap多线程并发问题分析
一、并发问题的症状
1.多线程put后可能导致get死循环
CPU利用率过高一般是因为出现了出现了死循环,导致部分线程一直运行,占用cpu时间。问题原因就是HashMap是非线程安全的,多个线程p......
轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理
原文地址:http://blog.csdn.net/yanyan19880509/article/details/52435135
前言
前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进......
深入剖析java并发之阻塞队列 LinkedBlockingQueue 和实现“生产者/消费者”模式
上一篇文章介绍了使用 wait/notify 实现 生产者消费者,先看下面这个例子
public class ProductTest3 {
public sta......
线程的五大状态
Java中的线程的生命周期大体可分为5种状态。
1. 新建(NEW):新创建了一个线程对象。
2. 可运行/就绪(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的st......