java静态与非静态。 新手求教:在编程时候,什么时候定义静态方法,什么时候定义非静态方法比较好?

在编程过程中,总要有取舍,这怎么去判断?另外,定义静态变量怎么来根据实际情况来判断,没接触过什么实际项目,所以比较陌生,求大婶指教。... 在编程过程中,总要有取舍,这怎么去判断?另外,定义静态变量怎么来根据实际情况来判断,没接触过什么实际项目,所以比较陌生,求大婶指教。 展开
 我来答
百度网友bf2e966
2012-05-14 · TA获得超过2582个赞
知道答主
回答量:159
采纳率:0%
帮助的人:49.4万
展开全部
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。

static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。

如果有什么地方不明白可以追问。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
zmp800
2012-05-14 · TA获得超过155个赞
知道答主
回答量:92
采纳率:0%
帮助的人:81.6万
展开全部
你要先明白什么是static,才好比较。被static修饰的方法或变量会优先于类实例的产生而常驻于内存。也就是说有可能类的实例还没用用到的时候,该类里的静态函数已经在内存中出现了。
所以,如果说一个方法作为一个工具性的功能(比如产生数据库连接啊等等),可以考虑做成静态的,这样效率比较高,因为他一直在内存中,随用随拿,不用new实例再调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明月清风618
2012-05-14 · TA获得超过737个赞
知道小有建树答主
回答量:395
采纳率:100%
帮助的人:126万
展开全部
楼主你好,定义静态变量了比如数据库的连接信息,你可以用静态的,也可以加上final,不让修改,你做的一些功能性的类里面可以用静态的成员,比如你可以做一个得到日期的类,那样里面就用静态的成员。除了这些,其他的都可以用非静态的成员或方法来定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽冥神者
2012-05-14 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1780万
展开全部
需要在静态方法中调用的变量,一定要设为静态。
但主要的话,还是说那种全局变量,设为静态比较好,他不会因为对象不同而变得值也不同。比如你统计在线人数的时候,完全可以设置一个全局静态变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式