Java常见关键字的总结

2021/7/31 20:36:12

本文主要是介绍Java常见关键字的总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java 常见关键字总结

一.Final

1. 最终的,不可变的

2. final修饰的类不可以被继承,final类中所有的成员方法都会被隐式地指定为final方法

3. final修饰的方法不能重写

4. final变量修饰基本数据类型,则初始化后数值不能更改;如果是引用类型,则初始化后不能让其指向另一个对象。

使用final主要原因是防止任何继承类修改它的定义

 

 

二.This

1.  用于引用类的当前实例

2. this关键词可以访问当前类的实例的变量和方法,例如第一个this访问的是当前类的实例的变量,第二个类访问的是当前类的实例的方法。

int[ ] res;

void xx{

int a = this.res.length;

this.report}

 

Void report( ){

}

3. 关键字是可选的,但是使用关键字能让代码更加容易读懂。

 

三.Super

1. 用途:访问父类变量、调用父类中的一些方法

2. 使用this和super注意的问题:使用this,super掉泪其他构造方法时,需要放在首行。

 

四. Static

使用场景

1. 修饰成员变量和成员方法

(1)被static修饰的成员属于类,被类中所有对象共享,建议通过类名调用

(2)。。。。。。。。。。。。。成员变量属于静态成员变量,放在java内存区域的方法区(java内存区域我居然毫无印象)。方法区是个线程共享的内存区域

(3)题外话:HotSpot虚拟机中的方法区被称为永久代,它使用永久代来实现方法区,这样gc就可以像管理堆一样来管理这部分的内存

(4)调用格式  类名.静态变量名;类名.静态方法名();

2. 静态代码块

(1)定义在类中的方法外,执行顺序为静态代码块-非静态代码块-构造方法。无论创建多少对象,静态方法都只执行一次

3. 静态内部类

(1)与非静态内部类的区别:非静态内部类在编译完成之后会隐含地保存一个引用,该引用指向创建它的那个类,但是静态内部类就没有这个引用

(2)所以静态内部类的创建不需要依赖外围类,也不能使用外围类的非static成员变量和方法。

(3)静态内部类实现单例模式

public  class Singleton{

//使用private,避免默认调用构造方法创建对象(一个私有构造函数,确保只有单例类能创建实例)

Private singleton(){
}

// 一个私有静态变量(确保只能有一个实例)

Private static class SigletonHolder{

Private static final Singleton INSTANCE = new singleton();

}

//一个公有静态函数 (给使用者提供调用方法)

Public static Singleton getUniqueInstance(){

return SingletonHolder.INSTANCE;

}

 

Singleton类加载的时候静态内部类是没有被加载到内存的,只有当调用getUxxx()方法之后,singletonHolder才会被加载然后初始化instance实例,且jvm能保证instance方法只被实例化一次

4. 修饰类(在上面了)

5. 静态导入包 :import static xxx;可以不需要使用类名调用静态成员

 

 

五. 静态方法和非静态方法

1. 静态方法属于类的本身,非静态方法属于对象,如果方法执行的操作不依赖类中的变量和方法,那应设置为对象

2. 调用静态方法可以无需创建对象,非静态方法需要(回想自己的学生管理系统)

3. 静态方法只允许访问静态成员,不允许访问实例成员变量和示例方法

 

六. 静态代码块和非静态代码块

1. 相同点,在jvm加载类且构造方法执行之前执行。

2. 不同点,如果不想创建对象,又希望调用类中的方法,那么需要使用静态方法



这篇关于Java常见关键字的总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程