- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我们通常想要创建一个由像List<MyObject> = new ArrayList<>();
这样的POJO组成的集合时我们通常创建公共(public)类MyObject
在其自己的。
但是如果我们创建一个 private static MyObject
会怎么样?声明集合的父类中的内部类?
这是一个例子:
public class MyClass {
public static void main(String args[]) {
List<MyObj> objList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
MyObj obj = new MyObj();
obj.name = "Odel B Jr.";
obj.age = "2";
objList.add(obj);
}
System.out.println(objList);
}
private static class MyObj {
private String name;
private String age;
@Override
public String toString() {
return "MyObj [name=" + name + ", age=" + age + "]";
}
}
}
请注意,这会创建 10 new
静态对象。
我的问题是,哪个更好? 10 个新的静态对象还是 10 个新的常规 java 对象?
我试图从 JVM 的角度来解决这个问题 - 即关注性能。并不是真正关于根据 Java OOP 原则进行对象的设计/可访问性。
最佳答案
My thing is, which is better? 10 new static objects or 10 new regular java objects?
I'm trying to approach this from JVM's point of view - i.e. with a focus on performance. Not really about design/accessibility of objects according to Java OOP principles.
静态成员类可以被视为普通的顶级类,它恰好嵌套在封闭类中。几乎在对 JVM 重要的所有方面,静态成员类都是顶级类。
从性能角度来看,静态成员类的性能可以与作为实际顶级类编写的同一类的性能相同。静态成员类的实例独立于其封闭类,并且不需要封闭类实例即可实例化。
关于java - 在 Java 中使用静态内部类作为 POJO 是一个好主意吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975694/
我是一名优秀的程序员,十分优秀!