当前位置: 首页 > 面试题库 >

Valhalla项目的价值类型是什么?

鄂伟兆
2023-03-14
问题内容

我已经开始阅读有关Valhalla项目的信息,而我确实不了解某些内容,那就是Value Types

这是我的理解:

1)是无法将其作为参考的对象吗?

final ValueType a = new ValueType();
final ValueType b = a;
System.out.println(a==b); returns false????

Google AutoValue
代码示例中,它指出

if(o == this){return true;}//equals method implementation what is this? I am comparing references here right?

2)根据Wikipedia, 高效的小型“对象”没有继承 。什么Small Objects?Without inheritance意味着什么呢?

使用VT无法做到这一点吗?

public final class ValueType extends Any //is this not possible??

3)为什么要使用它们?将使用哪种方案以及如何使用。

4)根据Google AutoValue Library,简而言之,
值类型对象是没有身份的对象,即,如果两个值对象的内部状态相等,则认为这两个值对象相等。
我的问题是:它们是否具有状态,是否应该实施equalshashcode。什么是 没有身份的对象 是什么意思?

5)这个断言正确吗?

public static void main(final String[] args)
{
    final Test clazz = new Test();
    final AutoValue value = new AutoValue("Java Belongs to SUN");//Constructor Name
    clazz.mutate(value);
    System.out.println(value.getName()); //would print: Java Belongs to SUN??
}
private void mutate(final AutoValue value){value.setName("Java now is part of Oracle Corporation");return;}

如果是这样,JVM是否会获得不跟踪Objects or Values方法调用之间的内存的内存?

Project Valhalla Java 10初始项目的一部分将在2018年左右准备就绪。


问题答案:

您的最终主张是正确的。将ValueType变量作为参数传递给函数时,这些变量将完全复制,而不是通常仅获取对对象的引用的副本。这样,您就可以将小对象视为值类型(如int或boolean)。



 类似资料:
  • 问题内容: 我想编写Sql Query,以按百分比增加商品价格。 场景是:- 在表中,我有3个栏目:ID,项目名称,价格 问题答案: 如果您要更新表,则可以进行条件更新。 如果您希望在选择时不对表进行任何更新就显示增加的价格,则可以执行以下操作。

  • 我正在尝试使用dart中的以下代码构建一个多芯片选择字段。 测试页面。飞奔 这是主要的。飞奔 但是,当我在multi-select中选择任何对象时,我会得到以下错误 ════════ 异常捕获手势 ═══════════════════════════════════════════ 处理手势时抛出以下_TypeError:键入列表 抛出异常时,这是堆栈#0 FormFieldState。didC

  • 本文向大家介绍Java eclipse项目中项目的类路径是什么?,包括了Java eclipse项目中项目的类路径是什么?的使用技巧和注意事项,需要的朋友参考一下 您可以使用构建路径在eclipse项目中包含需要设置类路径的Jar文件 步骤1- 右键单击项目选择构建路径→配置构建路径。 步骤2-选择库,选择添加外部JAR ...按钮。 步骤3-然后浏览所需的jar文件所在的文件夹,选择它们并按打开

  • 本文向大家介绍C#中什么是值类型与引用类型?相关面试题,主要包含被问及C#中什么是值类型与引用类型?时的应答技巧和注意事项,需要的朋友参考一下 值类型:struct、enum、int、float、char、bool、decimal 引用类型:class、delegate、interface、array、object、string  

  • 问题内容: 例如,在以下代码中 返回类型之前的目的是什么(该行的作用或如何读取) 问题答案: 这是使您的 方法 (而不是 类 )通用的语法。 常规类和泛型类的方法可以根据其自身的类型参数进行泛型。在这种情况下,您的方法是on的通用方法,它必须是从扩展的类型。