吊炸天核心Java面试问题,一问一答题,一问多答题(建议收藏)
sinye56 2024-10-19 13:32 7 浏览 0 评论
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)领取,祝大家更上一层楼!!!
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)