当前位置:网站首页>内部类、static关键字、final
内部类、static关键字、final
2022-08-03 04:43:00 【lbsjdxsn】
final关键字:
final:最终、最后
1、一旦被它修饰变量,称为了常量
static final
final除了修饰常量外,也可以修饰方法或者类
2、如果final修饰了方法,该方法将无法被重写(override)
3、final关键字也可以修饰类,一旦某个类被final修饰,该类将断子绝孙,无法被继承。
面试题:为什么字符串使用final关键字
从设计安全上讲
- 确保它们不会在子类中改变语义。String类是final类,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,它引用的一定是一个String对象,而不可能是其他类的对象。
- String 一旦被创建是不能被修改的。类加载器要用到字符串,不可变性提供了安全性,以便正确的类被加载。
从效率上讲
- 设计成final,JVM才不用对相关方法在虚函数表中查询,而直接定位到String类的相关方法上,提高了执行效率。
- Java设计者认为共享带来的效率更高,字符串常量池的出现实现共享,节约空间,提高效率。
内部类:
内部类,指的就是定义在某个类内部的类。
- 什么是内部类:
将类写在其他类的内部,可以写在其他的成员位置和其他类的局部位置,这时写在其他类内部的类就称为内部类。
- 什么时候使用内部类
在描述事物,若一个事物内部还包含其他可能包含的事物,比如在描述汽车时,汽车中还包含这发动机这个事物,这时发动机就可以使用内部类来描述。即就是内部事物必须寄宿在外部事物内部。
- 面试常见的问题
以下代码运行中,请注意如何访问对应的num变量
public class Test {
public static void main(String[] args) {
Outer.Inner in = new Outer().new Inner();
in.show();
}
}
class Outer {
int num = 5;// 外部类的成员变量
class Inner {
int num = 6;// 内部类的成员变量
void show() {
int num = 7; // 内部类局部变量
System.out.println("内部类局部num=" + num);
System.out.println("内部类成员num=" + this.num);
System.out.println("外部类成员num=" + Outer.this.num);
}
}
}
static关键字:
静态导包:
如果需要使用第一个静态方法,该方法需要导包,可以使用静态导包的方式,如果静态导入成功后,就可以直接使用静态方法的名称。
边栏推荐
- 【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed
- Windows 安装PostgreSQL
- 接口测试框架实战 | 流程封装与基于加密接口的测试用例设计
- 【Harmony OS】【ArkUI】ets开发 基础页面布局与数据连接
- 安装ambari
- 软件开发的最大的区别是什么?
- 数字孪生园区场景中的坐标知识
- User password encryption tool
- 接口测试框架实战(三)| JSON 请求与响应断言
- UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头
猜你喜欢
Windows 安装PostgreSQL
typescript46-函数之间的类型兼容性
Harmony OS Date ano UI 】 【 】 the basic operation
Fluorescent marker peptides FITC/AMC/FAM/Rhodamine TAMRA/Cy3 / Cy5 / Cy7 - Peptide
shell脚本循环语句
I ported GuiLite to STM32F4 board
数字孪生园区场景中的坐标知识
【Harmony OS】【ArkUI】ets开发 图形与动画绘制
刚上线就狂吸70W粉,新型商业模式“分享购”来了,你知道吗?
超好用的画图工具推荐
随机推荐
接口管理工具YApi怎么用?颜值高、易管理、超好用
自组织是管理者和成员的双向奔赴
OpenFOAM extracts equivalency and calculates area
JS底层手写
建立树形结构
Live | StarRocks technology insider: low base dictionary global optimization
Online password generator tool recommendation
【Harmony OS】【FAQ】Hongmeng Questions Collection 1
Flink state
Tributyl-mercaptophosphane "tBuBrettPhos Pd(allyl)" OTf), 1798782-17-8
Concepts and Methods of Exploratory Testing
Redis连接不上的报错解决方案汇总
多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG
【Harmony OS】【ARK UI】轻量级数据存储
社交电商如何做粉丝运营?云平台怎么选择商业模式?
GIS数据漫谈(五)— 地理坐标系统
mysql bool blind
如何利用 Flutter 实现炫酷的 3D 卡片和帅气的 360° 展示效果
How to use the interface management tool YApi?Beautiful, easy to manage, super easy to use
BIOTIN ALKYNE CAS:773888-45-2价格,供应商