- 浏览: 42635 次
- 性别:
- 来自: Korea
最新评论
文章列表
JAVA深复制(深克隆)与浅复制(浅克隆)
- 博客分类:
- 编程基础
JAVA深复制(深克隆)与浅复制(浅克隆)
1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不
复制它所引用的对象。
⑵深复制(深克隆)被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原
有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。
2.Java的clone()方法⑴clone方法将对象复制了一份并返回给调用者。一般而言,clone()方法 ...
多线程测试interrupt作用的小例子
- 博客分类:
- 多线程
class Demo implements Runnable{
public void run(){
try{
System.out.println("**********************in run()-这个线程休眠20秒");
Thread.sleep(20000); //Thread.sleep(2000);
System.out.println("**********************in ...
java中的volatile的用法
- 博客分类:
- 多线程
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的 ...
闲来无事,来写写合并排序,第一次看到合并排序,我相信大家可能像我一样感觉看的有点迷糊,特别合并排序的思想:是将一个数组分成2个较小有序的数组,然后才进行合并排序。迷糊的地方:主要是下面涂色的地方,在归并前2个数组有序(怎么有序呢?),然后只要大家联想到递归或者树的遍历就知道,在将每个较大的数组拆分的时候呈现一个树形,到最后只有一个数字(有序),然后再依此合并。import java.util.*;public class Merge1
{ private int[] bridge;
public static void main(String args[]) { int[] brig ...
[转载]Java 编程经验(牛人写的) 上
- 博客分类:
- 编程基础
1. 关于动态加载机制??学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:在命令行窗口运行Java程序的时候,加上这个很有用的参数:java ?verbose *.class这样会清晰的打印出被加载的类文件,大部分是jdk自身运行需要的,最后几行会明显的看到自己用到的那几个类文件被加载进来的顺序。即使你声明了一个类对象,不实例化也不会加载,说明只有真正用到那个类的实例即对象的时 ...
Builder 模式
- 博客分类:
- 设计模式
java建造者模式
(2010-04-09 16:05:26)
转载
<script></script>标签:
杂谈
<!-- 正文开始 -->
对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要。刚才google到一篇文章,总算清楚了。在这里转贴一下这位richardluo的比喻。简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要 ...
相信大家都听说过TCP/IP这个词,这个词好像无处不在,时时都会在你面前跳出来。那TCP/IP到底是什么意思呢?TCP/IP其实是两个网络基础协议:IP协议、TCP协议名称的组合。下面我们分别来看看这两个无处不在的协议。IP协议 IP(Internet Protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以知道IP协议的重要性。在现实生活中,我们进行货物运输时都是把货物包装成一个个的纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。IP协议规定了数据传输时的基本单元和格式。如果比作货物运输,IP协议规定了货物打包时的包装箱尺寸和包装的程序。 ...
第一部分、十道海量数据处理面试题
1、海量日志数据,提取出某日访问百度次数最多的那个IP。
首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。
或者如下阐述(雪域之鹰):算法思想:分而治之+Hash
1.IP地址最多有2^32=4G种取值情况,所 ...
一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引 ...
海量数据处理专题(五)——堆
海量数据
<!-- /.postdata -->
<!-- /.title -->
<!-- /.title-container -->
【什么是堆】概念:堆是一种特殊的二叉树,具备以下两种性质1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值2)树是完全平衡的,并且最后一层的树叶都在最左边这样就定义了一个最大堆。如下图用一个数组来表示堆:
那么下面介绍二叉堆:二叉堆是一种完全二叉树,其任意子树的左右节点(如果有的话)的键值一定比根节点大,上图其实就是一个二叉堆。
你一定发觉了,最 ...
理解notify与wait在线程里面的使用
- 博客分类:
- 多线程
public class MultiThread {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub 8 new Thread(new Thread1()).start(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } new T ...
public class ThreadTest1 { private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ Thread t=new Thread(inc); t.start(); t=new Thread(dec); t.start(); ...
原型模式: 用原型实例指定传经对象的种类,并且通过拷贝这些原型创建新的对象。其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。
根据上一篇 《浅拷贝和深拷贝》的内容,我们知道,浅拷贝后原对象(A)和复制出来的对象(B)中对其他对象的引用都是相同的。如果复制出来的对象(B)改变了其保存的其他对象(C)的引用内容,那么这个原对象(A)对保存的其他对象(C)也会跟着改变。
使用原型模式的目的,就是希望能够复制出多个对象,并且每个对象都是独立存在,每个对象所引用的对象也没有和其他对象共享。
结合<大话设计模式>中的复制简历的例子来讨论,为 ...
还没有将Spring的一些基本概念详细的整理出来,现在网上找了篇,基本算是都概括了。 转载于http://blog.sina.com.cn/s/blog_49d3ec2f0100pndi.html spring 的优点?
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提 ...