您的位置 首页 java

吊炸天核心Java面试问题,一问一答题,一问多答题(建议收藏)

Q. 如果主方法被声明为私有怎么办?

回答:

该程序可以正确编译,但在运行时它会给出“Main method not public”。信息。

Q. Java中的引用传递和值传递是什么意思?

回答:

通过引用传递意味着传递 地址 本身而不是传递值。按值传递意味着传递值的 副本

问:如果您要覆盖对象的 equals() 方法,您还可以考虑哪种其他方法?

回答:

哈希码()

Q. 说明 public static void main(String args[]) 的每个关键字的原因?

回答:

  • public – main(..) 是执行程序时由 java 环境调用的第一个方法,因此必须从 java 环境访问它。因此访问说明符必须是公开的。
  • static :Java 环境应该能够在 不创建 类实例的情况下调用该方法,因此该方法必须声明为静态。
  • void : main 不返回任何内容 ,因此返回类型必须为 void

参数 String 表示在命令行中给出的参数类型,而 arg 是在命令行中给出的字符串的数组。

回答:

程序编译。但在运行时会抛出错误“NoSuchMethodError”。

Q. 为什么 oracle Type 4 驱动被命名为 oracle 瘦驱动?

回答:

Oracle 提供了 Type 4 JDBC 驱动程序,称为 Oracle “瘦”驱动程序。该驱动程序包括其自己的完全用Java 编写的Oracle Net8 的TCP/IP 版本的实现,因此它独立于平台,可以在运行时下载到浏览器,并且在客户端不需要任何Oracle 软件。此驱动程序需要服务器端的 TCP/IP 侦听器,并且客户端连接字符串使用 TCP/IP 端口地址,而不是数据库名称的 TNSNAMES 条目。

问:什么是 Java API?

回答:

Java API 是大量现成软件组件的集合,它们提供了许多有用的功能,例如图形用户界面 (GUI) 小部件。

问:什么是 GregorianCalendar 类?

回答:

GregorianCalendar 提供对传统西方日历的支持。

问:什么是 ResourceBundle 类?

回答:

ResourceBundle 类用于存储特定于语言环境的资源,这些资源可以由程序加载,以根据正在运行的特定语言环境定制程序的外观。

问:为什么 Java 中没有全局变量?

回答:

全局变量是全局可访问的。由于以下原因,Java 不支持全局可访问变量:

  • 全局变量打破了 引用透明性
  • 全局变量 在命名空间中产生冲突

问:什么是 SimpleTimeZone 类?

回答:

SimpleTimeZone 类提供对公历的支持。

问:while 语句和 do 语句有什么区别?

回答:

while 语句(预测试)在循环开始时检查是否应该发生下一个循环迭代。do while 语句(后测)在循环结束时检查是否应该发生循环的下一次迭代。do 语句将始终至少执行一次循环体。

问:什么是 Locale 类?

回答:

Locale 类用于根据特定地理、政治或文化区域的惯例定制程序输出。

Q. 描述 OOPS 的原则。

回答:

oops 的三个主要原理分别称为多态性、继承性和封装性。

Q. 解释继承原则。

回答:

继承是一个对象获取另一个对象的属性的过程。继承允许重用经过良好测试的过程,并使更改只需进行一次并在所有相关位置生效

问:什么是隐式转换?

回答:

隐式转换是简单地将一个实体分配给另一个实体的过程,而不需要对编译器进行任何转换指导。这种类型的转换不允许在所有类型的转换中使用,并且可能不适用于所有场景。

问:sizeof 是 java 中的关键字吗?

回答:

sizeof 不是关键字。

问:什么是本地方法?

回答:

本机方法是用 Java 以外的语言实现的方法。

Q. 在 System.out.println() 中,什么是 System、out 和 println?

回答:

System 是预定义的 final 类,out 是 PrintStream 对象,println 是 out 对象中的内置重载方法。

问:什么是显式转换?

回答:

在编译器被明确告知转换对象的过程中的显式转换

问:什么是 Java 虚拟机 (JVM)?

回答:

Java 虚拟机是可以移植到各种基于硬件的平台上的软件

问:你对向下转换的理解是什么?

回答:

Downcasting的过程是指从一般类型到更具体的类型的转换,即向下转换层次结构

Q. 哪个类是每个类的超类?

回答:

目的。

Q. 命名原始 Java 类型。

回答:

8 种基本类型是 byte、char、short、int、long、float、double 和 boolean。另外是字符串。

问:布尔 & 运算符和 && 运算符有什么区别?

回答:

如果计算涉及布尔 & 运算符的表达式,则计算两个操作数,而 && 运算符是快捷运算符。当计算涉及 && 运算符的表达式时,将计算第一个操作数。如果第一个操作数返回值 true,则计算第二个操作数。如果第一个操作数的计算结果为假,则跳过第二个操作数的计算。

问:Java 如何处理整数上溢和下溢?

回答:

它使用结果的那些 低位字节 ,这些字节可以适合操作允许的类型的大小。

问:如果我写的是 static public void 而不是 public static void 怎么办?

回答:

程序编译并正常运行。

问:声明变量和定义变量有什么区别?

回答:

在声明中我们只提到变量的类型和它的名字而不初始化它。定义意味着声明+初始化。例如字符串;只是一个声明 while String s = new String (“bob”); 或字符串 s = “鲍勃”;都是定义。

问:Java 支持什么类型的参数传递?

回答:

在 Java 中,参数(基元和对象)总是 按值传递。 对于对象,对象引用本身是按值传递的,因此原始引用和参数副本都引用同一个对象。

Q. 解释封装原理。

回答:

封装是将数据和对数据进行操作的代码绑定或包装到单个实体中的过程。这使数据免受外部接口和误用的影响。对象允许将过程与它们的数据一起封装以减少潜在的干扰。考虑封装的一种方法是作为保护性包装器,防止代码和数据被包装器外部定义的其他代码任意访问。

Q. 你对变量的理解是什么?

回答:

变量是一个命名的内存位置,可以在程序中轻松引用。该变量用于保存数据,并且可以在程序执行过程中更改。

Q. 你对数字提升的理解是什么?

回答:

Numeric 提升是将较小的数值类型转换为较大的数值类型,以便可以进行整数和浮点运算。在数值提升过程中,byte、char 和 short 值被转换为 int 值。如有必要,int 值也会转换为 long 值。根据需要,long 和 float 值转换为 double 值。

Q. 用 java 语言进行强制转换是怎么理解的?铸造的种类有哪些?

回答:

将一种数据类型转换为另一种数据类型的过程称为 Casting。Java中有两种类型的强制转换;这些是隐式转换和显式转换。

Q. main 方法中 String 数组的第一个参数是什么?

回答:

字符串数组为空。它没有任何元素。这与默认情况下第一个元素是程序名称的 C/C++ 不同。如果我们在命令行中不提供任何参数,那么 main 方法的 String 数组将为空但不为 null。

问:如何证明数组不是空的而是空的?

回答:

打印array.length。它将打印 0。这意味着它是空的。但如果它为空,那么它会在尝试打印 array.length 时抛出 NullPointerException。

问:一个应用程序可以有多个具有主方法的类吗?

回答:

是的。在启动应用程序时,我们提到要运行的类名。JVM 将仅在您提到的名称的类中查找 main 方法。因此,具有 main 方法的多个类之间不存在冲突。

Q. 什么时候加载静态变量?它是在编译时还是运行时?何时在 Java 中加载静态块?

回答:

当类加载器将类带到 JVM 时会加载静态变量。不必创建对象。静态变量在加载后将被分配内存空间。静态块中的代码仅加载/执行一次,即当类首次初始化时。一个类可以有任意数量的静态块。静态块不是类的成员,它们没有返回语句,不能直接调用。不能包含 this 或 super。它们主要用于初始化静态字段。

Q. 解释 Java 虚拟机 (JVM) 的工作原理?

回答:

JVM和其他真实的计算机一样是一个抽象的计算机,它首先使用编译器将.java文件转换为.class文件(.class只是字节码文件。)解释器读取字节码。

. 什么是数据封装?

回答:

可以通过在用于访问对象字段的类 (JAVABEAN) 中创建“get”和“set”方法来使用封装。通常,这些字段是私有的,而 get 和 set 方法是公共的。封装可用于验证要存储的数据,对存储在一个或多个字段中的数据进行计算,或用于自省(例如,在 Struts 中使用 javabeans 时经常出现这种情况)。将数据和功能包装成一个单元称为数据封装。封装只不过是将数据和相关方法封装到一个单元中,这样就可以在相关方法的帮助下访问数据。封装提供数据安全性。这不过是数据隐藏。

Q. 什么是反射 API?它们是如何实施的?

回答:

反射是在运行时自省类的特性和状态并在运行时动态操作的过程。使用带有内置类(如类、方法、字段、构造函数等)的反射 API 支持这一点。示例:使用 Java 反射 API,我们可以使用 getName 方法获取类名。

Q. JVM 自己维护缓存吗?JVM 是否在堆中分配对象?这是操作系统堆还是JVM维护的堆?为什么

回答:

是的,JVM 自己维护一个缓存。它在 HEAP 上创建对象,但对这些对象的引用位于堆栈上。

Q. 什么是幻象记忆?

回答:

幻影记忆是错误的记忆。现实中不存在的记忆。

问题:命名使用边框布局作为默认布局的容器?

回答:

默认使用边框布局的容器有:window、Frame 和 Dialog 类。

所有的面试题目都不是一成不变的,特别是像一线大厂,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

文章来源:智云一二三科技

文章标题:吊炸天核心Java面试问题,一问一答题,一问多答题(建议收藏)

文章地址:https://www.zhihuclub.com/180364.shtml

关于作者: 智云科技

热门文章

网站地图