- 浏览: 49015 次
- 性别:
- 来自: 酆都
最新评论
文章列表
最近安装了win7旗舰版,一切都很不错,但是当我用远程桌面连接连接server 2003的服务器时,速度变得不可忍受,单击一下鼠标右键要等3秒钟左右才会有显示,本以为是服务器中了木马,研究了半天最后确定服务器没问题,这是 ...
JDK动态代理实现原理
- 博客分类:
- JAVA语言
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。
Java代码
package dynamic.proxy;
/**
* 转载请注明作者longdick http://longdick.iteye.com
*
*/
wait()、notify()、notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态。
这三个方法最终调用的都是jvm级的native方法。随着jvm运行平台的不同可能有些许差异。
如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。
如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程可以继续运行。
如果对象调用了notifyAll方法就会通知所有等待这个对象控制 ...
哈希码产生的依据: 哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。 下面给出几个常用的哈希码的算法:1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以hashcode可以做到尽可能的不一样,但我们要清楚一点,既然是用到hash技术,就是要解决冲突的,所以hashcode是会出现相同的时候,我们可以将hashCode相同的看成放入同一个桶中。
Java代码
package c ...
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integ ...
ArrayList的实现原理
- 博客分类:
- JAVA语言
1. ArrayList概述:
ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都 ...
一般在类似于下面的情景下考虑线程安全的问题:
ArrayList products=new ArrayList ();
products用来存放生产出来的产品。
现在假设:有3个消费者线程,2个生产者线程。
每个生产者线程生产出一个产品,执行
products.add(new Product());
每个消费者线程消费一个产品执行
if(products.size()>=1){ products.remove(0);}
如果products里现在只有一个产品可以消费,但是有2个消费者线程请求消费,那么就有可能出现一个产品被同时消费的问题,而这是和实际不符的。
...
1、 继承和实现区别
Hashtable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java 1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)。
2、 线程安全不同
HashTable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。
3、 对null的处理不同
HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。即 HashTable不允许null值其实在编译期不 ...
Java集合HashMap的实现原理(借鉴)
- 博客分类:
- JAVA语言
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。
通过 HashMap、HashSet 的源代码分析其 Hash 存储机制
实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用
F区别
sleep()方法
sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会; sleep()是Thread类的Static(静态)的方 ...
ThreadLocal的作用
- 博客分类:
- JAVA语言
看了N个贴子,ThreadLocal讲得都不是很清楚,纠缠与synchronized的区别。直到看了http://qqdwll.iteye.com/blog/685586 才清晰了ThreadLocal的作用。
ThreadLocal可以为每个线程维护自己的变量,对于多线程使用同一对象可以起到管理作用。
先看个例子:
Java代码
package com.koubei.Observable;
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。 而如果是使用 StringBuff ...
在controlfile中记录着每一个archivelog的相关信息,当然在OS下把这些物理文件delete掉后,在我们的
controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法:
1. 进入rman
2. connect target /
3. crosscheck archivelog all;
4. de ...
1、下载jdk7.0 for linux 我下载的版本为:jdk-7u3-linux-i586.rpm 下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html
2、将 jdk-7u3-linux-i586.rpm 上传到用户目录
[root@yanghu tiger]# rpm -ivh jdk-7u3-linux-i586.rpm Preparing... ################################### ...
Eclipse+PHP+XDebug 完美配置
- 博客分类:
- PHP语言
一.准备工作:
1.下载Eclipse for PHP
http://www.eclipse.org/downloads/
下载最新的Eclipse for PHP。
2.下载Apache
http://httpd.apache.org/download.cgi
这里面下载Apache,不过提醒一句,你的PHP版本必须和Apache版要兼容,否则,只能看着屏幕发呆了。
我用的是Apache2.0.58。
3.下载PHP
http://www.php.net/downloads.php
记得兼容。我用的是PHP5.1.2,在这里需要提醒下,看清楚自己的PHP版本,在后面我 ...