final关键字

  • final关键字是最终的意思,可以修饰(类、方法、变量)
  • 修饰类:该类被称为最终类,特点是不能被继承了。例如工具类。
  • 修饰方法:该方法被称为最终方法,特点是不能被重写了。
  • 修饰变量:该变量只能被赋值一次。

java中的变量分为两种:

  1. 成员变量

    - 静态成员变量

    - 实例成员变量
  2. 局部变量:方法内,形参,for循环变量,构造器中的变量都是局部变量。

fianl修饰变量的注意

  1. final修饰基本类型的变量,变量存储的数据不能被改变。
  2. final修饰引用类型的变量,变量存储的地址不能被改变,但地址所指向对象的内容是可以被改变的。

案例:

public class FinalDemo01 {
// 5. final修饰成员变量
// static + final修饰的变量,称之为常量,一般用大写字母表示。值只有一个,而且不能被修改。
public static final String NAME = "二小"; // 6. fianl修饰实例成员变量(没有意义)
private final String name = "高秀兰";//没有意义! public static void main(String[] args) {
// 3. final修饰变量,有且只能被赋值一次。
final int a = 10;
// a = 14; //报错,final修饰的变量不能被修改
} // 4. final修饰局部变量
// 购买手机,折扣不能修改,只能参数使用final修饰
public static void buy(final double z){
System.out.println("买手机打" + z + "折!");
} // 1.final修饰类,不能不继承
//final class A{ }
//class B extends A{ } //报错,不能继承 // 2.final修饰方法,方法不能被重写
class C{
public final void print(){
System.out.println("我是父类");
}
} class D extends C{
// @Override
// public void print(){
// System.out.println("我是子类");
// }
}
}

常量详解

  • 使用了static fianl修饰的成员变量就称为常量。
  • 作用:通常用于记录系统的配置信息

注意:常量名的命名规范:建议使用大写英文字母单词,多个单词使用下划线连接起来。

使用常量记录系统配置信息的优势、执行原理

  • 代码可读性更好,可维护行业更好。
  • 程序编译后,常量会被"宏替换":出现常量的地方会被替换成其记住的字面量,这样可以保证常量和直接用字面量的性能是一样的。

案例:

参数类:
public class Consrant {
public static final String SCHOOL_NAME = "清华大学";
} main方法:
// 目标:搞清楚常量的作用:做系统的配置信息
public class FinalDemo02 { public static void main(String[] args) {
System.out.println(Consrant.SCHOOL_NAME);
System.out.println(Consrant.SCHOOL_NAME);
System.out.println(Consrant.SCHOOL_NAME);
System.out.println(Consrant.SCHOOL_NAME);
}
}

13Java基础之final关键字、常量详解的更多相关文章

  1. java final关键字的详解

    final可以修饰成员变量.局部变量.方法.和类 1.final修饰成员变量时,必须在定义时初始化或者在构造方法中初始化 表示该成员变量无法在该类中被更改,但是可以被继承.如果子类不再定义相同名字的成 ...

  2. “全栈2019”Java第六十二章:接口与常量详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. Java并发关键字Volatile 详解

    Java并发关键字Volatile 详解 问题引出: 1.Volatile是什么? 2.Volatile有哪些特性? 3.Volatile每个特性的底层实现原理是什么? 相关内容补充: 缓存一致性协议 ...

  4. ava下static关键字用法详解

    Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...

  5. Docker 基础技术之 Linux cgroups 详解

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇 ...

  6. 基础 | batchnorm原理及代码详解

    https://blog.csdn.net/qq_25737169/article/details/79048516 https://www.cnblogs.com/bonelee/p/8528722 ...

  7. Struts2常量详解

    -----------------siwuxie095 Struts2 常量详解 Struts2 的常量大多在默认的配置文件中已经配置好,但根据 用户需求和开发要求的不同,可能需要修改这些常量值,修改 ...

  8. Java工程师 基础+实战 完整路线图(详解版)

    Java工程师 基础+实战 完整路线图(详解版)   Java 基础 Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装.继承.多态.此外还有泛型.反射 ...

  9. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解       1. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不 ...

  10. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

随机推荐

  1. Axure RP医疗在线挂号问诊原型图医院APP原形模板

    Axure RP医疗在线挂号问诊原型图医院APP原形模板 医疗在线挂号问诊Axure RP原型图医院APP原形模板,是一款原创的医疗类APP,设计尺寸采用iPhone13(375*812px),原型图 ...

  2. ShadowSql之开源不易

    ShadowSql集本人以前为公司内部开发的ORM之众长 再次进化而来,性能更好也更通用 其一.历时3个多月,已经发布了8个版本 在此期间深感做个开源项目非常的不易 好在现在本人想要的功能基本都已经开 ...

  3. Python模块的搜索路径

    在Python中,模块搜索路径是指解释器用来查找导入模块的位置列表.了解和掌握Python模块搜索路径对于正确导入模块和管理模块的位置至关重要. Python模块搜索路径的主要来源包括当前目录.Pyt ...

  4. Special Binary String——LeetCode进阶路

    原题链接https://leetcode.com/problems/special-binary-string/ 题目描述 Special binary strings are binary stri ...

  5. 202402 湖北武汉 4D3N3P

    202402 湖北武汉 4D3N3P D0 / 10 杭州出发 普速列车25T Z47 杭州-武昌 城站22:22开 第3候车室 这趟列车是武汉局"华东三直"中的其中一列,另外两列 ...

  6. Git 查看 tag 标签详解

    摘要:介绍git中tag标签的使用方法,包括创建标签.提交标签.查询标签和删除标签等. 我们拿到一个即将投产的标签后,需要确认标签是否打在了正确的分支,故需要查看标签的详情信息,保证顺利上线.基于此背 ...

  7. DrissionPage.errors.WrongURLError 无效的url,也许要加上"http://"?

    DrissionPage是个强大的工具,使用DrissionPage 读取本地html 报了这个错:"DrissionPage.errors.WrongURLError 无效的url,也许要 ...

  8. 2023人形全能赛体操机器人uno代码

    uno // @Author : Hcm #include <SoftwareSerial.h> // 软串口 #include <LobotServoController.h> ...

  9. 综述论文解读:Editing Large Language Models: Problems, Methods, and Opportunities

      本文为大语言模型知识编辑综述,发表于自然语言处理顶会ACL(原文链接).由于目前存在广泛的模型编辑技术,但一个统一全面的分析评估方法,所以本文:   1.对LLM的编辑方法进行了详尽.公平的实证分 ...

  10. Pod原理以及Pod生命周期

    一.Pod的介绍 1.为什么需要Pod? 假设 Kubernetes 中调度的基本单元就是容器,对于一个非常简单的应用可以直接被调度直接使用,没有什么问题,但是往往还有很多应用程序是由多个进程组成的, ...