java - 速度优化 : private and public variables - Java

标签 java performance variables

我问这个问题纯粹是为了问题的速度方面。

从私有(private)对象或公共(public)对象 (Java) 获取值的速度有何不同?

class MyClass {
    public int myInt = 5;
}
class MyOtherClass {
    private int myInt = 5;

    public int getMyInt() {
        return myInt;
    }
}
class MyMainClass {
    public static void main (String [] args) {
        MyClass myObject = new MyClass();
        MyOtherClass myOtherObject = new MyOtherClass();

        // which is faster?
        System.out.println(myObject.myInt);
        System.out.println(myOtherObject.getMyInt ());
    }
}

我知道我可以测试它,但如果有人已经知道它,那也没什么坏处:) 提前致谢!

最佳答案

公有访问和私有(private)访问无非就是在编译时判断你是否有权限访问一个变量。在运行时,它们完全相同。这意味着如果您可以欺骗 JVM 认为您可以访问(通过反射、不安全或修改字节码),那么您就可以。 public 和 private 只是编译时的信息。这并不是说它没有存储在字节码中,因为它确实存储在字节码中,但只是为了在某些东西试图针对它进行编译时可以引用它。

关于java - 速度优化 : private and public variables - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365329/

相关文章:

java - 打破自定义 block

java - 处理 vps numproc 限制

javascript - 使用 jQuery 动态分配宽度百分比

performance - 避免循环中的条件语句

javascript - 在 json 中使用变量

python - 访问Python函数内部定义的变量

java - tomcat 服务器 : Is Tomcat server must be restarted everyday?

java - InheritableThreadLocal 和线程池

performance - Coyoneda 类型的 NFData 实例

Mysql 变量和循环