自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

转载 Java并发编程——锁与可重入锁

转载:http://www.jianshu.com/p/007bd7029faf简单锁在讲述简单锁的实现之前,我们先来看一个锁的应用例子:public class Counter{ private Lock lock = new Lock(); private int count = 0; public int inc(){ lock.l

2017-05-14 21:46:33 237

转载 Tomcat实现Session对象的持久化原理及配置方法介绍

对 于一个企业级应用而言,Session对象的管理十分重要。Sessio对象的信息一般情况下置于服务器的内存中,当服务器由于故障重启,或应用重新加载 时候,此时的Session信息将全部丢失。为了避免这样的情况,在某些场合可以将服务器的Session数据存放在文件系统或数据库中,这样的操作称为 Session对象的持久化。Session对象在持久化时,存放在其中的对象以序列化的形式存放,这就是

2017-04-09 23:00:55 2551

原创 ThreadLocal用法和原理

ThreadLocal使用背景: ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。在多个线程对一个对象进行频繁操作,而且此时并不希望看到其他线程的修改痕迹,而是希望每个线程都能有自己的局部变量时,ThreadLocal就充当了对这个变量的包装,使得针对每个线程都是局部变量。 最常见的还是一些工具

2017-04-09 02:22:33 393

原创 为什么要使用反射加载数据库驱动

public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/test"; String username = "root

2017-04-08 12:03:56 5176

转载 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析

转自:http://www.cnblogs.com/liuling/p/2013-8-21-04.html 在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报java.util.ConcurrentModificationException异常,下面看一个例子演示: 1 package com.others; 2 3 import

2017-03-29 16:10:01 302

转载 volatile 可以保证可见性,但不能保证原子性

转自:http://blog.csdn.net/shukebai/article/details/51163068在Java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。

2017-03-28 21:50:17 1616 1

原创 LinkedList的方法分析

可以看出来LinkedList不仅实现了List接口,还实现了Deque(双端队列),这使得LinkedList可以实现队列的一些特性// 成员变量:header是一个entry实例,既然知道linkedlist是实现了链表结构,header// 显然是头结点,而且可以看出来,header并不用于存放元素,而是为其他元素提供一个初始// 位置private transient Entry<E>

2017-03-26 23:36:51 248

原创 ThreadPoolExecutor分析与理解(1)

由继承关系可以看出线程池的顶级接口是Executor,但正如我之前在接口和抽象类中所说的,Executor并不是描述一个线程池,它只提供了一个 void execute(Runnable command)方法,可以看出来是执行任务的入口。 真正的线程池接口描述是ExecutorService,里面已经提供了shutdown(),submit(Callable task)等核心方法,而真正的线程池实

2017-03-22 17:25:27 305

原创 ArrayList的其他部分方法分析

// 不带参数的构造,直接给一个空数组,等待add的时候再扩容public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }// 很好理解,一目了然 public ArrayList(int initialCapacity) { if (initialCapacit

2017-03-22 02:02:15 200

原创 ArrayList的add和remove方法

public boolean add(E e) {// 根据所需长度和现有的size对数组进行扩容 ensureCapacityInternal(size + 1); // size是elementData数组长度,加一则是add这个操作所需的长度 elementData[size++] = e; return true; }privat

2017-03-21 17:27:27 1559

原创 HashMap的原理分析(2)get和remove方法的实现

public V get(Object key) { // 如果key为空,用get空key方法处理 if (key == null) return getForNullKey(); // 计算key的hash值 int hash = hash(key.hashCode()); // in

2017-03-20 23:19:08 1969

原创 HashMap的原理分析(1)put方法的实现

V put(K key, V value)方法实现 public V put(K key, V value) {// 如果entry[]为空,那么要进行初始化 if (table == EMPTY_TABLE) { inflateTable(threshold); }// 如果key为空,那么调用put空key的方法 if

2017-03-20 20:23:27 366

转载 Java并发编程:线程池的使用

作者:海子    出处:http://www.cnblogs.com/dolphin0520/    在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  

2017-03-19 23:31:16 279

原创 接口和抽象类的个人理解

接口在日常开发中用的很多,反倒是抽象类用的不太多,说来惭愧,也用了很长时间的java,一直没有好好地研究一下接口和抽象类究竟有什么区别。抽象类和继承类是继承关系,所以根据设计原则,必须得满足 “子类  is a 抽象类“接口和实现类没有这样的关系,接口和实现类的关系更像是一种局部和整体的关系,也正是因为这样,抽象类只能单继承,而可以实现多个接口。如果有一个Hotel,他具备

2017-03-19 20:26:42 1506

转载 https+ssl详解

转载自:http://www.cnblogs.com/sgdkg/archive/2013/07/10/3182483.html把这几天学习到的关于ssl和https协议的内容在这里分享一下,适合一些像我一样的网络协议初学者。ssl协议的起源和历史我就不再多说了,就是那个Netscape 网景公司开发的,它的作用主要是提供了一种安全传输方式,我们知道网上有很多的时候需要

2017-03-14 17:03:49 478

转载 浅谈https\ssl\数字证书

转自 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html名词解释首先解释一下上面的几个名词:https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在htt

2017-03-14 16:46:00 293

原创 关于ConcurrentHashMap作缓存

阅读spring的aop部分源码,AdvisedSupport这个类中把拦截器链放在一个ConcurrentHashMap中,作为缓存,这里考虑到并发因素显然不能使用hashmap,hashtable也许也可以,可以尝试一把。 “java // 初始化拦截器链缓存 private void initMethodCache() { this.method

2017-03-12 21:21:36 1534

原创 spring如何解析元素

spring如何解析元素class DefaultNamespaceHandlerResolver:public NamespaceHandler resolve(String namespaceUri) { // 获取命名空间处理器 Map<String, Object> handlerMappings = getHandlerMappings();

2017-03-09 13:50:02 496

libvirt源码

libvirt源码,用于安装,0.9.11

2013-05-28

空空如也

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

TA关注的人

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