请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

java是如何解决这个问题的呢?

老师你好,这一小节主要是讲了commonfriends和show方法定义在对象实例上所造成的空间浪费问题,我只是简单的接触过一点java,我想请教一下:

	public class User {
		static List<String> commonfriends = List.of("aaa","bbb","ccc"); 

		void show(){
			//...
		}
	}

1> 对于commonfriends这样的实例共有的属性,java应该是通过把它写成static xxx来避免空间浪费的吧?
2> 对于上述的show方法,这个如何避免空间浪费的呢?如上的写法应该每个实例都会有show方法吧?

正在回答 回答被采纳积分+3

3回答

keviny79 2021-07-30 00:02:47

大致说下:静态方法和属性是属于类的,只有是所有对象都有的共有属性才定义类,一个Person类,张三和李四的年龄属性都不一样,就不能定义为静态属性,学完单件模式这一章的静态属性9大规则就很清楚了

0 回复 有任何疑惑可以回复我~
  • 说下:静态方法和属性是属于类的,只有是所有对象都有的共有属性才定义成静态,一个Person类,张三和李四的年龄属性都不一样,就不能定义为静态属性,学完单件模式这一章的静态属性9大规则就很清楚了
    回复 有任何疑惑可以回复我~ 2021-07-30 00:03:50
keviny79 2021-07-29 23:54:12

后面第四章,第五章,手写继承源码都会讲到js和ts的静态属性,这里先大致说下:函数名.属性或属性名.方法就是定义和java相同理解的static属性和方法

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞0998854 #1
    老师你好,这一节讲的是把方法放在原型对象上以避免浪费内存空间,我的问题是在java里面,没有原型对象这么一说吧?那么在java里面每个类的对象都有相同的方法,那么在java里面是怎么避免浪费空间的呢?
    回复 有任何疑惑可以回复我~ 2021-07-30 01:22:06
  • 不好意思,刚注意到你的信息
    	Java不需要原型,因为Java把方法放在方法区中【jdk1.6在方法区中,jdk1.8在元空间】,
    Java无论创建多少对象,方法始终只分配一个空间,哪一个对象调用方法时,会自动进入方法栈帧【执行方法的一个栈区】执行,执行结束后会自动释放栈帧空间
    回复 有任何疑惑可以回复我~ 2021-08-03 17:41:19
rookie_white 2021-07-27 18:56:41

同学,我不是老师。问错人了,Java我没接触过

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞0998854 #1
    这慕课网有问题,它会自动把问题推送给同学。
    回复 有任何疑惑可以回复我~ 2021-07-27 19:19:02
  • 对不住了,同学,老师没能及时回复你的问题
    回复 有任何疑惑可以回复我~ 2021-07-29 23:55:42
  • 提问者 慕莱坞0998854 回复 keviny79 #3
    谢谢老师了!
    回复 有任何疑惑可以回复我~ 2021-07-30 01:12:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信