当前位置: 首页 > news >正文

Java面试题及详细答案120道之(001-020)

前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。

前后端面试题-专栏总目录

在这里插入图片描述

文章目录

  • 一、本文面试题目录
      • 1. JDK和JRE的区别是什么?
      • 2. 什么是Java中的回调机制?请举例说明。
      • 3. 两个对象的hashCode()相同,则equals()也一定为true,对吗?
      • 4. final在java中有什么作用?
      • 5. java中的Math.round(-1.5)等于多少?
      • 6. 面向对象的特征有哪些方面?
      • 7. 访问修饰符public, private, protected,以及不写(默认)时的区别?
      • 8. String是最基本的数据类型吗?
      • 9. float f = 3.4;是否正确?
      • 10. short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;有错吗?
      • 11. Java有没有goto?
      • 12. int和Integer有什么区别?
      • 13. Java中的main()方法可以返回任何数据吗?
      • 14. 什么是Java Packages?其意义是什么?
      • 15. 我们可以声明一个抽象类,但是没有任何抽象方法吗?
      • 16. Java中的抽象类和接口有什么区别?
      • 17. 接口对抽象类的性能影响是什么?
      • 18. Java中导入包时,其子包是否会被导入?
      • 19. 类中的main方法可以声明为private?
      • 20. 我们能不能通过引用向函数传递参数?
  • 二、120道面试题目录列表

一、本文面试题目录

1. JDK和JRE的区别是什么?

  • 答案:JDK是Java开发工具包,包含了JRE和一系列开发工具,是Java开发的核心,面向Java开发者。JRE是Java运行时环境,是Java程序运行的基础,确保Java程序能在不同平台运行,面向Java程序使用者。即JDK包含了JRE,JRE是JDK的一部分。

2. 什么是Java中的回调机制?请举例说明。

答案
回调机制:一个对象(A)将自身的引用传递给另一个对象(B),B在适当的时候调用A的方法(回调方法),实现反向通信。

示例(异步回调)

// 回调接口
interface Callback {void onComplete(String result);
}// 服务类(B)
class DataService {// 接收回调对象,处理完成后调用回调方法public void fetchData(Callback callback) {new Thread(() -> {// 模拟耗时操作try { Thread.sleep(1000); } catch (InterruptedException e) {}callback.onComplete("数据加载完成"); // 回调}).start();}
}// 客户端(A)实现回调接口
public class Client implements Callback {public void start() {DataService service = new DataService();service.fetchData(this); // 传递自身引用}@Overridepublic void onComplete(String result) {System.out.println(result); // 接收回调结果}public static void main(String[] args) {new Client().start(); // 输出:数据加载完成(1秒后)}
}

3. 两个对象的hashCode()相同,则equals()也一定为true,对吗?

  • 答案:不对。hashCode()返回对象的哈希码值,用于哈希表等数据结构中快速定位对象。同一个对象多次调用hashCode()方法应返回相同的值,但不同对象可能会有相同的哈希码(哈希冲突),所以两个对象hashCode()相同,不意味着equals()一定为true。

4. final在java中有什么作用?

  • 答案:final是修饰符,作用如下:
    • 修饰类:类不能被继承,如Java标准库中的String类。
    • 修饰方法:方法不能被子类重写,防止关键业务逻辑被子类改变。
    • 修饰变量:变量成为常量,其值在初始化后不能再被修改。

5. java中的Math.round(-1.5)等于多少?

  • 答案:结果是-1。Math.round()方法用于将浮点数四舍五入为最接近的整数,处理负数时采用“向零舍入”策略,即向着零的方向进行舍入。

6. 面向对象的特征有哪些方面?

  • 答案:面向对象的特征主要有抽象、继承、封装和多态性。
    • 抽象:将一类对象的共同特征总结出来构造类,包括数据抽象和行为抽象,只关注对象属性和行为,不关注细节。
    • 继承:从已有类得到继承信息创建新类,提供继承信息的类是父类,得到继承信息的类是子类,继承让软件系统有延续性。
    • 封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口,隐藏实现细节,只向外界提供简单编程接口。
    • 多态性:允许不同子类型的对象对同一消息作出不同响应,方法重载实现编译时多态性,方法重写实现运行时多态性。

7. 访问修饰符public, private, protected,以及不写(默认)时的区别?

  • 答案:public修饰的成员在任何类中都能访问;private修饰的成员只能在本类中访问;protected修饰的成员在本类、同包子类及不同包的子类中能访问;不写访问修饰符时,默认为default,对于同一个包中的其他类相当于公开,对于不同包中的类相当于私有。

8. String是最基本的数据类型吗?

  • 答案:不是。Java中的基本数据类型只有8个,即byte、short、int、long、float、double、char、boolean,String是引用数据类型。

9. float f = 3.4;是否正确?

  • 答案:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型,会造成精度损失,需要强制类型转换,如float f = (float)3.4;或者写成float f = 3.4F;。

10. short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;有错吗?

  • 答案:short s1 = 1; s1 = s1 + 1;有错,因为1是int类型,s1 + 1运算结果也是int型,需强制转换类型才能赋值给short型。short s1 = 1; s1 += 1;没错,s1 += 1相当于s1 = (short)(s1 + 1),有隐含的强制类型转换。
No.大剑师精品GIS教程推荐
0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】
1Openlayers 【入门教程】 - 【源代码+示例 300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3MapboxGL【入门教程】 - 【源代码+图文示例150+】
4Cesium 【入门教程】 - 【源代码+综合教程 200+】
5threejs【中文API】 - 【源代码+图文示例200+】

11. Java有没有goto?

  • 答案:goto是Java中的保留字,在目前版本的Java中没有使用。

12. int和Integer有什么区别?

  • 答案:int是基本数据类型,Integer是int的包装类。从JDK 1.5开始引入自动装箱/拆箱机制,使得二者可以相互转换。例如Integer b = 3;是将3自动装箱成Integer类型;Integer c = 5; int d = c;是将Integer类型的c自动拆箱成int类型赋值给d。

13. Java中的main()方法可以返回任何数据吗?

  • 答案:不能,main()方法的返回类型始终是void。

14. 什么是Java Packages?其意义是什么?

  • 答案:Java Packages是为了更好地组织类而提供的包机制,用于区别类名的命名空间。其意义在于:
    • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
    • 避免名字冲突,不同包中的类名可以相同,调用时通过包名区分。
    • 限定访问权限,拥有包访问权限的类才能访问包中的类。

15. 我们可以声明一个抽象类,但是没有任何抽象方法吗?

  • 答案:可以。但一旦一个类中含有一个抽象方法,那么该类必须声明为抽象类。

16. Java中的抽象类和接口有什么区别?

  • 答案
    • 抽象类可以有任意范围的成员数据,也可以有非抽象方法;接口只能有静态、不能修改的成员数据,且所有方法都必须是抽象的。
    • 抽象类是对类整体抽象,包括属性和行为;接口是对类局部(行为)抽象。
    • 一个类只能扩展一个抽象类,但可以实现多个接口。

17. 接口对抽象类的性能影响是什么?

  • 答案:与抽象类相比,接口性能较慢。一个类只能扩展一个抽象类,却能实现许多接口,随着接口在类中的实现,会给开发人员带来额外负担。

18. Java中导入包时,其子包是否会被导入?

  • 答案:不会,开发者需要单独导入子包。

19. 类中的main方法可以声明为private?

  • 答案:不能。Java中main方法必须是public,若为private,编译时不出错,但运行时会出错。

20. 我们能不能通过引用向函数传递参数?

  • 答案:不能,只能通过引用将值传递给函数。

二、120道面试题目录列表

文章序号Java面试题120道
1Java面试题及详细答案120道(01-20)
2Java面试题及详细答案120道(21-40)
3Java面试题及详细答案120道(41-60)
4Java面试题及详细答案120道(61-80)
5Java面试题及详细答案120道(81-100)
6Java面试题及详细答案120道(5101-120)
http://www.dtcms.com/a/297741.html

相关文章:

  • JAVA_FIFTEEN_异常
  • LeetCode 233:数字 1 的个数
  • Zero-Shot TrackingT0:对象分割+运动感知记——当“切万物”武士学会运动记忆,目标跟踪稳如老狗
  • 力扣面试150题--寻找旋转排序数组中的最小值
  • 互联网金融项目实战(大数据Hadoop hive)
  • 代码随想录算法训练营第五十三天|图论part4
  • Hive【Hive架构及工作原理】
  • Hive-vscode-snippets
  • 微信小程序文件下载与预览功能实现详解
  • nacos安装
  • SpringBoot配置多数据源多数据库
  • Androidstudio 上传当前module 或本地jar包到maven服务器。
  • 线性代数 上
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
  • 从入门到进阶:JavaScript 学习之路与实战技巧
  • Nginx 安装与 HTTPS 配置指南:使用 OpenSSL 搭建安全 Web 服务器
  • Django集成Swagger全指南:两种实现方案详解
  • 探索 MyBatis-Plus
  • 智慧灯杆:不止于照明,塔能科技的城市感知网络野心
  • 解码3D格式转换
  • 多智能体(Multi-agent)策略模式:思维链CoT和ReAct
  • 万字解析Redission ---深入理解Redission上锁过程
  • 百度蜘蛛池解析机制:原创
  • ElementPlus:ElMessageBox增加type
  • iOS 加固工具实战解析,主流平台审核机制与工具应对策略
  • ESB 在零售,物流,制造,保险,医疗行业的应用方式
  • 【Linux/Ubuntu】VIM指令大全
  • Adv. Energy Mater.:焦耳热2分钟制造自支撑磷化物全解水电极
  • 基坑渗压数据不准?选对渗压计能实现自动化精准监测吗?
  • 戴尔电脑 Linux 安装与配置指南_导入mysql共享文件夹