A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在一个静态方法内定义一个局部变量,然后作为返回值返回,那返回的这个变量是静态的还是非静态的?

8 个回复

正序浏览
pray 高级黑马 2014-4-26 05:27:00
9#
让人阅毕击掌三叹的好帖
回复 使用道具 举报
看你如何定义了,加static的是静态变量,不加的就不是。
回复 使用道具 举报
在一个静态方法内定义一个局部变量,然后作为返回值返回,那返回的这个变量是静态的还是非静态的?
当然是非静态的,都说了是局部变量,跟静态方法无关,方法体里面只能定义非静态变量
回复 使用道具 举报
局部变量,就是一对花括号里面的代码中定义的变量,它都是位于栈中,栈结束之后,变量自动释放。如果你在最后return  。那么系统实际上是复制了一份完全一样的对象(内存拷贝,连构造函数都不执行)。也就是说,你返回后,用来承载数据的变量是上级栈的事,当前栈中的局部变量用完就释放了,根本不存在静态的,除非你显式定义为static 。
局部变量,无论是静态方法还是动态方法,都是局部变量,都是在栈中创建,不存在静态和动态。
回复 使用道具 举报
静态的,你想想嘛,静态成员可以使用类名调用。
回复 使用道具 举报
方法中的变量无所谓静态不静态,final倒是有。
方法中的变量只在方法体中有效,就是局部变量
回复 使用道具 举报
局部变量,无论是静态方法还是动态方法,都是局部变量,都是在栈中创建,不存在静态和动态,栈结束后他会自动释放,return回去的值其实是复制的,硬要分一下应该算是非静态的吧。。。我理解是这样的
回复 使用道具 举报
我认为所谓的静态变量是加static修饰的。静态方法里的非静态变量不是静态变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马