static可以修饰变量,方法或者类(普通类是不能用static修饰的,只能用来修饰内部类)

  static静态变量又称之为类变量(和c++中的全局变量概念是一样的),在类加载后,jvm只为类变量分配一次内存,内存中只有一份,静态变量可以直接通过类名访问(当然也可以通过实例对象访问);与静态变量对应的是实例变量,每次实例化对象,内存中就会有一份拷贝,所以在内存中可以存在该实例变量的多份拷贝。

static int a=10;

String b="abc";

static Object o=new Object();

  

  static静态方法又称之为类方法(与之对应的是实例方法),静态方法只能访问类的静态变量,不能访问类的实例变量【这个时候非静态成员变量都还不存在(他是伴随着对象的创建而创建的),根本无法访问】。

  static静态块:类似于static{ code }的模块,该模块会在类加载的时候最先被执行。

final可以修饰变量,方法或者是类

  final变量一旦初始化,就不能修改,final变量在编译时就已经明确它的值(只限于基本数据类型),所以可以将一些已经明确的值定义成final,以减小运行时的负担。如果是非基本数据类型用final修饰,那final是引用不变,但是对象里面的属性是可以改变的。

  final方法,final方法不能被重写,所以用final可以锁定某一方法,防止子类继承修改。另外,final方法类似于c++内联函数,可以提高执行效率(但是这种方式牺牲了空间,不建议大量使用final方法)。

  final修饰的类不允许被继承(在final里面,方法默认是final的),如果不想某一个类被继承,可以将该类改成final的。

最新文章

  1. java并发编程学习: ThreadLocal使用及原理
  2. 解决在VMware中安装64位系统时“此主机具有虚拟化支持能力的,但虚拟化技术被禁用”的方法
  3. weblogic解密工具
  4. C# 窗体间传值方法大汇总
  5. android webview 访问https页面 SslError 处理
  6. SGU 183. Painting the balls( dp )
  7. ecshop下启用QQ在线服务,并能实时更新QQ在线状态
  8. C++ Socket学习记录 -2
  9. linux驱动---用I/O命令访问PCI总线设备配置空间
  10. 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单
  11. 2018下C语言基础课第1次作业
  12. 『编程题全队』Beta 阶段冲刺博客集合
  13. 【Devops】【docker】【CI/CD】jenkins源码管理,添加SSH地址后报错+Jenkins构建报错:Please make sure you have the correct access rights and the repository exists.
  14. sparkR集群启动脚本的封装。
  15. 视觉单词模型、词袋模型BoW
  16. 如何写一个Xss Bot
  17. MP3 Fuzz学习
  18. qt——简单程序一步步来
  19. java 两个数组合并
  20. [转]真正了解CSS3背景下的@font face规则

热门文章

  1. Spring注解驱动开发04(给容器中注册组件的方式)
  2. JavaScript学习系列博客_7_JavaScript中的逻辑运算符、三元运算符
  3. python基础 Day8
  4. lx
  5. 结对项目:四则运算题目生成器(C)
  6. Java多线程_Atomic
  7. day37:MySQL基本操作
  8. React_TODOList 数据增删改查
  9. .NET5.0 Preview 8 开箱教程
  10. XMLHttpRequest 简单封装