在 Java 中,在内存方面,使用私有与公共是不是有区别? [复制]
Posted
技术标签:
【中文标题】在 Java 中,在内存方面,使用私有与公共是不是有区别? [复制]【英文标题】:In Java, memory-wise does it make a difference to use private vs public? [duplicate]在 Java 中,在内存方面,使用私有与公共是否有区别? [复制] 【发布时间】:2015-09-09 17:37:12 【问题描述】:假设我可以同时使用私有或公共,这对我来说没有任何区别。
对于内存使用,哪个更好?为什么?
【问题讨论】:
你是什么意思memory-wise?为什么会有疑问? 哪个会使用更少的计算机内存?我的意思是如果我可以用私人定义一些东西?应该一直努力吗?因为它使用的计算机内存更少? 我已经阅读了几个小时,并尝试应用我有限的知识,但还是有一些天才不被欣赏,因为我不如他们!我是不是在错误的地方问这些问题?我对每次尝试都会得到的负面结果感到沮丧! 我不相信你做过任何研究,无论多长时间。 证明我错了。 你假设你问了一个很好的问题。 4 人不这么认为。参观并阅读帮助中心。那里有信息可以帮助你写出正确的问题。 php 和 Java 到底是怎么回事?来吧,它不是重复的。 【参考方案1】:不,在类中,public 或 private 的属性修饰符不会改变内存占用。
为项目预留的字节数与内存中类型(int、long等)的大小简单相关。
修饰符只限制了内存地址在类外不可访问(在私有的情况下)。
如果你有这样的课程:
class Point
private int x;
public int y;
这两个变量在访问时占用相同的字节数。 但是要访问 y,您可以这样做:
Point p = new Point();
p.y = 55;
但是,您不能对 x 执行此操作,因为它是私有的。
您可以从类中的代码中访问 x,如下所示。
class Point
private int x;
public int y;
public Point ()
// this is the contstructor but other member functions woud
// work too
this.x = 77;
// or
x = 77;
【讨论】:
【参考方案2】:这些是访问修饰符。内存方面(RAM)不,没有区别。 static
关键字不会发生这种情况。使用 static 将对象保留在内存中。
【讨论】:
【参考方案3】:不,访问修饰符对运行时内存利用率没有影响 Java 或 PHP,也不是我听说过的任何其他语言。 可能由于访问,代码大小可能会增加几个字节 某些字节码中的修饰符取决于它们的编码方式。您的 程序必须在其他方面非常有效,然后才能 值得为此担心。
来自this的回答
【讨论】:
以上是关于在 Java 中,在内存方面,使用私有与公共是不是有区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章