static关键字

static 关键字可以用来修饰类的变量,方法和内部类。static 是静态的意思,也是全局的意思。它定义的东西,属于全局与类相关,不与具体实例相关。就是说它调用的时候,只是 ClassName.method(),而不是 new ClassName().method()。new ClassName()不就是一个对象了吗?static 的变量和方法不可以这样调用的。它不与具体的实例有关。

final关键字

final 关键字有三个东西可以修饰的。修饰类,方法,变量。  详细解释一下:

(1)在类的声明中使用 final

使用了 final 的类不能再派生子类,就是说不可以被继承了。有些 java 的面试题里面,问 String 可不可以被继承。答案是不可以,因为 java.lang.String是一个 final 类。这可以保证 String 对象方法的调用确实运行的是 String 类的方法,而不是经其子类重写后的 方法。

(2)在方法声明中使用 final

被定义为 final 的方法不能被重写了,如果定义类为 final 的话,是所有的方法都不能重写。而我们只需要类中的某几个方法,不可以被重写,就在方法前加 final 了。而且定义为 final 的方法执行效率要高的啊。

(3)在变量声明中使用 final

这样的变量就是常量了,在程序中这样的变量不可以被修改的。修改的话编译器会抱错的。而且执行效率也是比普通的变量要高。final 的变量如果没有赋予初值的话,其他方法就必需给他赋值,但只能赋值一次。

注意:子类不能重写父类的静态方法哦,也不能把父类不是静态的重写成静态的方法。想隐藏父类的静态方法的话,在子类中声明和父类相同的方法就行了。

static final为什么要一起用:

final与static final的区别是:final在一个对象类唯一,static final在多个对象中都唯一;

一个既是static又是final的域只占据一段不能改变的存储空间,只有一份。

from:http://www.jianshu.com/p/9d4a41df164f

转载于:https://www.cnblogs.com/tlmn2008/p/6868483.html

[转]static和final的区别相关推荐

  1. java static 区别_Java中static和final的区别

    static是静态修饰关键字,可以修饰变量和程序块以及类方法: 当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存: 当修饰一个程序 ...

  2. java中static、final 和 static final之间的区别

    java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...

  3. Java:static和final关键字的区别与比较

    文章目录 前言 一.final关键字 二.static关键字 总结 前言 本文记录笔者在复习Java基础期间学习的static和final关键字 一.final关键字 final关键字具有如下特点 f ...

  4. Java 中关于this、static、final 关键字的使用

    this关键字 this 关键字主要有以下几种作用: 1:当类成员变量与局部成员变量重名时,可以用this 关键字把局部成员变量赋值给类成员变量 2:this可以用来在构造函数中调用其他构造函数    ...

  5. java继承时父类常量覆盖吗_Java父类继承中的static和final用法

    1.父类中staitic修饰的静态方法,不能覆盖.不能继承. 2.父类中staitic修饰的变量或常量,能覆盖.不能继承. static修饰的变量和方法,只属于类本身,不属于对象:当声明一个对象时,并 ...

  6. Unit04 - 继承的意义(下) 、 访问控制 、 static和final

    Unit04  -  继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖   1)发生在父子类中,方法名称相同,参数列表相同,方法体不同   ...

  7. JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配

    JAVA基础-栈与堆,static.final修饰符.内部类和Java内存分配 发布时间: 2013/01/12 22:29 QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 ...

  8. Java static与final详细讲解

    1.static修饰变量: 2.static修饰方法: 目录 可修饰部分 一.static 3.static和final一块用 final一块用 4.static静态代码块 5.静态导包 6.总结 二 ...

  9. JavaSE面向对象:继承、多态、Super、Object类、重写、static、final、静态成员、懒汉式、饿汉式、单例设计模式、初始化块、抽象类、抽象方法、接口

    感谢尚硅谷免费提供的视频 继承 ** 理解 ** 生活中的继承:子女继承了父母的财产或相貌或才华 java中的继承:一个类不用自己定义属性或方法,就已经具备了另一个类的属性和方法 把这种现象称为jav ...

最新文章

  1. apache-tomcat-6.0.39的配置
  2. css 剪辑图片_CSS中的clip-path裁剪图片用法
  3. bzoj2034: [2009国家集训队]最大收益
  4. Eclipse里调试时遇到Source not found应该怎么办
  5. android studio sqlitedatabase,在SQLite数据库Android Studio上使用预填充数据库
  6. Chpater 10: Sorting
  7. Thunderspy: 7个硬件漏洞,影响9年来所有安装 Thunderbolt 的电脑
  8. Autocad 2015如何激活成功
  9. 服务器网络问题排查各种工具
  10. mysql优化的基本原则和方向
  11. 【TWVRP】基于matlab遗传算法求解带时间窗的车辆路径问题【含Matlab源码 002期】
  12. csdn 积分/c币获取方法
  13. winform 鼠标 静止时间_四款蓝牙鼠标的详细使用体验对比
  14. 2019数据安装勾选_Origin2019下载和安装教程
  15. ReactNative连接android模拟器
  16. 聊聊Google face api
  17. java.sql.SQLException: Error writing file '/tmp/MY2zYz09' (Errcode: 28 - No space left on device)
  18. java获取微秒时间,java获取当前时间微秒
  19. 周志华机器学习——聚类算法。
  20. ipad越狱常用软件

热门文章

  1. mysql主从备份 ssl_基于SSL的mysql主从复制
  2. 二等水准数据平差_自编单次二等水准平差计算表
  3. python pandas 读取数据库_数据分析-pandas从数据库读取数据
  4. php标签class,dede模板标签以及dedetag.class.php模板类使用方法
  5. Ubuntu为julia安装深度学习框架MXNet(支持CUDA和OPenCV编译)
  6. java工厂模式和抽象工厂_Java中的抽象工厂设计模式
  7. primefaces教程_Primefaces仪表板组件示例教程
  8. dax圣经 翻新_使用翻新和Node JS的Android图像上传
  9. python多线程结束线程_Python线程– Python多线程
  10. ROS的学习(九)理解ROS的参数