最新Java面试题1【2024中级】

互联网大厂面试题

1:阿里巴巴Java面试题

2:阿里云Java面试题-实习生岗

3:腾讯Java面试题-高级

4:字节跳动Java面试题

5:字节跳动Java面试题-大数据方向

6:百度Java面试题

7:蚂蚁金服Java面试题-中级

8:蚂蚁金服Java面试题-高级

9:京东Java面试题-中级

10:拼多多Java面试题-电商部

11:商汤科技Java面试题

12:中软国际Java面试题-初级

13:唯品会Java面试题

14:携程Java面试题-高级

15:软通动力Java面试题

在这里插入图片描述

1.Java中的String,StringBuilder,和 StringBuffer 之间的主要区别是什么?

答案:

  • String:是不可变的,每次修改都会生成一个新的字符串。
  • StringBuilder:是可变的,用于单线程环境。它不是线程安全的,但其性能较高,适合在字符串经常改变的场景使用。
  • StringBuffer:也是可变的,和StringBuilder类似,但它支持多线程(线程安全),因为大多数其方法都是同步的。

2.解释Java中的自动装箱和拆箱。

答案:
自动装箱是指把基本数据类型自动转换成对应的包装类对象,拆箱是相反的过程,即自动将包装类对象转换为基本数据类型的值。从Java 5开始支持自动装箱和拆箱。

3.什么是内存泄露,它在Java中如何发生?

答案:
内存泄漏指的是程序中已分配的内存没有正确释放,即使它不再被使用或无法访问。在Java中,内存泄露可能发生在长时间存活的对象持有短路周期对象的引用,导致短周期对象不能被垃圾回收器回收。

4.什么是反射(Reflection)?在Java中它有什么用途?

答案:
反射是一个功能强大的特性,允许程序在运行时查询、访问和修改类、方法、字段、注解等的属性。反射常用于框架开发中,比如Spring或Hibernate这样的框架,可以使用反射来创建对象和调用方法。

5.什么是泛型?它是如何工作的?

答案:
泛型是指参数化类型的概念,允许类、接口和方法操作各种类型的对象,同时提供编译时类型安全检查。泛型在编译时会进行类型擦除,替换所有的泛型参数为其上界(通常是Object类型)。

6.在Java中,什么是枚举(Enum)?举一个枚举的例子。

答案:
枚举是一种特殊的数据类型,用来定义常量的集合。以下是一个枚举的例子:

```java
public enum Day {
   SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY;
}

7. 在Java中什么是注解(Annotation)?它有什么用处?

答案: 注解是Java 5引入的一种元数据形式,它允许在代码中添加信息,这些信息可以在运行时或编译时被处理。注解可以用于提供信息给编译器,自动生成代码,运行时动态处理等。

8. Java 平台有几种不同类型的垃圾收集器?请简要描述它们。

答案: Java平台上常见的垃圾收集器有:Serial GC(串行垃圾回收器),Parallel GC(并行垃圾回收器),CMS GC(并发标记清除垃圾回收器),G1 GC(Garbage-First Garbage Collector)。每种垃圾收集器的设计都有不同的目标,比如减少暂停时间,提高吞吐量或者更高效的内存回收。

9. 如何在Java中创建不可变类?

答案: 要创建不可变类,需满足一些条件:类必须被声明为final,所有成员变量也必须是final的。没有setter方法,构造函数中进行所有属性的赋值,并且所有可变成员变量的引用也不可变。

10. Java中的枚举类型(enum)有哪些特性?

答案: Java中的枚举是一种特殊的数据类型,它允许变量成为一组预先定义的常量。枚举增强了类型安全,可以用于switch语句,实现接口,并且可以含有自己的构造器,方法和成员变量。

11. 什么是 Java 中的自动装箱和拆箱?

答案: 自动装箱是Java的一个特性,它允许直接将原始数据类型转换为对应的对象包装器类型。自动拆箱是相反的过程,它将对象包装器类型转换为对应的原始数据类型。例如,int 和 Integer 之间的转换。

12. Java中的泛型擦除是什么?

答案: 泛型擦除是Java编译器的一个过程,它在编译时期移除所有的泛型类型信息。这意味着在运行时,泛型类和方法实际上不知道泛型参数的具体类型。

13. 请列举 Java 中的几种访问修饰符及其含义。

答案: Java中的访问修饰符包括:public(公开,任何地方都可访问),protected(受保护的,同一包内或子类可访问),default(默认,同一包内可访问)和 private(私有的,仅在同一类中可访问)。

14. 请解释 Java 中的 volatile 关键字。

答案: volatile 是一个修饰符,它可以用于变量。声明为 volatile 的变量每次被线程访问时,都强制从主内存中重新读取它的值,而且当变量改变时,强制线程将新值刷新回主内存。这保证了该变量在所有线程中是可见的。

15. 在Java中,如何创建线程并启动它?

答案: 在Java中,可以通过实现 Runnable 接口或者继承 Thread 类来创建线程。创建实现 Runnable 接口或 Thread 子类的实例,并将该实例传递给 Thread 对象。调用 Thread 对象的 start() 方法启动线程。

16. 解释 Java 中的同步块(synchronized block)及其用法。

答案: 同步块是一种同步机制,它可以锁定一个对象,防止多线程同时访问这个代码块。它通过在代码前使用 synchronized 关键字来定义。这能防止多个线程在执行时引发线程安全问题。

17. finalize() 方法在Java中有什么用处?

答案: finalize() 方法是 Object 类的一个方法,在垃圾收集器决定释放对象占用的内存之前,垃圾收集器会调用这个方法。它通常用于确保对象在被销毁前释放占用的资源,比如关闭文件或数据库连接。

下载链接博主已将以上这些面试题整理成了一个面试手册,是PDF版的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解 Hadoop 上的 Hive 查询执行流程

在 Hadoop 生态系统中,Hive 是一个重要的分支,它构建在 Hadoop 之上,提供了一个开源的数据仓库系统。它的主要功能是查询和分析存储在 Hadoop 文件中的大型数据集,包括结构化和半结构化数据。Hive 在数据查询、分析和汇总方面发挥…

java数组与集合框架(一) -- 数据结构,数组

数据结构 概述 为什么要讲数据结构? 任何一个有志于从事IT领域的人员来说,数据结构(Data Structure)是一门和计算机硬件与软件都密切相关的学科,它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储…

CQI-17:2021 V2 英文 、中文版。特殊过程:电子组装制造-锡焊系统评审标准

锡焊作为一个特殊的工艺过程,由于其材料特性的差异性、工艺参数的复杂性和过程控制的不确定性,长期以来一直视为汽车零部件制造业的薄弱环节,并将很大程度上直接导致整车产品质量的下降和召回风险的上升。 美国汽车工业行动集团AIAG的特别工…

154 Linux C++ 通讯架构实战9 ,信号功能添加,信号使用sa_sigaction 回调,子进程添加,文件IO详谈,守护进程添加

初始化信号 使用neg_init_signals(); 在nginx.cxx中的位置如下 //(3)一些必须事先准备好的资源,先初始化ngx_log_init(); //日志初始化(创建/打开日志文件),这个需要配置项,所以必须放配置文件载入的后边;//(4)一些初…

Hello算法8:堆

Hello算法8:堆 定义 堆heap是满足特定条件的完全二叉树(只有最底层节点未填满,且节点靠左填充),主要有以下两种: 大顶堆:任意节点的值≥其子节点的值 小顶堆:任意节点的值≤子节点的值 堆的常用操作 方…

最小覆盖子串-java

最小覆盖子串-java 题目描述 : 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必…

阿里云2核4G云服务器支持多少人同时在线?并发数计算?

阿里云2核4G服务器多少钱一年?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…

语音识别:基于HMM

HMM语音识别的解码过程 从麦克风采集的输入音频波形被转换为固定尺寸的一组声学向量: 其中是维的语音特征向量(例如MFCC)。 解码器尝试去找到上述特征向量序列对应的单词(word)的序列: 单词序列的长度是。…

HAProxy + Vitess负载均衡

一、环境搭建 Vitess环境搭建: 具体vitess安装不再赘述,主要是需要启动3个vtgate(官方推荐vtgate和vtablet数量一致) 操作: 在vitess/examples/common/scripts目录中,修改vtgate-up.sh文件,…

计算机网络——32差错检测和纠正

差错检测和纠正 错误检测 EDC 差错检测和纠错位(冗余位) D 数据由差错检测保护,可以包含头部字段 错误检测不是100%可靠的 协议会泄露一些错误,但是很少更长的EDC字段可以得到更好的检测和纠正效果 奇偶校验 单bit奇偶校验 …

opejdk11 java 启动流程 java main方法怎么被jvm执行

java启动过程 java main方法怎么被jvm执行 java main方法是怎么被jvm调用的 1、jvm main入口 2、执行JLI_Launch方法 3、执行JVMInit方法 4、执行ContinueInNewThread方法 5、执行CallJavaMainInNewThread方法 6、创建线程执行ThreadJavaMain方法 7、执行ThreadJavaMain方法…

YOLOv9改进策略 :主干优化 | ConvNeXtV2:适应自监督学习,让 CNN “再一次强大”?

💡💡💡本文改进内容:完全卷积掩码自编码器框架 ConvNeXt V2,它显著提高了纯convnet在各种识别基准上的性能,包括ImageNet分类,COCO目标检测和ADE20k分割。还提供了各种尺寸的预训练ConvNeXt v2模型,从而在ImageNet上具有76.7%精度的3.7M Atto model和88.9%精度的650…

CrossOver软件2024免费 最新版本详细介绍 CrossOver软件好用吗 Mac电脑玩Windows游戏

CrossOver是一款由CodeWeavers公司开发的软件,它可以在Mac和Linux等操作系统上运行Windows软件,而无需在计算机上安装Windows操作系统。这款软件的核心技术是Wine,它是一种在Linux和macOS等操作系统上运行Windows应用程序的开源软件。 Cross…

本地虚拟机服务器修改站点根目录并使用域名访问的简单示例

说明:本文提及效果是使用vmware虚拟机,镜像文件是Rocky8.6 一、配置文件路径 1. /etc/httpd/conf/httpd.conf #主配置文件 2. /etc/httpd/conf.d/*.conf #调用配置文件 调用配置文件的使用: vim /etc/httpd/conf.d/webpage.conf 因为在主配…

【STM32 HAL库SPI/QSPI协议学习,基于外部Flash读取。】

1、SPI协议 简介 SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是 一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率 较高的场合。 SPI 物理层 SPI 通讯…

【讲解下Docker in Docker的原理与实践】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

elementUI this.$msgbox msgBox自定义 样式自定义 富文本

看这个效果是不是很炫?突出重点提示内容,对于用户交互相当的棒! 下来说说具体实现: let self = this const h = self.$createElement; this.$msgbox({title: null,message: h("p", {style: "margin-top:10px"}, [h("i", {class: "el-i…

Linux——将云服务器作为跳板机,frp实现内网穿透

文章目录 操作步骤1. 准备工作:2. 配置frp服务器端:3. 配置frp客户端:4. 启动frp客户端:5. 测试连接:6. 安全注意事项: 云服务器性能分析阿里云具体操作步骤1. 购买:2. 登录:3. 首次…

Redis 慢日志

Redis慢日志 1.Redis 慢查询日志概述 客户端从发送命令到获取返回结果经过了以下几个步骤: 客户端发送命令该命令进入 Redis 队列排队等待执行Redis 开始执行命令 - Redis 命令执行完成命令执行结果返回给客户端 Redis 慢查询日志统计的时间,只包含第…

Docker 哲学 - compose.yaml 指令

compose.yaml 的 image commond working_dir 和 dockerfile的 from cmd workdir 区别在哪里 。为什么 dockerfile制定过了。compose还要再写一个。是处于个性化还是 有不同的意义 如果 dockerfile 的 from 是 node:16 ,compose.yaml 的 images 是 node:18 那么 直接…