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

Java面试题及详细答案120道之(021-040)

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

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

在这里插入图片描述

文章目录

  • 一、本文面试题目录
      • 21. 对象在java中如何序列化?
      • 22. Java中的try…catch是用于异常处理吗?
      • 23. 有没有什么办法在出现异常时跳过finally?
      • 24. 什么时候类的构造函数会被调用?
      • 25. 一个类可以有多个构造函数吗?
      • 26. 我们可以覆盖类的静态方法吗?
      • 27. String是Java的数据类型吗?
      • 28. 为什么Java中的String被称为Immutable?
      • 29. 数组和向量之间有什么区别?
      • 30. 什么是多线程?
      • 31. 为什么在Java中使用Runnable Interface?
      • 32. Java中实现多线程的两种方法是什么?
      • 33. 当数据需要进行大量更改时,String和StringBuffer谁是更好的选择?
      • 34. 每个switch语句后使用break的目的是什么?
      • 35. 如何在Java中完成垃圾回收?
      • 36. 可以在Main()方法前执行代码?
      • 37. 一个类可以同时既是父类也是子类吗?请举例说明?
      • 38. 如果类中没有定义构造函数,那么类的对象将会怎么创建?
      • 39. 在多线程中,如何确保资源不会同时被多个线程使用?
      • 40. Java中,接口可以继承接口吗?
  • 二、120道面试题目录列表

一、本文面试题目录

21. 对象在java中如何序列化?

  • 答案:序列化是指把Java对象转换为字节序列的过程,只有支持java.io.Serializable接口的对象才能写入流中。

22. Java中的try…catch是用于异常处理吗?

  • 答案:是。try后面往往跟着catch或finally,try抛出的异常会被catch捕获,finally中的代码在代码终止前会执行。

23. 有没有什么办法在出现异常时跳过finally?

  • 答案:通常异常发生时会执行finally,除非在try的末尾有强制中止代码,如System.exit(0);

24. 什么时候类的构造函数会被调用?

  • 答案:每次用new来创建对象时,都会调用构造函数。例如new User(),若User类有构造函数,其构造函数会被调用。

25. 一个类可以有多个构造函数吗?

  • 答案:可以,一个类可以有多个具有不同参数的构造函数,创建对象时调用哪个构造函数取决于传递的参数。

26. 我们可以覆盖类的静态方法吗?

  • 答案:不能。静态方法属于类,在编译时解析,不能被覆盖。

27. String是Java的数据类型吗?

  • 答案:String不是Java的原始数据类型,它是java.lang.String类的对象,可使用String类的内置方法。

28. 为什么Java中的String被称为Immutable?

  • 答案:因为String对象一旦赋值就不可更改,若更改则会创建新对象。例如String str = "hello"; str = "world";,此时会创建新的String对象"world",并将str的引用指向新对象。

29. 数组和向量之间有什么区别?

  • 答案:数组是对相同原始类型数据的组合,是静态的,长度固定;向量(如Java中的Vector类)本质上是动态的,长度可变化,且Vector可以容纳不同数据类型的对象(但通常建议存放同一类型)。

30. 什么是多线程?

  • 答案:多线程是指在单个程序中以并发方式执行多个任务,同一个进程的多个线程堆栈共享,有助于提高程序性能。
No.大剑师精品GIS教程推荐
0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】
1Openlayers 【入门教程】 - 【源代码+示例 300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3MapboxGL【入门教程】 - 【源代码+图文示例150+】
4Cesium 【入门教程】 - 【源代码+综合教程 200+】
5threejs【中文API】 - 【源代码+图文示例200+】

31. 为什么在Java中使用Runnable Interface?

  • 答案:Runnable接口用于实现多线程应用程序,实现该接口的类可创建线程对象,通过重写其run方法定义线程执行的任务。

32. Java中实现多线程的两种方法是什么?

  • 答案
    • 通过实现Java.lang.Runnable接口,重写run方法,然后将实现类对象作为参数传递给Thread类构造函数创建线程对象。示例代码如下:
public class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("线程正在运行");}public static void main(String[] args) {MyRunnable runnable = new MyRunnable();Thread thread = new Thread(runnable);thread.start();}
}
- 继承Java.lang.Thread类,重写run方法,直接创建子类对象并启动线程。示例代码如下:
public class MyThread extends Thread {@Overridepublic void run() {System.out.println("线程正在运行");}public static void main(String[] args) {MyThread thread = new MyThread();thread.start();}
}

33. 当数据需要进行大量更改时,String和StringBuffer谁是更好的选择?

  • 答案:StringBuffer是更好的选择。因为String是不可变的,每次数据更改都会创建新对象,开销大;而StringBuffer是可变的,可直接修改内容。

34. 每个switch语句后使用break的目的是什么?

  • 答案:break用于在执行完当前case语句后中断switch语句,若不使用break,会继续执行后续case语句,直到遇到break或switch结束。

35. 如何在Java中完成垃圾回收?

  • 答案:Java中,对象不被引用时,垃圾回收会自动发生,对象会被自动销毁。也可调用System.gc()方法或Runtime.gc()方法建议垃圾回收器执行垃圾回收,但只是建议,垃圾回收器不一定立即执行。

36. 可以在Main()方法前执行代码?

  • 答案:可以,使用静态代码块。静态代码块中的语句会在类加载时执行,先于main方法执行,且只执行一次。示例代码如下:
public class MainClass {static {System.out.println("静态代码块先执行");}public static void main(String[] args) {System.out.println("main方法执行");}
}

37. 一个类可以同时既是父类也是子类吗?请举例说明?

  • 答案:可以。例如在继承层次结构中,Animal类是Dog类的父类,同时Animal类又是Object类的子类。

38. 如果类中没有定义构造函数,那么类的对象将会怎么创建?

  • 答案:即使类没有定义显式构造函数,对象在创建时也会执行隐式构造函数,该构造函数没有参数。

39. 在多线程中,如何确保资源不会同时被多个线程使用?

  • 答案:可通过使用同步的概念来控制,使用synchronized关键字修饰方法或代码块,确保同一时间只有一个线程能访问共享资源。示例代码如下:
public class SynchronizedExample {private int count = 0;public synchronized void increment() {count++;}public static void main(String[] args) {SynchronizedExample example = new SynchronizedExample();Thread thread1 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.increment();}});Thread thread2 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.increment();}});thread1.start();thread2.start();try {thread1.join();thread2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("Count: " + example.count);}
}

40. Java中,接口可以继承接口吗?

  • 答案:可以。接口可以继承多个接口,通过extends关键字实现。例如:
interface A {void methodA();
}
interface B extends A {void methodB();
}

接口B继承了接口A,就拥有了methodA方法,同时还定义了自己的methodB方法。

二、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/299059.html

相关文章:

  • 字节跳动扣子 Coze 宣布开源:采用 Apache 2.0 许可证,支持商用
  • Qt 远程过程调用(RPC)实现方案
  • 网络基础19--OSPF路由业务多区域
  • 【Android】相对布局应用-登录界面
  • Java 中 System 类零度解析
  • 4N90-ASEMI电机控制专用4N90
  • 【数据结构】树的概念
  • 统计与大数据分析与数学金融课程解析
  • Avantage6.6下载与安装教程
  • 2025.7.26字节掀桌子了,把coze开源了!!!
  • 激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定
  • kafka的部署和jmeter连接kafka
  • 大语言模型 LLM 通过 Excel 知识库 增强日志分析,根因分析能力的技术方案(3):使用云平台最小外部依赖方案
  • 谷粒商城170缓存序列化报错
  • ​​XSLT:XML转换的“魔法棒”​
  • XML DOM
  • 【DM数据守护集群搭建-读写分离】
  • 大语言模型 LLM 通过 Excel 知识库 增强日志分析,根因分析能力的技术方案(1):总体介绍
  • 20250726让荣品的PRO-RK3566开发板使用TF卡启动
  • 【机器学习深度学习】模型私有化部署与微调训练:赋能特定问题处理能力
  • 【AcWing 154题解】滑动窗口
  • Javaweb————什么是超文本传输协议?
  • 机器学习特征工程详解:特征选择与降维(PCA)
  • 好的编程语言设计是用简洁清晰的原语组合复杂功能
  • Java 问题排查之工具单
  • MCP协议深度解析:客户端-服务器架构的技术创新
  • 零基础 “入坑” Java--- 十四、【练习】图书小系统
  • 力扣---------238. 除自身以外数组的乘积
  • mysql group by 多个行转换为一个字段
  • Java动态调试技术原理