java基础03:final

2023-11-12

说明:

final是java的一个关键字,是最终的意思。

final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量(就是已经实例化的对象)必须显式指定初始值。

final 修饰符通常和 static 修饰符一起使用来创建类常量。

修饰类:表示类不可被继承

修饰方法: 表示方法不可被子类覆盖(可以继承!但是不可以重写!声明 final 方法的主要目的是防止该方法的内容被修改),但是可以重载(在一个类中)

修饰变量:表示变量一旦被赋值就不可以更改它的值。

(1)修饰成员变量成员变量是指在一个类中定义的变量):

如果final修饰的是类变量(也就是静态变量)--->归类所有,只能在静态初始化块中指定初始值或者声明该类变量时指定初始值.  

如果final修饰的是成员变量 -->每个实例可以定制的,可以在非静态初始化块、声明该变量或者构造器中执行初始值.

(2)修饰局部变量(局部变量是指在方法中定义的变量):系统不会为局部变量进行初始化,局部变量必须由程序员显示初始化。因此使用final修饰局部变量时,即可以在定义时指定默认值(后面的代码不能对变量再赋值》,也可以不指定默认值,而在后面的代码中对final变量赋初值(仅一次)---〉使用前要赋值,也就是不能为空?null?

(3)修饰基本类型数据引用类型数据

基本类型:其数值一旦初始化后便不能再更改;

引用类型:初始化后不能指向别的对象(不能置为空),但是引用的值是可变的;

相关的面试题:

1.为什么局部内部类和匿名内部类只能访问局部final变量?

(内部类分为局部内部类和匿名内部类...)

可以直接访问外部类的所有成员(也就是非局部的?),包含私有的

内部类编译之后会生成两个class文件,内部类和外部类是同一个级别,它们都是一个class文件;里面的class不会随着外面的class回收而回收,局部内部类和匿名内部类只能访问局部final变量,是为了解决外部类被回收后,变量也跟着消失了,此时内部类就拿不到变量了,但是如果拷贝一份,外部变量变化感知不到,就会出现差异,所以限制内部类只能使用final修饰的变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java基础03:final 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的

随机推荐

  • Js常用面试题目知识整理

    Js代码题 1 千分位 题目 要求返回参数数字的千分位分隔符字符串 思路 在字符串长度不确定的情况下 可以使用递归 comma number 1000 是获取数字最后三位 将其放在返回值的最后面 并且在前面加一个逗号 comma Math
  • freenom域名申请教程

    freenom域名申请教程 1 注册 申请域名 打开freenom官网 注册一个账户 注意 如果没有明显的注册按钮 可以通过如下方式同时申请域名和注册账户 打开域名申请 不用注册 选择好了域名之后 点击Checkout 选择免费期限 最长的
  • shell脚本编程 实例讲解(键盘输入三个数字,按照从大到小的书顺序输出)

    1 键盘输入三个数字 按照从大到小的书顺序输出 排序题 a b c 2 10 9 a 2 b 10 c 9 第一步 两两相互进行比较 比较三次 第二步 不论谁大谁小 最后都输出 a b c 从大从小 a永远存储的都是最大值 a和b进行比较
  • 笔记&代码

    可视化前三步走 数据类型 分析目的 实现工具 2 1 类别数据可视化 显示各类别的绝对频数及百分比等 条形图 饼图等 2 1 1 条形图及其变种 垂直条形图 类别在x轴 水平条形图 类别在y轴 简单条形图 并列条形图 堆叠条形图 1 简单条
  • 前端知识——css 之 flex 布局

    目录 一 认识 flex 布局 1 flex 布局的重要概念 二 flex 相关属性 1 flex container 中的属性 1 1 flex direction item 的排布方向 1 2 flex wrap 排布是否换行 1 3
  • Java多线程下载文件

    Java多线程下载文件 优化 合理利用服务器资源 将资源利用最大化 加快下载速度 一般有两种方式 线程池里面有N个线程 多线程下载单个文件 将网络路径的文件流切割成多快 每个线程下载一小部分 然后写入到文件里面 组成一个文件 当有很多个文件
  • MQ队列消息怎么保证100%不丢失

    面试官在面试候选人时 如果发现候选人的简历中写了在项目中使用了 MQ 技术 如 Kafka RabbitMQ RocketMQ 基本都会抛出一个问题 在使用 MQ 的时候 怎么确保消息 100 不丢失 这个问题在实际工作中很常见 既能考察候
  • javaScript基础面试题 --- new操作符具体做了什么?

    当我们使用new操作符调用函数时 背后发生了很多事情 这里是简单的new操作符的行为 创建一个新的空对象 将这个空对象的原型链接到构造函数的prototype对象 使用这个新对象作为上下文 即this的值 调用该构造函数 如果构造函数返回一
  • Yii Framework 开发教程(25) 数据库-Query Builder示例

    上一篇介绍PHP使用DAO 数据库访问对象接口 访问数据库的方法 使用DAO需要程序员编写SQL语句 对于一些复杂的SQL语句 Yii提供了Query Builder来帮助程序员生成SQL语句 Query Builder提供了一中面向对象的
  • Windows7安装docker以及使用docker安装centos7

    目录 一 WIN7安装DOCKER 二 docker安装centos7 1 查看可用的 CentOS 版本 2 拉取指定版本的 CentOS 镜像 3 查看本地镜像 4 运行容器 并且可以通过 exec 命令进入 CentOS 容器 5 安
  • STM32内部参考电压+DMA精准采集电池电压

    最近项目又遇到了电池电压采集 锂电池的电压范围是4 2到2 8一般 当锂电池低于3 3V时 单片机供电电压会小于3 3V 那么电池电压参考计算4096就不能对应3 3 所以必须采用内部参考电压 我项目中用到的是RP104N331 LDO 实
  • openwrt上nginx启动报错nginx: [emerg] getpwnam("www") failed

    检查nginx的配置文件 etc nginx nginx conf 里面配置里确实有这一项 user nobody nogroup user www www worker processes 2 系统的用户又没有www这个用户 这就尴尬了
  • 本地缓存技术分享

    本地缓存 缓存分为本地缓存与分布式缓存 本地缓存为了保证线程安全问题 一般使用ConcurrentMap的方式保存在内存之中 而常见的分布式缓存则有Redis MongoDB等 一致性 本地缓存由于数据存储于内存之中 每个实例都有自己的副本
  • 深度学习&强化学习&进化计算 入门资源整理

    深度学习 强化学习 进化计算 入门资源整理 深度学习 在线课程 在线书籍 学习Python 强化学习 在线课程 在线书籍 更多资源 进化计算 后记 深度学习 在线课程 深度学习是机器学习领域的一个分支 想要入门深度学习 最好先对机器学习的一
  • 学会了,不会ps也能更换自己的证件照底色,制作自己的证件照

    证件照经常会由于背景色与要求不符而不能用 再去拍一组浪费时间和金钱 如何省时省力的把照片背景色修改成我们所需要的底色呢 说到修改照片背景色 首先想到大家常用的证件照 根据不同用处会要求 白 蓝 红 底色 在过去大家可能需要去图片社重新照 或
  • [631]一行js代码识别Selenium+Webdriver

    文章目录 一行js代码识别Selenium Webdriver 如何正确移除Selenium中的 window navigator webdriver 最新版 附一些网站检测selenium的示例 driver execute script
  • ESP32 SIM800L:发送带有传感器读数的文本消息(SMS警报)

    在这个项目中 我们将使用T Call ESP32 SIM800L模块创建一个SMS通知系统 当传感器读数高于或低于特定阈值时 该模块会发送SMS 在此示例中 我们将使用DS18B20温度传感器 并在温度高于28 C时发送短信 一旦温度降低到
  • uniapp使用scroll-view实现左右,上下滑动

    uniapp使用scroll view实现左右 上下滑动 阐述 我们在项目中往往都能遇到实现左右滑动跟上下滑动的需求 不需要安装better scroll uniapp 自带的scroll view 就可以实现了 实现左右滑动
  • 开源项目,源码

    GitHub 优秀的 Android 开源项目 转自 http blog csdn net shulianghan article details 18046021 主要介绍那些不错个性化的View 包括ListView ActionBar
  • java基础03:final

    说明 final是java的一个关键字 是最终的意思 final 表示 最后的 最终的 含义 变量一旦赋值后 不能被重新赋值 被 final 修饰的实例变量 就是已经实例化的对象 必须显式指定初始值 final 修饰符通常和 static