我想比较普通类,抽象类和接口的大小。它们具有相同的1个名称属性和1个callMe方法。关于他们的细节在这里:
正常班级
public class Student {
public final String name = "";
public String callMe() {
return null;
}
}
抽象类
public abstract class AStudent {
public final String name = "";
public abstract String callMe();
}
界面
public interface IStudent {
public final String name = "";
public String callMe();
}
内存大小最小的是什么?如果可能的话,请你按顺序排序。
我认为结果可能是(从最小到最大):接口,抽象类,普通类。是吗?
答案 0 :(得分:0)
我不确定你的“大小”是什么意思。您可以使用javap
工具查看已编译的字节代码。对于这两个类,接口$response = array();
$response["success"] = "yes";
echo json_encode($response);
向我展示了这些大小:
javap -sysinfo
:446个字节Student
:399字节AStudent
:215字节但这只是字节码的静态大小,而不是运行时所需的内存。只有IStudent
可以实例化,抽象类或接口在运行时不能独立存在。