java静态与非静态。 新手求教:在编程时候,什么时候定义静态方法,什么时候定义非静态方法比较好?
在编程过程中,总要有取舍,这怎么去判断?另外,定义静态变量怎么来根据实际情况来判断,没接触过什么实际项目,所以比较陌生,求大婶指教。...
在编程过程中,总要有取舍,这怎么去判断?另外,定义静态变量怎么来根据实际情况来判断,没接触过什么实际项目,所以比较陌生,求大婶指教。
展开
4个回答
展开全部
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。
如果有什么地方不明白可以追问。
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。
如果有什么地方不明白可以追问。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
你要先明白什么是static,才好比较。被static修饰的方法或变量会优先于类实例的产生而常驻于内存。也就是说有可能类的实例还没用用到的时候,该类里的静态函数已经在内存中出现了。
所以,如果说一个方法作为一个工具性的功能(比如产生数据库连接啊等等),可以考虑做成静态的,这样效率比较高,因为他一直在内存中,随用随拿,不用new实例再调用。
所以,如果说一个方法作为一个工具性的功能(比如产生数据库连接啊等等),可以考虑做成静态的,这样效率比较高,因为他一直在内存中,随用随拿,不用new实例再调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主你好,定义静态变量了比如数据库的连接信息,你可以用静态的,也可以加上final,不让修改,你做的一些功能性的类里面可以用静态的成员,比如你可以做一个得到日期的类,那样里面就用静态的成员。除了这些,其他的都可以用非静态的成员或方法来定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要在静态方法中调用的变量,一定要设为静态。
但主要的话,还是说那种全局变量,设为静态比较好,他不会因为对象不同而变得值也不同。比如你统计在线人数的时候,完全可以设置一个全局静态变量
但主要的话,还是说那种全局变量,设为静态比较好,他不会因为对象不同而变得值也不同。比如你统计在线人数的时候,完全可以设置一个全局静态变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询