一、说明

static属于一种修饰符,可以用于修饰 属性、方法、初始化块、内部类
用static修饰的成员,称为静态成员
不用static修饰的成员,称为普通成员

二、静态属性的特点

1、生命周期

静态属性随着类的加载而加载,随着类的消亡而消亡。生命周期较长
普通属性随着对象的创建而加载,随着对象的消亡而消亡。生命周期较短

2、加载次数

静态属性只加载一次!在内存中只有一份!
普通属性可以加载多次!在内存中可以有多份!

3、存储位置

静态属性存储在方法区
普通属性存储在堆

4、【应用】

静态属性被所有对象共享的,其中一个对象对其更改,影响另一个对象。
普通属性被对象所独享的,其中一个对象对其更改,不影响另一个对象。

5、调用

静态属性和对象无关,所以又称为类属性,可以通过类名直接调用的
普通属性和对象有关,所以又称为实例属性,只能通过对象调用

6、什么时候将属性设计成静态属性?

当所有对象共享该属性,则可以将属性设计成静态的
比如:圆周率、利率

三、静态方法的特点

1、静态方法和普通方法一样都是当类加载时,将方法信息加载到方法区。

静态方法中没有this参数
普通方法中需要有this参数

2、谁能调用?

静态方法可以直接通过类名调用
普通方法必须通过对象调用,因为需要隐式的将对象传递给this

3、方法内可以调用谁?

静态方法中只能直接调用静态成员,不能直接调用普通成员
普通方法中可以直接调用静态成员和普通成员

4、静态方法中不能使用this和super

5、静态方法没有写之说

四、总结

1、静态成员都是随着类的加载而加载,而且只加载一次
2、静态成员在内存中只有一份
3、静态成员都和对象无关,可以直接通过类名调用
4、静态成员中只能直接访问静态成员,不能直接访问普通成员!(静态属性除外)
5、调用静态成员时,会触发类的加载

【补充】类的加载时机:

1、创建对象
2、调用静态成员
3、加载子类时
4、反射

最新文章

  1. js控制href内容的连接内容的变化
  2. JavaScript八张思维导图
  3. 简单的led驱动程序设计
  4. ACM-ICPC 2018 沈阳赛区网络预赛 D Made In Heaven(第k短路,A*算法)
  5. java-方法重载、参数传递、
  6. 持久层Mybatis3底层源码分析,原理解析
  7. python-之-深浅拷贝一
  8. linux 下导出oracle数据库
  9. Springboot单例模式实战封装json转换
  10. struts2从认识到细化了解
  11. 黄聪:C#使用Application.Restart重启程序出错解决办法
  12. openVPN设置本地密码验证
  13. mysql命令行批量插入100条数据命令
  14. js 开源k线图开发库
  15. Functions: C++'s Programming Modules
  16. orcale存储过程学习之路--创建空存储过程(二)
  17. jsp/post中文乱码问题
  18. delphi中TQueue的使用问题
  19. 16-图片上传那些事 org.springframework.web.multipart.MultipartException: The current request is not a multipart request
  20. 2018.10.14 NOIP训练 圣诞树(简单dp)

热门文章

  1. golang初识4 - Go 并发
  2. postgis创建空间数据库,导入shp数据
  3. js Base64 转化成图片格式
  4. 直达核心的快速学习PHP入门技巧
  5. Windows2008R2操作系统日志清理
  6. Anatomy of a Database System学习笔记 - 公共模块、结语
  7. python远程执行dos命令
  8. C++_数字时钟
  9. php进阶--菜鸟之路
  10. [PHP]正则表达式判断网址