配色: 字号:
2023年Java程序员必考60道Java面试题
2023-09-13 | 阅:  转:  |  分享 
  
当你准备面试 Java 编程工作时,考虑将被问到的问题非常重要。这些面试问题可能将因许多因素而异,包括公司类型、职位级别以及你面试的公司的经
营时间。考虑这么多因素,你如何准备回答这些问题?通过考虑展示你的 Java 编程技能和能力的示例来准备 Java 面试。你还可以想
出一些场景和过去的经验来说明你对 Java 编程概念的理解。我们建议你集思广益一些想法并将其写下来。如果你保留示例清单,则在准备面
试时可以快速参考。另一个有用的面试策略是提前查看潜在的 Java 面试问题。让我们看看一些最重要的 Java 面试问题的示例。此外
,每个问题都包含一些可以帮助你刷新记忆的信息。?我们将讨论的主题包括:?一般 Java 面试问题Java 类、变量、对象和参数问题
Java字符串面试题?你对这些主题了解得越多,你就越能出色地回答 Java 面试问题!一般 Java 面试问题什么是Java?Ja
va 是一种独立于平台的高级编程语言。它是平台无关的,因为它的字节代码可以在任何系统上运行,无论其操作系统如何。Java有什么特点
?面向对象编程 (OOP) 概念平台无关高性能多线程OOP 的概念是什么?遗产封装多态性抽象界面什么是数据封装,为什么它有用?封装
是面向对象编程中的一个概念,用于将属性和方法组合在一个单元中。封装可以帮助开发人员遵循模块化的软件开发方法,因为每个对象都有自己的
一组方法和变量,并且独立于其他对象来提供其功能。除此之外,封装还具有数据隐藏的目的。什么是多态性?多态性是一种具有多种实现的接口。
此特征使你可以在不同的上下文中为某些事物分配不同的含义或用法。例如,你可以使用多态性为实体启用多种形式,例如变量、函数或对象。多态
性有哪些类型,它们有何不同?多态性有两种类型:编译时多态性就是方法重载。运行时多态性使用继承和接口。Java中的接口指的是什么?与
Java 相关的接口是类的蓝图或抽象方法和静态常量的集合。?每个方法都是公共和抽象的,但它不包含任何构造函数。?Java 中的构
造函数是什么?在Java中,构造函数是指用于初始化对象的代码块。此外:构造函数必须与类的名称相同。?构造函数没有返回类型。?创建对
象将自动调用构造函数。命名并解释 Java 中构造函数的类型。Java 中的两种类型的构造函数是默认构造函数和参数化?构造函数。默
认构造函数?不接受任何输入主要目的是用默认值初始化实例变量?广泛用于对象创建?参数化构造?函数能够使用提供的值初始化实例变量。?这
些构造函数接受参数。?什么是JDK?JDK代表Java开发工具包。它可以编译、记录和打包 Java 程序。它包含 JRE 和开发工
具。?什么是 JVM?JVM 代表 Java 虚拟机。它是一个抽象机器,提供允许程序员执行Java字节码的运行时环境。JVM 遵循
规范、实现和运行时实例符号。?什么是 JRE?JRE代表Java运行时环境。JRE是指允许程序员执行Java字节码的运行时环境。J
RE 是 JVM 的物理实现。?在Java中,堆内存和栈内存有什么区别?记忆堆栈内存仅由一个执行线程使用。应用程序的所有部分都使用
堆内存。使用权?其他线程无法访问堆栈内存。?存储在堆中的对象是全局可访问的。内存管理堆栈遵循后进先出的方式来释放内存。堆的内存管理
源于与每个对象关联的生成。寿命堆栈一直存在,直到线程执行结束。堆内存从应用程序执行开始一直存在到结束。用法堆栈内存仅包含堆空间中对
象的本地原始变量和引用变量。?每当你创建一个对象时,它总是存储在堆空间中。??什么是 JIT 编译器?JIT 编译器在程序执行后运
行,并将代码编译成更快的形式,托管 CPU 的本机指令集。??JIT 编译器与标准编译器有何不同?JIT 可以访问动态运行时信息,
而标准编译器则不能。因此,JIT可以更好地优化常用的内联函数。?什么是内部类?内部类是嵌套在另一个类中的类。内部类对嵌套它的类具有
访问权限,并且它可以访问外部类中定义的所有变量和方法。?什么是子类?子类是从另一个称为超类的类继承的类。子类可以访问其超类的所有公
共和受保护的方法和字段。?Java中的包是什么?在Java中,包是捆绑在一起的相关类和接口的集合。??开发人员如何使用Java中的
包?Java 中的包允许开发人员模块化代码并轻松优化其重用。此外,开发人员可以使用其他类来导入和重用包中的代码。??Java中的包
有什么优点?包可以帮助开发人员避免名称冲突。包提供更容易的访问控制。?包还可以包含对外部类不可见且仅在包内使用的隐藏类。包创建了标
准化的层次结构,使得更容易找到相关的类。Java 类、变量、对象和参数问题?Java中的类是什么?所有Java代码都定义在一个类中
。它有变量和方法。?Java中的变量是什么?变量是定义类状态的属性。?如何使用 Java 中的方法?方法是必须完成确切业务逻辑的地
方。方法包含一组满足指定要求的语句或指令。??什么是Java对象?对象是类的实例。对象具有状态和行为。?什么是单例类,如何使用它?
Java 中的单例类只能有一个实例。因此,它的所有方法和变量都属于这个实例。当开发人员需要限制类的对象数量时,单例类概念非常有用。
?Java中的构造函数是什么?在 Java 中使用构造函数的唯一目的是创建类的实例。创建类的对象将调用它们。Java 构造函数的一
些关键特性包括:构造函数可以是公共的、私有的或受保护的。如果一个类已经定义了带参数的构造函数,则你不能再使用默认的无参数构造函数
- 你必须编写一个。实例化一个类只将调用它们一次。它们必须与类本身具有相同的名称。它们不返回值,并且你不必指定关键字 void。如
果你没有为类创建构造函数,Java 将通过使用所谓的默认无参构造函数来帮助你。?术语构造函数重载是什么意思?构造函数重载是指传递不
同数量和类型的变量作为参数,这些变量都是类的私有变量。?Java 中如何使用非原始变量?非原始变量始终引用 Java 中的对象。?
在Java中,什么是静态变量?静态变量与类相关联,而不是与该类的对象相关联。?Java 数据类型是什么?它们是如何分组的?在Jav
a中,变量必须是指定的数据类型,例如整数、浮点数、字符布尔值或字符串。这两组数据类型是:原始数据类型,包括 byte、short、
int、long、float、double、boolean 和 char非原始数据类型,包括字符串、数组和类?如何定义原始数据类型
并通过大小和描述来描述每种数据类型?byte的大小为 1 个字节。它存储从-128到127的整数Short 的大小为 2 个字节。
它存储从 -32,768 到 32,767 的整数int 的大小为 4 个字节。它存储从 -2,147,483,648 到 2,1
47,483,647 的整数long的大小为 8 个字节。它存储从 -9,223,372,036,854,775,808 到 9,
223,372,036,854,775,807 的整数float的大小为 4 个字节。它存储小数,足以存储 6 至 7 位小数。d
ouble 的大小为 8 个字节。它存储小数,足以存储 15 位十进制数字。布尔值的大小为 1 位。它存储真值或假值。char的大
小为 2 个字节。它存储单个字符/字母或 ASCII 值。?Java 中术语“自动装箱”和“拆箱”是什么意思?自动装箱表示 Jav
a 编译器自动将原始数据类型转换为对象等效项或包装类型以简化编译。拆箱是将包装类型自动转换为其原始等效类型。?Java 中的包装类
是什么?每个原始数据类型都有一个专用于它的类,称为包装类。我们称它们为包装类,因为它们将原始数据类型“包装”到该类的对象中。包装类
将 Java 原语转换为引用类型(对象)。??在Java中,方法和构造函数有什么区别?方法构造函数用来表示对象的行为。用于初始化对
象的状态。必须有返回类型。没有返回类型。需要显式调用。隐式调用。编译器不提供默认方法。如果类没有默认构造函数,编译器将提供默认构造
函数。方法名称可以与类名称相同,也可以不同。构造函数名称必须始终与类名称相同。?Java 中可以重写私有方法或静态方法吗?你不能重
写 Java 中的私有或静态方法。你不能重写子类中的私有方法,因为子类中无法访问它。?什么是方法隐藏?方法隐藏是覆盖私有或静态方法
的替代方法,当你隐藏超类方法时将发生这种情况。你在子类中创建具有相同返回类型和相同方法参数的类似方法。例如,你可以在子类中创建另一
个同名的私有方法。?Java 中的 equals() 和 == 有什么区别?equals() 方法?在Java中的对象类中定义。?
用于检查业务逻辑定义的两个对象的相等性。“==”(相等运算符)Java 编程语言提供的二元运算符,用于比较基元和对象。?publi
c boolean equals(object o) 是Object类提供的方法。?默认使用 == 运算符来比较两个对象。例如,你
可以重写字符串类等方法。equals() 方法用于比较两个对象的值。?可以在一个 try 块下编写多个 catch 块吗?是的,一
个 try 块下可以有多个 catch 块。你的方法应该从具体到一般,如以下示例所示:公共类示例{公共静态无效主(字符串参数[])
{尝试 {int a[]=新的int[10];a[10]=10/0;}捕获(算术异常 e){System.out.println(
“第一个catch块中的算术异常”);}捕获(ArrayIndexOutOfBoundsException e){System.o
ut.println(“第二个catch块中数组索引超出范围”);}捕获(异常 e){System.out.println(“第三
个catch块中出现任何异常”);}}?什么是局部变量?局部变量在方法中定义,变量的作用域存在于方法本身内。?什么是实例变量?实例
变量在类内部和方法外部定义。变量的作用域存在于整个类中。?Java中如何使用final关键字和final变量?当 Java 程序员
对原始数据类型的变量使用 Final 关键字时,他们无法更改该变量的值。当你将 Final 与非原始变量一起使用时,你无法更改引用
对象的成员。?Java中的继承是什么?Java 中的继承是这样一种概念:一个类的属性可以被另一个类继承。它有助于重用代码并建立不同
类之间的关系。?在Java中,什么类型的类执行继承?家长班儿童班?Java 支持哪些类型的继承?单一继承多级继承层次继承混合继承?
什么是Java异常处理?在Java中,异常是对象。当你抛出异常时,你抛出一个对象。但是,你不能仅抛出任何对象作为异常 - 只能抛出
那些其类派生自 throwable 的对象。Throwable 充当整个类系列的基类,在 java.lang 中声明,你的程序可以
实例化并抛出该类。?未检查异常、已检查异常和错误之间有什么区别?Unchecked异常继承自 RuntimeException(它
扩展自异常)。JVM 以不同的方式处理 RuntimeException,因为不需要应用程序代码显式处理它们。检查异常继承自异常类
。客户端代码必须在 try-catch 子句中处理已检查的异常,或者必须抛出异常以便超类捕获相同的异常。较低类(子类)抛出的已检查
异常将强制调用类(超类)捕获或抛出异常。错误(错误家族的成员)通常出现在更严重的问题上,例如 OutOfMemoryError (
OOM),这可能不太容易处理。?Java 中什么是循环?你可以使用循环来重复执行一条语句或语句块。??Java 中的循环有哪些类型
以及如何使用它们?For 循环在 Java 中用于重复执行语句指定的次数。当程序员知道执行语句的次数时,可以使用 For 循环。当
某些语句需要重复执行直到满足条件时,while 循环非常有用。在 while 循环中,它在执行语句之前检查条件。do?while
循环与 while 循环相同,只是它在执行语句块后检查条件。另外,do while 循环语句至少执行一次。?什么是无限循环?无限循
环没有任何条件地运行并且无限地运行。你可以通过在语句块主体中定义任何中断逻辑来中断无限循环。?如何声明无限循环?为了 (;;){?
// 要执行的语句?// 添加任何循环中断逻辑}?continue 语句和break 语句有什么区别?Break 和 contin
ue 是循环中使用的两个重要关键字。在循环中使用break关键字时,循环将立即中断。使用continue关键字时,当前迭代将中断,
循环将继续进行下一次迭代。Java字符串面试题?Java中的入口点是什么,它是怎么写的?Java 中的 main() 是任何 Ja
va 程序的入口点。main() 始终写为 public static void main string args。?在Java中
,什么是public static void main string args?public static void main s
tring args,也称为public static void main(String[] args),意思是:public是一
个访问修饰符,用于指定谁可以访问该方法。此外,任何类都可以访问此方法。static是java中的一个关键字,用于标识何时是基于类的
。main() 在 Java 中被设置为静态,以便在不创建类实例的情况下访问它。如果 main 未设为静态,则编译器将抛出错误,因
为 JVM 在创建任何对象之前调用 main()。它只能通过类直接调用静态方法。void是定义该方法的方法的返回类型。该方法不返回
值。Main是 JVM 搜索的方法的名称,作为应用程序的起点(仅具有特定的签名)。它也是主要执行发生的方法。String args
[]是传递给 main 方法的参数。?在Java中,静态方法和静态变量的用途是什么?当需要在类的多个对象之间共享方法或变量时,开发
人员使用 static 关键字使所有对象共享方法或变量。使用它而不是为每个对象创建单独的副本。?如何在 Java 中使用、调用和访
问静态方法?必须在方法名称前使用 static 关键字。使用类 (className.methodName) 调用静态方法。静态方
法不能访问任何非静态实例变量或方法。?如何在 Java 中使用、调用和访问非静态方法?不需要在方法名称前使用 static 关键字
。像调用任何通用方法一样调用非静态方法。非静态方法可以访问任何静态方法或静态变量,而无需创建类的实例。?在Java中,this()
和super()是什么,什么地方需要使用它们?在Java中,super()和this()是用于调用构造函数的特殊关键字。使用 th
is() 和 super() 时,它们必须是块的第一行。?this() 代表什么?它在 Java 中是如何使用的?this() 表
示类的当前实例用于:调用同一个类的默认构造函数访问当前类的方法指向当前类的实例?super()代表什么,它在Java中是如何使用的
?super() 表示父类/基类的当前实例用于:调用父类/基类的默认构造函数基类的访问方法指向超类实例?什么是 Java switch 语句以及如何使用它?作为标准编程逻辑,可以简单地通过使用 if...else 条件来实现。在涉及更复杂情况的程序中,复杂的场景需要调用多个方法,而 switch 可以解决这个问题。Switch 避免了多个嵌套的 if...else 语句。在产生大量迭代的 Java 场景中,切换通常比使用 if….else 语句更快。??switch case 的默认值是多少??在 switch 语句中,当没有其他 switch 条件匹配时,将执行 default case。由于默认情况是可选的,因此你只能在对所有其他开关情况进行编码后才能声明它。这份全面的 Java 面试问题列表应该可以帮助你为面试做好更好的准备,不仅如此,还可以帮助你取得成功。确保在准备时记下你的答案,以便你更好地记住。确保你练习——即使是在镜子前。了解你的声音和外表只将增强你的信心,并使你能够更好地获得你一直想要的梦想 Java 工作。
献花(0)
+1
(本文系云端筑梦师A...原创)