代码写着写着,发现做面试题的时候忘了很多基础的东西,所以,重新查一下,记一下。
参考博客:https://blog.csdn.net/pearl8899/article/details/95519636
1.public
应该是最常用的一个关键词了。它表明方法、类、参数是公开的,可以在项目中的任何地方访问。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
2.private
私有的,它表明只能在类的内部访问,是封装的体现。
3.protected
主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
4.default
有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。(这个关键词我没怎么用过...)
5.final
final修饰的属性或者变量是不可改变的,对于引用类型变量来说,是地址不能改变,如数组。
final修饰的方法可以被继承,但是不能被重写。
final修饰的类,不能被继承。
6.static
静态。静态方法:不依赖任何对象,可以直接进行访问。在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。
static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。
原文:https://www.cnblogs.com/zucc-31701019/p/13365299.html