JRockit权威指南:深入理解JVM(223.7MB)PD

电脑杂谈  发布时间:2019-05-13 17:15:51  来源:网络整理

满硕泉cocos2d-x权威指南^^^cocos2d-x权威_cocos2d-x权威指南_weblogic权威指南

给大家带来的一篇关于JRockit相关的电子书内容,介绍了关于JRockit、JRockit指南、JVM方面的内容,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.6,更多相关的学习资源可以参阅 程序设计电子书、等栏目。weblogic权威指南

JRockit权威指南:深入理解JVM

JRockit权威指南:深入理解JVM 电子书封面

内容节选

前言

最近在给熔断器组件增加一个降级策略(Hystrix好像没有这个配置),我们提供了如下几种策略:

cocos2d-x权威指南_weblogic权威指南_满硕泉cocos2d-x权威指南^^^cocos2d-x权威

1、默认策略

2、返回常量值

3、抛出指定异常

4、执行一段groovy脚本

当然了,这些配置都是可以在平台上配置,并立即生效的。

目前返回常量值的实现如下:

weblogic权威指南_cocos2d-x权威指南_满硕泉cocos2d-x权威指南^^^cocos2d-x权威

今天发现,如果每次都返回同一个对象,而且这个逻辑对业务来说是黑盒(业务不知道每次拿到的对象是同一个),如果对这个对象进行了操作,那肯定会影响到其它的请求,为了避免背锅,我们需要每次返回一个新的对象,第一反应是通过clone是否可行(因为每次json的序列化也会损耗性能),但是jdk自带的clone方法只是浅克隆,如果对象中包含了另一个复杂对象,clone出来的对象还是存在被修改的风险。

详细介绍:

大家可以看下面一个例子:

class Master {
 String name;
 public Master(String name) {
  this.name = name;
 }
}

初始化一个Master类

weblogic权威指南_cocos2d-x权威指南_满硕泉cocos2d-x权威指南^^^cocos2d-x权威

class Dog implements Cloneable {
 String name;
 int age;
 Master master;

 public Dog(String name, int age, Master master) {
 this.name = name;
 this.age = age;
 this.master = master;
 }

 @Override
 protected Object clone() throws CloneNotSupportedException {
 return super.clone();
 }

 @Override
 public String toString() {
 return "{name:" + name + ", age: " + age + ", master: "+ master.name + "}";
 }
}

再初始化一条狗

public static void main(String[] args) throws Exception {
 Master master = new Master("zj0");
 Dog dog1 = new Dog("旺财", 1, master);
 Dog dog2 = (Dog)dog1.clone();
 dog1.name = "比利";
 dog1.master.name = "zj1";
 System.out.println(dog2);
} 

最后运行一下,结果如下:

{name:旺财, age: 1, master: zj1}

而他原本想要的制造傀儡的能力,也会完全合并到原始圣域里面,十二万九千六百个克隆体制造的傀儡只要不离开原始圣域就可以无限重生,而他也根本不会让这些克隆体离开。教师打开两篇文章,一篇是原始文章,另一篇是在原始文章的基础上修改过的,对比两篇文章的异同,叫学生动脑筋想一下要将原始文章变成另外一篇,应怎样修改法。一旦第三方库的安装路径变化了,golang的代码也要跟着变化,所以使用pkg-config无疑是一种更为优雅的方法,不管库的安装路径有何变化,我们都不需要修改go代码,接下来本博主就用一个简单的例子来说明如何在cgo命令中使用pkg-config。

weblogic权威指南_cocos2d-x权威指南_满硕泉cocos2d-x权威指南^^^cocos2d-x权威

虽然一直都知道Object的clone方法是浅克隆,也一直没继续探索一下,今天碰到了就顺手看下JVM的实现,好像很简单,在jvm.cpp文件中,搜索"JVM_Clone"

以前一直没用过clone这个方法,通过源码发现在运行的时候会检查类是否实现Cloneable接口,编译的时候不检查,想啥呢?

根据对象或者数据的大小,从堆中开辟一块同等大小的内存,然后把原始对象的数据都复制到新的内存地址,对于基本类型,可以把原始值复制过来,但是对于内部对象来说,其保存的只是一个地址,复制时也是对地址的复制,最终还是指向同一个对象,所以就造成了上述的问题。

内容介绍

《open gl编程指南》对opengl以及opengl实用函数库进行了全面而又权威的介绍。《opengl编程指南》对opengl以及opengl实用函数库进行了全面而又权威的介绍。《华章程序员书库:opengl编程指南(原书第8版)》是由khronos小组编写的官方指南,是opengl领域的权威著作,素有“opengl红宝书”的美誉。

目录


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-98406-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...