Java = Getter/Setter = 这是否会在运行时和访问时增加 "object size"(CPU 周期?)

标签 java performance

我需要编写一个ajax应用程序,在服务器端(用java实现)将创建数百万个小对象并将其保存在内存中。通常我对任何对象使用 beanstyle (带有 getter/setter)。

我的问题:在运行时,为实例化对象提供 getter/setter 方法与不使用它们并直接访问字段/成员相比,是否有区别(在内存使用和访问的 CPU 时间方面)?例如,如果使用 getter/setter 使对象的每个方法和实例增大 5 个字节,那么这总计将显着增加数百万个 ob 对象。与直接访问 CPU 周期的成员/变量相比,访问 getter 与直接访问成员/变量的情况相同。

public String myvartoaccess;

vs

private String myvartoaccces;
public String getMyvartoaccess();

非常感谢! 延斯

最佳答案

getter 和 setter 会在类的大小上添加少量;但是,单个对象的大小不会受到影响。因此,无论您有单个对象还是一万个对象,该方法的内存消耗都将只添加一次。

至于CPU开销,会有不小的开销;然而,这应该被优化并且可以忽略不计。

关于Java = Getter/Setter = 这是否会在运行时和访问时增加 "object size"(CPU 周期?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643161/

相关文章:

java - 如何使用 JUnit 和 Hamcrest 测试 .equals() 方法

performance - 压缩以提高硬盘写入性能

c++ - QGraphicsScene.itemAt() 只返回零,整个场景很慢

Java性能谜题: wrapper classes faster than primitive types?

java - 输入中的错误值 - 没有正确的 UTF-8 编码? Tomcat ?

java - 未定义名为 'springSecurityFilterChain' 的 bean - Spring 4 Java 配置

Java 反射 : Instantiate a new object with specified type

javascript - function.call() 或 click()

mysql - 如何提高我的投票系统的性能?

java - Netty无法在vps上启动