当前位置:网站首页>内部类、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关键字:
静态导包:
如果需要使用第一个静态方法,该方法需要导包,可以使用静态导包的方式,如果静态导入成功后,就可以直接使用静态方法的名称。
边栏推荐
- Tributyl-mercaptophosphane "tBuBrettPhos Pd(allyl)" OTf), 1798782-17-8
- Talking about GIS Data (6) - Projected Coordinate System
- Bubble sort in c language structure
- 用户密码验证
- 索引创建、删除与使用
- Problems that need to be solved for interrupting the system
- Get the Ip tool class
- Flink state
- 【生物素叠氮化物|cas:908007-17-0】价格_厂家
- 【Harmony OS】【ARK UI】Date 基本操作
猜你喜欢

UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头

【Harmony OS】【ARK UI】ets使用startAbility或startAbilityForResult方式调起Ability

10.预测房价:回归问题

WinForm的控件二次开发

在线密码生成工具推荐

Jmeter 模拟多用户登录的两种方法

unity2D横板游戏教程6-敌人AI以及受击动画

【生物素叠氮化物|cas:908007-17-0】价格_厂家

Talking about GIS Data (6) - Projected Coordinate System

Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
随机推荐
【软件工程之美 - 专栏笔记】35 | 版本发布:软件上线只是新的开始
接口管理工具YApi怎么用?颜值高、易管理、超好用
StarRocks July Community Update
Interface test framework combat (1) | Requests and interface request construction
2.何为张量
The flink sql task is changed, and after adding several fields to the sql, an error occurs when restoring from the previously saved savepoint.
WebSocket的实际应用
在竞争白热化的电商行业,链动2+1为什么还有企业在用
自组织是管理者和成员的双向奔赴
2022 the first of the new league henan (4) : zhengzhou university of light industry G - maze
IO进程线程->线程->day5
建立树形结构
Redis连接不上的报错解决方案汇总
修饰生物素DIAZO-生物素-PEG3-DBCO|重氮-生物素-三聚乙二醇-二苯基环辛炔
Peptides mediated PEG DSPE of phospholipids, targeted functional materials - PEG - RGD/TAT/NGR/APRPG
表的创建、修改与删除
12.机器学习基础:评估机器学习模型
C#异步和多线程
Kotlin-Flow common encapsulation class: the use of StateFlow
Interface test Mock combat (2) | Combined with jq to complete batch manual Mock