用Java命名一些OOPS概念?
Java基于面向对象的编程概念,以下是java编程中实现的一些OOPS概念。抽象化
封装
多态性
遗产
协会
聚合
组成
Java的平台独立性是什么意思?
平台独立性意味着您可以在任何操作系统中运行相同的Java程序。例如,您可以在Windows中编写java程序并在Mac OS中运行它。
什么是JVM,它是独立于平台的吗?
Java虚拟机(JVM)是java编程语言的核心。JVM负责将字节代码转换为机器可读代码。JVM不是独立于平台的,这就是为什么你有不同的JVM用于不同的操作系统。我们可以使用Java Options自定义JVM,例如为JVM分配最小和最大内存。它被称为虚拟,因为它提供了一个不依赖于底层操作系统的接口。
JDK和JVM有什么区别?
Java Development Kit(JDK)用于开发目的,JVM是执行java程序的一部分。
JDK提供编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件。执行部分由JVM处理以提供机器独立性。
JVM和JRE有什么区别?
Java Runtime Environment(JRE)是JVM的实现。JRE由JVM和java二进制文件以及其他成功执行任何程序的类组成。JRE不包含任何开发工具,如java编译器,调试器等。如果要执行任何Java程序,则应安装JRE。
哪个类是所有类的超类?
java.lang.Object是所有java类的根类,我们不需要扩展它。
为什么Java不支持多重继承?
但是接口支持多个继承。接口可以扩展多个接口,因为它们只是声明方法,实现将出现在实现类中。所以没有接口钻石问题的问题。
为什么Java不是纯粹的面向对象语言?
Java并不是纯粹的面向对象,因为它支持原始类型,如int,byte,short,long等。我相信它在编写代码时为语言带来了简单性。显然,java可以有原始类型的包装器对象,但只是为了表示,它们不会提供任何好处。
我们知道,对于所有原始类型,我们都有包装类,如Integer,Long等,它们提供了一些额外的方法。
路径和类路径变量之间有什么区别?
PATH是操作系统用于定位可执行文件的环境变量。这就是为什么当我们安装Java或希望OS找到任何可执行文件时,我们需要在PATH变量中添加目录位置。
Classpath特定于java,并由java可执行文件用于定位类文件。我们可以在运行java应用程序时提供类路径位置,它可以是目录,ZIP文件,JAR文件等。
Java中main方法的重要性是什么?
main()方法是任何独立java应用程序的入口点。main方法的语法是public static void main(String args[])。
Java main方法是public和static,因此Java运行时可以在不初始化类的情况下访问它。input参数是一个String数组,通过它我们可以将运行时参数传递给java程序。
什么是重载和覆盖java?
当我们在一个类中有多个具有相同名称的方法但参数不同时,则将其称为方法重载。
当我们有两个具有相同签名的方法,一个在父类中,另一个在子类中时,覆盖概念出现在继承图中。我们可以在子类重写方法中使用@Override注释来确保是否更改了父类方法,以及子类。
我们可以重载主方法吗?
是的,我们可以在一个类中使用名为“main”的多个方法。但是,如果我们运行该类,则java运行时环境将查找具有语法的main方法public static void main(String args[])。
我们可以在java源文件中有多个公共类吗?
我们在一个java源文件中不能有多个公共类。单个源文件可以包含多个不公开的类。
什么是Java Package以及默认导入的包?
Java包是通过对它们进行分组来组织java类的机制。分组逻辑可以基于功能或模块。java类完全分类的名称包含包和类名。例如,java.lang.Object是包的Object一部分的完全分类的类名java.lang。
java.lang默认情况下导入包,我们不需要显式地从这个包中导入任何类。
什么是访问修饰符?
Java通过公共,私有和受保护的访问修饰符关键字提供访问控制。如果没有使用这些,则称为默认访问修饰符。java类只能有公共或默认访问修饰符。
什么是最终关键字?
final关键字与Class一起使用以确保没有其他类可以扩展它,例如String类是final,我们无法扩展它。
我们可以使用带有方法的final关键字来确保子类不能覆盖它。
final关键字可以与变量一起使用,以确保它只能分配一次。但是,变量的状态可以更改,例如,我们只能将一个最终变量赋值给对象一次,但对象变量可以稍后更改。
Java接口变量默认为final和static。
什么是static关键字?
static关键字可以与类级变量一起使用,使其成为全局的,即所有对象将共享同一个变量。
static关键字也可以与方法一起使用。静态方法只能访问类的静态变量,并且只能调用类的静态方法。
什么是最终并在Java中完成?
finally块与try-catch一起用于放置您想要执行的代码,即使try-catch块抛出任何异常也是如此。finally块主要用于释放在try块中创建的资源。
finalize()是Object类中的一个特殊方法,我们可以在类中重写它。当对象收集垃圾时,垃圾收集器会调用此方法。当对象被垃圾收集时,通常会重写此方法以释放系统资源。
我们可以将一个类声明为静态吗?
我们不能将顶级类声明为static,但是内部类可以声明为static。如果内部类声明为static,则称为静态嵌套类。静态嵌套类与任何其他顶级类相同,并且仅为了包装方便而嵌套。
什么是静态导入?
如果我们必须使用来自其他类的任何静态变量或方法,通常我们导入该类,然后使用带有类名的方法/变量。import java.lang.Math;
//inside class
double test = Math.PI * 5;
我们可以通过仅导入静态方法或变量来执行相同的操作,然后在类中使用它,就像它属于它一样。import static java.lang.Math.PI;
//no need to refer class now
double test = PI * 5;
使用静态导入会导致混淆,因此最好避免使用它。过度使用静态导入会使您的程序无法读取且无法维护。
什么是java中的try-with-resources?
Java 7的一个特性是用于自动资源管理的try-with-resources语句。在Java 7之前,没有自动资源管理,我们应该明确关闭资源。通常,它是在finallytry-catch语句的块中完成的。当我们忘记关闭资源时,这种方法会导致内存泄漏。
什么是java中的多捕获块?
Java 7的改进之一是多捕获块,我们可以在一个catch块中捕获多个异常。当每个catch块具有类似的代码时,这使得代码更短且更干净。
如果catch块处理多个异常,您可以使用管道(|)将它们分开,在这种情况下,exception参数(ex)是最终的,因此您无法更改它。