今天学习到了并且应用到了java中的静态方法,并且了解到它的好处与缺点。

● 生命周期(Lifecycle):

静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。

非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失。

 

● 在内存中存储位置

静态方法和静态变量创建后始终使用同一块内存,是连续的。

非静态方法会存在于内存的多个地方,是离散的。

● 效率

静态方法的使用效率比非静态方法的效率高。

● 线程安全

静态方法是共享代码段,静态变量是共享数据段。既然是“共享”就有并发(Concurrence)的问题。

非静态方法是针对确定的一个对象的,所以不会存在线程安全的问题。

● 使用范围

静态方法:⒈ 有静态属性的类,一般会定义静态方法。⒉ 没有属性的类,一般会定义静态方法。⒊ 如果一个方法与他所在类的实例对象无关,那么它就应该是静态的。静态方法可以被继承但是不能被覆盖

●  总计

如果静态方法在系统中定义太多,会占用大量的资源,最后造成内存溢出,所以静态方法不能滥用。如果从线程安全、性能、兼容性上来看,选用实例化方法为宜。

最新文章

  1. Fd.Service 轻量级WebApi框架
  2. 用Navicat_SSH 连接数据库服务器
  3. 第四天 rxcocoa
  4. Ubuntu / Win7 安装db2 v10.5
  5. TO~亲爱的自己
  6. SQL Server2008ldf文件太大
  7. java学习第六天
  8. Windows Phone 7 中拷贝文件到独立存储
  9. Word Properties <?ref:xdo000X?> - BIP Deskotop 11.119.00.0 (32-bit) with Office 2013 (32-bit) on Win 7 64-bit
  10. Android 下拉刷新控件Android-PullToRefresh
  11. mysql 存储过程需要DELIMITER
  12. java名词,关键字
  13. Vim的基本使用(二)
  14. 关于用wubi安装Ubuntu,总是提示“没有定义根文件系统”的问题
  15. 02_NoSQL数据库之Redis数据库:string类型和hash类型
  16. C#细说多线程
  17. Android为TV端助力 双缓存机制
  18. 人人开源分模块,非原生html报错,很难查找问题所在,有vue语法
  19. Clock Pictures(kmp + Contest2075 - 湖南多校对抗赛(2015.04.26))
  20. POJ2531&&1416&&2676&&1129

热门文章

  1. 【18】AngularJS 包含
  2. 定时任务-----Springboot中使用Scheduled做定时任务----http://www.cnblogs.com/lirenqing/p/6596557.html
  3. 洛谷 P3203 BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
  4. POJ2528 Uva10587 Mayor's posters
  5. vue组件知识总结
  6. qt自己定义搜索框(超简单,带效果图)
  7. 二维数组的查找,刷题成功——剑指Offer
  8. [Vue @Component] Control Template Contents with Vue's Render Function
  9. [Vue @Component] Simplify Vue Components with vue-class-component
  10. C++与C的那些差异