草庐IT

CLONE_VM

全部标签

java - 使用 new 关键字创建对象与使用 clone 方法之间的区别

使用new关键字创建对象和使用clone()创建对象有什么区别??内存分配有什么区别吗? 最佳答案 new根据构造函数创建一个对象,而clone()创建一个新对象并使用原始对象的内容初始化字段。我接受了,您阅读了javadoc,所以让我带您看一个示例:publicclassMyBabyimplementsCloneable{intage=0;Stringname="Dolly";Listlist=newArrayList();publicstaticvoidmain(String[]args){MyBabyoriginalBaby=

java - GWT 使用 DOM.clone 克隆一个小部件

我希望以编程方式克隆一个小部件。我可以使用Dom.clone在Widget中克隆Element,但我似乎无法从这个克隆的元素创建Widget。这可能吗?//somewhereinonModuleLoad()...Buttonbutton=newButton("Original");RootPanel.get().add(button);//.....lateron...ElementbuttonCloneElement=DOM.clone(button.getElement(),true);WidgetbuttonClone;buttonClone=newButton(buttonCl

java - 哪些 VM 或 GC 支持 JNI 固定?

GetArrayElements函数族被记录为复制数组或将它们固定到位(并且这样做可以防止压缩垃圾收集器移动它们)。它被记录为比GetPrimitiveArrayCritical更安全、限制更少的替代方案.但是,我想知道哪些VM和/或垃圾收集器(如果有的话)实际固定数组而不是复制它们。 最佳答案 较旧的IBMJVM已固定(1.4及更早版本-即:不是当前的IBMJ9JVM),但从那时起,它们就没有了。一般来说,JVM不喜欢固定,因为它确实会扰乱复制垃圾收集器,而这正是当今大多数生产JVM所做的事情。我不是100%最新的(即:最新的Ja

java - 避免 VM 启动时使用的类使用 lambda 和流

通过java.lang.module我在类文档中阅读了以下内容:@implNote...isusedatVMstartupandsodeliberatelyavoidsusinglambdaandstreamusagesincodepathsusedduringstartup.使用此处避免的lambda和流的原因是什么?它们可能产生的影响是什么?插图将有助于更好地理解,但不是在这里寻求意见。 最佳答案 不依赖lambda和流(广泛使用lambda)有助于避免在VMBootstrap中进行冗余工作。这反过来又减少了启动时间和内存占用。

java - 为什么 java.lang.Cloneable 没有覆盖 java.lang.Object 中的 clone() 方法?

java.lang.Cloneable接口(interface)的Java规范将自身定义为表示任何扩展它的对象也已经实现了clone()方法,该方法在其中处于hibernate状态java.lang.Object。具体来说,它说:AclassimplementstheCloneableinterfacetoindicatetothejava.lang.Object#clone()methodthatitislegalforthatmethodtomakeafield-for-fieldcopyofinstancesofthatclass.对我来说,这意味着应该假设每个扩展Cloneab

java - IntelliJ 调试 : Suspend whole VM then step on single thread

我正在调试一个有很多线程的应用程序。我的断点设置为暂停整个VM。当线程遇到其中一个断点时,我想使用StepOver。但这似乎会恢复整个虚拟机,直到该步骤完成。如果我可以只步进遇到断点的单个线程,那将非常有帮助。在IntelliJ11.1/Java6中有什么方法可以做到这一点吗?(希望我没有遗漏一些明显的东西......) 最佳答案 此功能已在IntelliJ16中添加(他的回答中引用的CrazyCoder问题已解决)更多细节在这里:https://blog.jetbrains.com/idea/2016/02/intellij-id

java - String.hashCode() 是否可以跨 VM、JDK 和操作系统移植?

最近出现了一个有趣的问题。我们遇到了一些使用hashCode()作为MD5加密盐源的代码,但这引发了一个问题:hashCode()是否会为同一对象返回相同的值在不同的虚拟机、不同的JDK版本和操作系统上?即使不能保证,到目前为止它是否有任何变化?编辑:我的意思是String.hashCode()而不是更通用的Object.hashCode(),后者当然可以被覆盖。 最佳答案 没有。来自http://tecfa.unige.ch/guides/java/langspec-1.0/javalang.doc1.html:Thegenera

java - 为不可变类实现 clone()

我正在开发一个类库。我有一个矩阵的抽象基类Matrix,它提供一些基本方法的实现。从Matrix派生的是不同类型矩阵的具体子类。我要求矩阵是可克隆的,所以Matrix实现了Cloneable接口(interface)。一些从Matrix派生的类是不可变的不可变类的克隆方法不返回对象的克隆,而是返回对象本身是否可以接受?用于澄清的一些(过于简化的)代码:abstractclassMatriximplementsCloneable{...}classImmutableMatrixextendsMatrix{ImmutableMatrixclone(){returnthis;}...}cla

java - 如何获取正在运行的 Java VM 的名称?

如何找到当前运行的java虚拟机名称?我想从javaAPI获取它。谢谢 最佳答案 由于您没有真正指定要查找的内容,请查看这些系统属性:“java.vm.name”“java.home”“java.version”“java.vendor”“java.specification.vendor”像这样:System.out.println(System.getProperty("java.vm.name"));System.out.println(System.getProperty("java.home"));System.out.p

git clone 项目报错early EOF 的解决方式

年后第一天开工拉取代码时遇到一个报错,earlyEOF,上网查说一般出现这种错误的原因是目标仓库太大了,顾尝试修改git缓存后重试:gitconfig--globalhttp.postBuffer1048576000将http.postBuffer设置的尽量大,例如524288000即500M,1048576000即1G。设置的缓存大小一定要比工程大小多一些。如若还是没能解决,可尝试为git添加compression配置选项后重试:gitconfig--globalcore.compression-1compression是压缩的意思,左后的取值为[-1,9],-1以zlib为默认压缩库,0表