9.18
static存在的意义
- static的主要意义是在于创建独立于集体对象的域变量或者域方法,以至于即使没有创建对象,也能使用属性和调用方法。
- static关键字还有比较冠军的作用就是,用来形成静态代码块以优化程序性能,static块可以置于类中任何地方,类中可以有多个static块。在类初次被加载是,会按照static的顺序来执行每一个static块,并且只会执行一次。
- static的优化程序性能主要是由于特性:只会在类加载的时候执行一次,因此,可以将一些只需要进行一次的初始化操作放在static代码块中进行。
static的应用场景
因为static是被类的实例对象所共享,因此如果某个成员变量是被所有对象所共享,那么就应该将该成员变量定义为静态变量。
因此常用场景有
- 修饰成员变量
- 修饰成员方法
- 静态代码块
- 修饰类【只能修饰内部类也就是静态内部类】
- 静态导包
注意事项:
- 静态只能访问静态
- 非静态既可以访问非静态也可访问静态
break ,continue ,return 的区别及作用
- break跳出总上一次循环,不再执行循环(结束当前的循环体)
- continue跳出本次循环,继续执行下次循环(结束正在执行的循环,进入下一个循环条件)
- return程序返回,不在执行下面的代码,从哪来回哪去。
在 Java 中,如何跳出当前的多重嵌套循环
在Java中,可在循环语句前定义一个标号,任何在里层循环代码中使用带有标号的break语句,就可以跳出外层循环。
public static void main(String[] args) {
ok:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println("i=" + i + ",j=" + j);
if (j == 5) {
break ok;
}
}
}
}
抽象类和接口的对比
- 抽象类是用于捕捉子类的通用特性的,接口是抽象方法的集合
- 从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范
相同点
- 接口和抽象类都不能实例化
- 都位于继承的顶端,用于被其他实现或继承
- 都包含抽象方法,其子类必须重写这些抽象方法
不同点
Java8中接口中引入默认静态方法和静态方法,以此来减少抽象类和接口的差异。
现在可以为接口提供默认的实现方法,并且不用强制子类实现它。
接口和抽象类各有优缺点,在接口和抽象类的选择上,必须遵守一个原则
- 行为模型应该总是通过接口而不是抽象定义,所以通常是邮箱选用接口,尽量少用抽象类。
- 选择抽象类的时通常是如下情况,需要定义子类的行为,又要为子类提供通用功能。
普通类和抽象类有哪些区别
普通类不能包含抽象方法,抽象类可以包含抽象方法
抽象类不能直接实例化,普通类可以直接实例化
抽象类能使用final修饰么?
不能,定义抽象类就是为了让其他类继承的,如果final修饰了就不能被继承了,二者相互矛盾,无意义,不能修饰
创建一个对象用什么关键字?对象实例于对象引用有什么不同?
new关键字,new创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放于栈内存中)。一个对象引用可以指向0个或者1个对象,(一个绳子可以不系气球,也可也系气球);一个对象可以有n个引用指向它(可以用n条绳子系住一个气球)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理