following code, containing file is here
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
if i call Quart.IN.compute(0.5f) somewhere in my running application (eg in a render() function that is called 60 times per second), does this create a new Quart on every call, or is it just allocated once?
it would make sense, right?
thanks, cheers
By definition, a final variable can only be assigned once. And static fields of a class are initialized when the class is loaded. So obviously, the IN
Quart instance is created just once.
is it just allocated once
Yes, you're calling the compute
method always on the same single object.
Just once. The static field IN is initialized during the first access to the class Quart.
You can also check it's created only once by writing output when an instance of Quart is created:
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
{ System.out.println("created"); }
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.