介绍
这篇文章将为大家详细讲解有关怎么通过JVM角度谈谈Java的克隆操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
<强>前言强>
最近在给熔断器组件增加一个降级策略(Hystrix好像没有这个配置),我们提供了如下几种策略:
1,默认策略
2,返回常量值
3,抛出指定异常
4,执行一段groovy脚本
当然了,这些配置都是可以在平台上配置,并立即生效的。
目前返回常量值的实现如下:
class Master { ,String 名称; ,public 主(String 名称),{ this.name 才能=,名称; ,} }
初始化一个主类
class Dog implements Cloneable { ,String 名称; ,int 年龄; ,Master 主; ,public 狗(名称、String int 年龄,Master 主),{=,this.name 名称;=,this.age 年龄;=,this.master 主; ,} ,@Override ,protected Object 克隆(),throws CloneNotSupportedException { ,return super.clone (); ,} ,@Override ,public String  toString (), { ,return “{名称:“,+,name +,,,,年龄:,“,+,age +,,,,主人:,“+,master.name +,“}”; ,} }
再初始化一条狗
public static void main (String [], args), throws Exception { ,Master Master =, new 主(“zj0"); ,Dog dog1 =, new 狗(“旺财”,,1,,掌握); ,Dog dog2 =,(狗)dog1.clone ();=,dog1.name “比利“;=,dog1.master.name “zj1"; ,System.out.println (dog2); }
最后运行一下,结果如下:
{名称:旺财,,年龄:,1日,大师:,zj1}
dog1是原始狗,dog2是克隆出来的,但是我修改dog1的主人的名字时,克隆的主人也跟着变化了,这显然不行。
虽然一直都知道对象的克隆方法是浅克隆,也一直没继续探索一下,今天碰到了就顺手看下JVM的实现,好像很简单,在jvm.cpp文件中,搜索“JVM_Clone"
关于“怎么通过JVM角度谈谈java的克隆操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。