`
pi88dian88
  • 浏览: 40700 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
从oracle上面找了很久的jdk6的下载地址,记录下。   http://www.oracle.com/technetwork/java/javase/archive-139210.html   可以找到各种版本的jdk
下面的内容基本上来自于《Java并发编程实践》, 留个记录~   一, ReentrantLock ReentrantLock实现了Lock接口,提供了与synchronized 相同的互斥和内存可见性的保证。获得ReentrantLock的锁与进入synchronized 块有着相同的内存语义;释放ReentrantLock锁与退出synchronized块有着相同的内存语义。下面是Lock接口的定义:   package java.util.concurrent.locks; import java.util.concurrent.TimeUnit; public int ...
下面的内容基本上来自于《Java并发编程实践》, 留个记录~   一,CountDownLatch CountDownLatch是一个灵活的闭锁的实现,允许一个或多个线程等待一个事件集的发生。 闭锁的状态包括一个计数器,初始化为一个正数,用来表现需要等待的事件数。countDown方法对计数器做减操作,表示一个事件已经发生了,而await方法会一直阻塞直到计数器为0,或者等待线程中断以及超时。   下面是n个线程并发执行的例子 public class CountDownLatchTest { public long concurrentTasks(int nThreads ...
IOC: Inversion of Control, 指由spring容器来生成对象并且完成对象的装配。   下面来看下这两个问题:(下面是以 ClassPathXmlApplicationContext为起点) 1, spring如何生成对象? 2, spring如何完成对象组装?   完成这个的核心是通过BeanFactory,下面是BeanFactory的代码: public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String ...
相同点: Hashtable 和 ConcurrentHashMap都是线程安全的,可以在多线程环境中运行; key跟value都不能是null 区别: 两者主要是性能上的差异,Hashtable的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能较差; ConcurrentHashMap内部使用Segment数组,每个Segment类似于Hashtable,在“写”线程或者部分特殊的“读”线程中锁住的是某个Segment对象,其它的线程能够并发执行其它的Segment对象。   下面从下面两个问题来具体了解下Hashtable和ConcurrentHashMap 1, Hash ...
刚开始的时候,只是想导入源码直接看,但是水平不够,有些流程不知道怎么走了,, 于是搭建了调试的环境,边调试边学习。 搭建调试的环境可以参考下面的链接: http://blog.csdn.net/teabook00/article/details/5620023   下面先粗略的 ...
Vector和ArrayList非常相似,两者都是用来表示可变数组,内部元素的存储都是通过数组来实现,可以随机的访问某个元素。 两者的主要区别是Vector的方法带有synchronized标志,各方法的访问是同步的,因此,Vector能够支持多线程,但是相应地效率比较低;ArrayList的方法没有synchronized标志,不是线程安全的。还有个比较小的差异是Vector在容量不够时,选择 size * 2扩容;ArrayList选择 size * 3/2 + 1扩容。   下面先来看下ArrayList的源码:   public class ArrayList<E> ...
, 以前一直没觉得,现在发现写博客还是一件蛮有趣的事情, :)   动态代理的实现有两种方式: 一种是jdk的动态代理,实现类必须实现某个接口; 另一种是cglib,使用底层的字节码技术,对实现类没有要求。   首先来看一个简单使用jdk动态代理的例子: 第一步: 定义接口   public interface Animal { public String getName(); }  第二步:具体实现类     public class Dog implements Animal { @Override public String getName() { ...
  , 之前在面试的时候遇到了这个问题,没有理清楚相互之间的同步关系,现在有空记录下~     静态方法同步形式如:  static  synchronized method()   非静态方法同步形式如: synchronized method()     其中, 静态同步(static synchronized)锁定的对象是class,非静态方法同步锁定的对象是 当前对象(this)。   //方法1 public synchronized void method1() { } //方法2 public synchronized void method2( ...
  引用自 http://blog.csdn.net/jerryao/article/details/874101 Java栈与堆----对这两个概念的不明好久,终于找到一篇好文,拿来共享1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地 ...
偶然看到介绍Java内存泄漏的文章,写得很清晰 http://www.programcreek.com/2013/10/the-introduction-of-memory-leak-what-why-and-how/
/* 2.    * Copyright 2002-2010 the original author or authors. 3.    * 4.    * Licensed under the Apache License, Version 2.0 (the "License"); 5.    * you may not use this file except in compliance with the License. 6.    * You may obtain a copy of the License at 7.    * 8.    *      ...
转载自:http://blog.csdn.net/youacai/article/details/6732099?reload 下面是一个Web应用的开源列表。没什么可说的,太疯狂了。尤其是Web 2.0那一堆。我不知道你怎么想,有些开源项目的源码写得挺不好的,尤其是性能方面。或许你会以为改一改他们就可以成为为自己所用,不过,改这些开源的项目还真不容易。玩玩还可以。 数字媒体 相册(Flickr, Picasa) Gallery,基于PHP + MySQL的Web相册。非常易于使用,包括一个配置向导,对于相片的操作包括自动生成缩略图、相片的大小改变、选择、排序等。 Piwigo,基于PHP ...
Global site tag (gtag.js) - Google Analytics