11.如何理解Java中的super?
Java中的super关键字是一个引用变量,用于引用直接的父类对象。无论何时创建子类的实例,都会创建一个父类的实例,即由超级引用变量引用。
Java super关键字用于指代:
即时父类实例变量
即时父类构造函数
即时父类方法
12.什么是构造函数?
Java中的构造函数是用于初始化对象的特殊类型的方法。它在对象创建时被调用。它构造的值,即为对象提供数据,这就是为什么它被称为构造函数。创建Java构造函数的规则:
构造函数名称必须与其类名相同
构造函数不能有明确的返回类型
Java构造函数的类型:
默认构造函数(无参数构造函数)
参数化的构造函数
13.默认构造函数的目的是什么?
没有参数的构造函数被称为默认构造函数。
默认构造函数的语法:
<CLASS_NAME>(){}
14.一个类可以由什么组成?
一个类由局部变量,实例变量和类变量组成。
15.局部变量的默认值是多少?
本地变量未初始化为任何默认值; 既不是原语也不是对象引用。
16.路径和类路径变量有什么区别?
PATH是操作系统用来查找可执行文件的环境变量。这是我们在安装Java时需要在PATH变量中添加目录位置的原因,或者希望OS找到任何可执行文件的原因。
Classpath特定于Java,由Java可执行文件用于定位类文件。我们可以在运行Java应用程序时提供类路径位置,它可以是目录,ZIP文件或JAR文件。
17.'static‘关键字的含义是什么?是否可以重写Java中的私有或静态方法?
static关键字表示可以访问成员变量或方法,而不需要实例化它所属的类。您不能在Java中重写静态方法,因为方法重写是基于运行时的动态绑定,并且静态方法在编译时是静态绑定的。静态方法与类的任何实例都没有关联,所以这个概念是不适用的。
18.堆和堆内存之间有什么区别?
堆和堆内存之间的主要区别是:
堆内存由应用程序的所有部分使用,而堆栈内存仅由一个执行线程使用。
当创建一个对象时,它总是存储在堆空间中,并且堆栈内存中包含对它的引用。
堆栈内存仅包含本地原始变量和引用变量以便堆空间中的对象。
堆栈中的内存管理以LIFO方式完成; 它在全局使用的堆内存中更加复杂。
19.解释创建线程的不同方式。你更喜欢哪一个?为什么?
有三种创建线程的方法:
1)一个类可以扩展Thread类
2)一个类可以实现Runnable接口
3)应用程序可以使用Executor框架来创建线程池。
Runnable接口是首选,因为它不需要一个对象来继承Thread类。
20.什么是同步?
同步是指多线程。同步的代码块一次只能由一个线程执行。由于Java支持执行多个线程,因此两个或多个线程可以访问相同的字段或对象。同步是一个让所有执行中的并发线程同步的进程。同步避免了由于共享内存不一致而导致的内存一致性错误。当一个方法被声明为synchronized时,该线程将为该方法的对象保存监视器。如果另一个线程正在执行同步方法,则该线程将被阻塞,直到该线程释放监视器。
更多山东编程培训相关资讯,请扫描下方二维码