JAVA编译器是否负责处理函数范围内的新实例化?

时间:2014-07-11 09:33:32

标签: java android

示例:

//Type1:
function PointF someMethod(){
    return new PointF(10f, 10f);
}

//Type2:
private PointF funPointF = new PointF();
function PointF(){
    return funPointF.set(10f,10f);
}

现在我的问题是,为了便于阅读和实际编码,第一个例子更加友好;编译器如何处理第一个结果?它是否会在运行时自动创建第二个,还是每次调用此方法时实际上只是创建一个新对象?

**编辑 是的它是JAVA。

1 个答案:

答案 0 :(得分:1)

是的,Java编译器在您实例化后自动创建新对象

即。使用关键字new创建新对象的引用。

function PointF someMethod(){
    return new PointF(10f, 10f);
}

在上面的方法中,编译器在Heap中为PointF创建了一个新对象,因为您已经编写了new PointF(10f, 10f)并返回了相同对象的值。