在Java中的final关键字和在C++中所使用的const有一定的差别,虽然都是OOP。在这里将简单的说明一下Java中的final关键字。

从数据,方法,类这这三个方面来进行final的说明。

一.    数据

1.一个永远不会改变的编译时常量;

2.一个在运行时被初始化

这一点和C++中的const比较相似,但由于在C++中有指针的存在,所以const在C++中的理解更加复杂,这里最多只有final的对象引用。final的对象引用,使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象了。

还有一点static和final一起修饰的一个数据是占据一块不变的存储空间。

二.    方法

1.锁定方法,以防止任何继承类修改它的含义;

2.提升效率,由于在Java的早期实现中,如果将一个方法声明为final,就同意编译器将其所以调用转换为内嵌调用。(这个好像现在不被提倡)

说明:内嵌其实就将编译后的那段函数代码顺序地放到程序里面;而正常函数执行为,将参数压入栈,跳至方法代码处并执行,然后跳回并清理栈中的参数,处理返回值

另外类中所以private中的方法都是隐式的final,原因可想而知。

三.    类

当你想你所设计的类永远不需要做任何改变,也不需要任何子类时,就可以这样声明final类。

final在java中怎么用_Java中final的简单使用说明相关推荐

  1. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

  2. java中怪物移动_java中两大怪物,附带面试题!

    最近老是有小伙伴问类和Object相关的问题,感觉还是很多人对此不是很明白,那我们今天就干掉这两个怪物. 类介绍 Java 程序是由若干个类组成的,类也是面向对象编程思想的具体实现. 以下为类的定义: ...

  3. java中有没有栈_Java中堆和栈有什么区别

    stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...

  4. java 无符号 类型_java中符号类型和无符号类型的问题分析

    一 参考博文 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 计算机中用补码表示数值:另外,用二进制的 ...

  5. java中属于常量_java中的常量和属性

    Java最佳实践建议将属性作为常量读取.那么,您认为达到目标的最佳方法是什么?我的方法是:一个Configuration类只读取一次属性文件(单例模式),并使用此类在需要时读取属性作为常量.并存储一个 ...

  6. java中hashcode作用_Java中hashCode的作用

    以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode  ...

  7. java父类转子类_java中什么是继承,和继承的接口的关系?

    继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...

  8. java中static作用_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  9. java构造器详解_Java中关于构造器的使用详解

    这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方,需要的朋友可以参考下 Java构造器使用方法及注意事项 超类的构造器在子类的构造器运行之前运行 ...

  10. java有哪些类_Java中常用的类有哪些?

    展开全部 一. System: 1.     首先是System类,因为从一开始从接触java起,我32313133353236313431303231363533e58685e5aeb9313333 ...

最新文章

  1. 五分钟让你了解 Java方法(或者叫函数)
  2. 自动化测试报告 html模板,PyTestReport 自动化测试报告框架
  3. intellij中springboot热部署
  4. 瑞幸咖啡生,互联网咖啡生;数据死,互联网咖啡死
  5. Docker镜像是什么,有什么用?
  6. 生物信息之ME, HMM, MEMM, CRF
  7. P2814-家谱【图论,并查集,std map库】
  8. debian执行php网页,如何在Debian上安装和使用PHP Composer
  9. SSH项目中根据Hibernate的映射文件生成数据库表的方案:
  10. jstack+top 定位占用资源的进程
  11. 计算机c语言模拟考试,国家计算机二级c语言考试模拟题
  12. Custom Corporate Background for NetBeans Platform Applications
  13. excel数据分析常用图表制作案例
  14. 瑞幸咖啡的社群商业创新案例:私域流量池思维与裂变营销,品牌与流量双赢!...
  15. 80后小学计算机课上的游戏,80后最值得回味的经典课间游戏
  16. c语言n的阶乘 longfact,如何定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double?...
  17. 真的来了,浏览器端可以直接运行Python了
  18. 猛男插件!csdn浏览器助手到底怎样!(整合全网评价)
  19. Python不能做游戏?一小时做出一个游戏!
  20. 【KALI使用】12搜索引擎Google、YANDEX、Maltego

热门文章

  1. 殊途同归的策略梯度与零阶优化
  2. 结合业务场景案例实践分析,倾囊相授美团BERT的探索经验
  3. 第三届“中国法研杯”司法人工智能挑赛(CAIL2020)即将启动
  4. 智源-知乎联合发布大规模用户关系数据集,同步开启10万元竞赛
  5. 在TensorFlow和PaddleFluid中使用多块GPU卡进行训练
  6. 计算机视觉:数据预处理-图像增广方法
  7. ACM-ICPC 2018 焦作赛区网络预赛
  8. 使用onnx包将pth文件转换为onnx文件
  9. python电商爬虫源码_吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据...
  10. Greenplum【环境搭建 01】CentOS Linux release 7.5 环境单机版详细安装配置步骤+问题解决(含安装包资源)