当前位置:网站首页>内部类、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关键字:
静态导包:
如果需要使用第一个静态方法,该方法需要导包,可以使用静态导包的方式,如果静态导入成功后,就可以直接使用静态方法的名称。
边栏推荐
- 2022 the first of the new league henan (4) : zhengzhou university of light industry G - maze
- 接口测试框架实战(四)| 搞定 Schema 断言
- 在线密码生成工具推荐
- 3.张量运算
- Test drive: project management module - curd development project
- Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
- 刚上线就狂吸70W粉,新型商业模式“分享购”来了,你知道吗?
- 普乐蛙VR台风体验馆厂家VR防震减灾模拟VR沉浸式体验设备
- MySQL 删除表数据,重置自增 id 为 0 的两个方式
- GIS数据漫谈(五)— 地理坐标系统
猜你喜欢

MySQL 入门:Case 语句很好用

mysql 创建索引的三种方式

软件开发的最大的区别是什么?

【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed

Test drive: project management module - curd development project

t条件判断语句与if循环

在竞争白热化的电商行业,链动2+1为什么还有企业在用

多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG

私域流量引流方法?分享购火爆的商业模式,你值得拥有

10.预测房价:回归问题
随机推荐
Can Oracle EMCC be installed independently?Or does it have to be installed on the database server?
How to prepare for the test interface test data
自组织是管理者和成员的双向奔赴
MySql 创建索引
【软件工程之美 - 专栏笔记】35 | 版本发布:软件上线只是新的开始
excerpt from compilation book
2022/08/02 Study Notes (day22) Multithreading
Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
shell script loop statement
The flink sql task is changed, and after adding several fields to the sql, an error occurs when restoring from the previously saved savepoint.
[Developers must see] [push kit] Collection of typical problems of push service service 2
js garbage collection mechanism
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
typescript46-函数之间的类型兼容性
DFS对剪枝的补充
打破传统电商格局,新型社交电商到底有什么优点?
How many moments have you experienced the collapse of electronic engineers?
Practical application of WebSocket
BIOTIN ALKYNE CAS:773888-45-2价格,供应商
OpenFOAM提取等职面并计算面积