有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中使用静态方法实现可伸缩性

在使用GoogleAppEngine开发基于Java的后端时,我突然想到,由于我最终是按照创建的实例数付费的,因此以最小化内存使用的方式设计代码显然是有意义的。这让我怀疑尽可能多地使用静态方法是否有意义,原因是静态方法在内存中只创建一次。当然,这些方法必须是不可变的,因此不允许使用私有静态字段

我在这里的假设是,调用静态方法100万次比创建包含该方法的类的100万个实例更有效

这个推理有意义吗?或者我可能忽略了静态方法的使用


共 (2) 个答案

  1. # 1 楼答案

    这里的错误在于“实例数量”与“数据数量”不同。比如说,你可以爬行并处理维基百科。重要的是在任何给定的时间内存中有多少数据,而不是在实例之间如何分布。显然,做错事情总是有可能的,但静态方法不会让你免于这种情况;-)

  2. # 2 楼答案

    实例方法也只能创建一次。这里没有什么聪明的优化可以做,基本上你是在决定是否要通过让一切都保持静态来做糟糕的设计。这里没有存款

    你似乎不太了解内部的工作原理,所以最好不要太担心它。您还比较了调用静态方法100万次和创建100万个实例。这是苹果和橙子,因为它们根本不做相同的事情。如果有100万个数据对象,并且调用了一个静态方法,其中一个作为参数,则可以进行等效的比较

    方法不是你需要关心的,而是你正在处理的使用内存的数据