Tag: 克隆

在数组上调用clone()是否也克隆其内容?

如果我对types为A的Object的数组调用clone()方法,它将如何克隆它的元素? 该副本是否引用相同的对象? 或者它会为它们中的每(element of type A).clone()调用(element of type A).clone() ?

在C#中创build一个对象的副本

可能重复: 你如何做一个深层复制的对象。NET(具体的C#)? 请看下面的代码(摘自C#书): namespace Example { class MyClass { public int val; } struct myStruct { public int val; } class Program { static void Main(string[] args) { MyClass objectA = new MyClass(); MyClass objectB = objectA; objectA.val = 10; objectB.val = 20; myStruct structA = new myStruct(); myStruct structB = structA; structA.val = 30; […]

在Java中的地图的浅色副本

据我所知,有几种方法(也许还有其他的方法)可以创build一个Java Map的浅表副本: Map<String, Object> data = new HashMap<String, Object>(); Map<String, Object> shallowCopy; // first way shallowCopy = new HashMap<String, Object>(data); // second way shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone(); 其中一种方法比另一种更好,如果是这样,为什么? 有一点值得一提的是,第二种方式给出了一个“Unchecked Cast”的警告。 所以你必须添加@SuppressWarnings("unchecked")来解决这个问题,这有点刺激(见下文)。 @SuppressWarnings("unchecked") public Map<String, Object> getDataAsMap() { // return a shallow copy of the data map return (Map<String, Object>) ((HashMap<String, Object>) data).clone(); […]

这些词在Git中意味着什么:存储库,分支,分支,克隆,跟踪?

老实说,我不清楚这里的语义。 他们都是关于代码+历史单元的副本/变体,但过去我不确定我能说什么。 这个逻辑结构是在什么地方解释的?

如何在Java中克隆generics列表?

我有一个ArrayList<String> ,我想返回一个副本。 ArrayList具有以下签名的克隆方法: public Object clone() 在我调用这个方法之后,如何将返回的Object转换回ArrayList<String> ?

fork(),vfork(),exec()和clone()

我期待在Google上find这四者之间的差异,我预计在这方面会有大量的信息,但这四个调用之间确实没有任何可靠的比较。 我着手编译一下这些系统调用之间的区别,这里是我得到的。 所有这些信息都是正确的/我错过了什么重要的东西? Fork :叉调用基本上是复制当前进程,几乎在所有方面都是相同的(并非所有的东西都被复制,例如,在一些实现中资源限制,但是想法是尽可能地创build副本)。 新进程(subprocess)获取不同的进程ID(PID),并将旧进程(父进程)的PID作为其父PID(PPID)。 因为这两个进程现在运行完全相同的代码,所以他们可以知道哪个是由fork的返回代码 – 子代得到0,父代获得子代的PID。 当然,这一切都假设分叉调用起作用 – 否则,不会创build子对象,并且父对象将获得错误代码。 Vfork :vfork和fork的基本区别在于,当使用vfork()创build一个新进程时,父进程暂时挂起,subprocess可能借用父进程的地址空间。 这种奇怪的状态继续下去,直到subprocess退出,或调用execve(),在这一点父进程继续。 这意味着vfork()的subprocess必须小心,以避免意外地修改父进程的variables。 特别的,subprocess不能从包含vfork()调用的函数返回,也不能调用exit()(如果需要退出,应该使用_exit();实际上,对于subprocess也是这样一个普通的fork())。 Exec :执行调用是基本上用新程序replace整个当前进程的一种方法。 它将程序加载到当前进程空间并从入口点运行它。 exec()用函数指向的可执行文件replace当前进程。 除非有exec()错误,否则控制将不会返回到原始程序。 Clone :克隆,作为分叉,创build一个新的过程。 与fork不同,这些调用允许subprocess与调用进程共享部分执行上下文,如内存空间,文件描述符表和信号处理程序表。 当使用克隆创buildsubprocess时,它将执行函数应用程序fn(arg)。 (这与fork不同,fork从原始fork调用的位置继续执行。)fn参数是一个指向subprocess在执行开始时调用的函数的指针。 arg参数被传递给fn函数。 当fn(arg)函数应用程序返回时,subprocess终止。 fn返回的整数是subprocess的退出代码。 subprocess也可以通过调用exit(2)或在收到致命信号后明确终止。 获得的信息forms: fork和exec之间的区别 http://www.allinterview.com/showanswers/59616.html http://www.unixguide.net/unix/programming/1.1.2.shtml http://linux.about.com/library/cmd/blcmdl2_clone.htm 感谢您抽时间阅读 ! 🙂

git:致命的:我不处理协议'http'

我从网页上复制并粘贴一个git clone命令: https : //fedorahosted.org/ibus-typing-booster/ 我懂了: user@host> git clone ​​http://git.fedorahosted.org/git/ibus-typing-booster.git Cloning into 'ibus-typing-booster'… fatal: I don't handle protocol '​​http'

如何在PHP中创build对象的副本?

看来在PHP中,对象是通过引用传递的。 即使赋值运算符似乎也没有创build对象的副本。 这是一个简单的,人为的certificate: <?php class A { public $b; } function set_b($obj) { $obj->b = "after"; } $a = new A(); $a->b = "before"; $c = $a; //i would especially expect this to create a copy. set_b($a); print $a->b; //i would expect this to show 'before' print $c->b; //i would ESPECIALLY expect this to show […]

Java:Cloneable接口的基本原理

为什么在java.lang.Cloneable接口中没有指定.clone()方法?

在Javascript中克隆一个文件input元素

我有一个文件input元素,需要克隆后,用户浏览并select一个file upload。 我开始使用obj.cloneNode(),一切工作正常,直到我试图在IE中使用它。 我从此尝试使用jQuery的克隆方法,如下所示: var tmp = jQuery('#categoryImageFileInput_'+id).clone(); var clone = tmp[0]; 在FireFox中按预期工作,但在IE中却不行。 我卡住了。 任何人有一些build议?