瓦尔哈拉项目的价值类型是什么?
我已经开始阅读有关瓦尔哈拉项目的文章,有些东西我真的不明白,那就是.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)根据维基百科,没有继承的高效小“对象”。这是什么意思?Small Objects?
Without inheritance
使用 VT 无法做到这一点吗?
public final class ValueType extends Any //is this not possible??
3)为什么使用它们?将使用哪种方案以及如何使用它。
4) 简而言之,值类型对象是没有恒等式的对象,即如果两个值对象各自的内部状态相等,则认为两个值对象相等。我的问题是:他们是否有状态,是否应该实现和。没有身份的对象是什么意思?Google AutoValue Library
equals
hashcode
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年左右准备就绪。