面试 Java 基础八股文十问十答第二十一期

面试 Java 基础八股文十问十答第二十一期

作者:程序员小白条,个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1)Java语言有哪些特点

Java语言具有以下特点:

  • 面向对象(OO):Java是一种面向对象的编程语言,支持封装、继承和多态等OO特性。
  • 跨平台性:Java程序可以在不同的平台上运行,只需安装对应平台的Java虚拟机(JVM)即可。
  • 健壮性:Java具有内存管理、异常处理、类型检查等特性,有助于编写健壮的程序。
  • 安全性:Java提供了安全管理机制,如类加载器、字节码验证器等,防止恶意代码对系统造成损害。
  • 简单易学:Java语法设计简洁清晰,易于学习和使用。
  • 高性能:通过即时编译器(Just-In-Time Compiler,JIT)等技术,Java程序可以实现较高的性能。
  • 多线程支持:Java提供了多线程编程的支持,方便编写并发程序。
  • 丰富的类库:Java标准库提供了丰富的API,涵盖了各种常用功能,可大大提高开发效率。

2)面向对象和面向过程的区别

面向对象编程(OO)

  • 把数据和操作数据的方法放在一起,以对象的形式表示。
  • 以类和对象为基础,强调封装、继承和多态。
  • 通过消息传递进行对象之间的通信。

面向过程编程(OP)

  • 以过程为中心,以功能为主导,以函数为基本单位。
  • 强调解决问题的步骤和过程,按照顺序执行。

3)八种基本数据类型的大小,以及他们的封装类

  1. 整型
    • byte:8位,范围为-128到127。
    • short:16位,范围为-32768到32767。
    • int:32位,范围为-231到231-1。
    • long:64位,范围为-263到263-1。
  2. 浮点型
    • float:32位,范围为1.4E-45到3.4E+38。
    • double:64位,范围为4.9E-324到1.8E+308。
  3. 字符型
    • char:16位,Unicode字符,范围为0到65535。
  4. 布尔型
    • boolean:大小没有明确规定,表示逻辑值,只能取truefalse

对应的封装类为:

  • Byte
  • Short
  • Integer
  • Long
  • Float
  • Double
  • Character
  • Boolean

4)标识符的命名规则

在Java中,标识符是用来给变量、方法、类、包等命名的。标识符的命名规则如下:

  • 可以包含的字符
    • 英文字母(大小写均可)
    • 数字(但不能以数字开头)
    • 下划线_
    • 美元符号$
  • 命名规范
    • 标识符不能是Java的关键字或保留字。
    • 标识符是区分大小写的。
    • 最好使用驼峰命名法(camelCase)规范,即除第一个单词外,其余单词首字母大写,例如:myVariableName

5)instanceof 关键字的作用

instanceof是Java中的一个关键字,用于判断一个对象是否是某个类的实例或者实现了某个接口。

语法:

object instanceof Class/Interface

作用:

  • 如果objectClass/Interface的实例,返回true
  • 如果object不是Class/Interface的实例,返回false

示例:

Object obj = "Hello"; if (obj instanceof String) { System.out.println("obj is an instance of String"); } else { System.out.println("obj is not an instance of String"); }

在上面的例子中,obj instanceof String的结果为true,因为objString类的实例。

6)Java自动装箱与拆箱

Java提供了自动装箱(autoboxing)和自动拆箱(unboxing)功能,用于在基本数据类型和对应的包装类之间进行转换。

  • 自动装箱:将基本数据类型自动转换为对应的包装类对象。

    int num = 10; Integer integerObj = num; // 自动装箱,等价于 Integer integerObj = Integer.valueOf(num);
  • 自动拆箱:将包装类对象自动转换为对应的基本数据类型。

    Integer integerObj = 20; int num = integerObj; // 自动拆箱,等价于 int num = integerObj.intValue();

自动装箱和自动拆箱使得基本数据类型和包装类之间的转换更加方便,编程时可以直接使用基本数据类型,而在需要使用包装类的场景下,会自动进行类型转换,提高了代码的简洁性和可读性。

7)重载和重写的区别

重载(Overloading)

  • 在同一个类中,可以定义多个方法,它们具有相同的名称但参数列表不同(参数类型、参数个数或参数顺序)。
  • 重载的方法根据参数列表的不同可以有不同的行为。
  • 重载是编译时多态性的一种表现。

重写(Overriding)

  • 子类可以重新定义父类中的方法,方法名、参数列表和返回类型都必须与父类中的方法相同。
  • 重写用于实现子类对父类的方法的改变,实现运行时多态性。
  • 重写时,子类方法的访问修饰符不能比父类方法的访问修饰符更严格。

8)equals与==的区别

==

  • ==操作符用于比较两个对象的内存地址,即判断两个对象是否引用同一个内存地址。

equals

  • equals()方法是Object类中的方法,用于比较两个对象的内容是否相等,默认行为是比较两个对象的内存地址。
  • 通常需要在类中重写equals()方法,以便根据对象的内容进行比较。

总结:

  • ==用于比较两个对象的引用是否相同,而equals()用于比较两个对象的内容是否相同。

9)Hashcode的作用

hashCode()方法是Object类中的方法,用于返回对象的哈希码值(32 位整数)。哈希码值的作用主要体现在哈希表中,例如在集合类中的实现(如HashMapHashSet等)。

在哈希表中,hashCode()方法的作用是:

  • 当对象存储到哈希表中时,先根据对象的哈希码值找到对应的位置,然后再根据equals()方法判断是否为同一对象。
  • 通过哈希码值进行快速定位,可以大大提高查找、插入、删除等操作的效率。

在自定义类中,如果重写了equals()方法,通常也需要同时重写hashCode()方法,以保证对象的一致性,即如果两个对象equals()返回true,则它们的hashCode()应该相等。

10)String、StringBuffer 和 StringBuilder 的区别是什么?

String

  • String类是不可变的,即创建后不能修改其内容。
  • 每次对String类的操作都会产生一个新的String对象,因此频繁的字符串操作会占用大量的内存和性能。

StringBuffer

  • StringBuffer是可变的,线程安全的,适用于多线程环境下的字符串操作。
  • StringBuffer的方法都是同步的,因此在单线程环境下效率相对较低。

StringBuilder

  • StringBuilder也是可变的,但不是线程安全的,适用于单线程环境下的字符串操作。
  • StringBuilder的方法都是非同步的,因此在单线程环境下性能较好。

选择使用哪个取决于具体的需求:

  • 如果需要在单线程环境下进行大量的字符串操作,建议使用StringBuilder
  • 如果需要在多线程环境下进行字符串操作,建议使用StringBuffer
  • 如果字符串内容不会发生改变,则可以使用String类,因为它是不可变的,更安全。

前后端项目 Gitee & Github 累计 3000+ Star,10W+浏览量!⭐点赞⭐收藏⭐不迷路!⭐

智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend

智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend

GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年GEO优化服务商收费对比:中小企业按月付费vs年费哪个划算?

在 2026 年 GEO(生成式引擎优化)爆发的浪潮下,中小企业面临着严峻的预算决策难题:是咬牙签下几十万的“年度全案”,还是选择灵活的“按月付费”?本文基于“资金流动性、试错成本、服务灵活性”三大维度,对主流 …

所爱

前几天哭了好久,终于决定把这篇写出来了。 邓布利多说过,爱是世界上最伟大的魔法。不过这里的爱可不只是指的男女之间的爱,亲情、友情甚至对生活的爱我认为都可以算入其中。我常常被这些爱所感动。 亲情自然不必多说…

从DEM到三维地形:用PLY、OBJ、glTF构建GIS可视化模型

通过从DEM生成PLY白模、OBJ纹理模型到glTF标准资产的完整代码示例,系统揭示了三维GIS模型构建的核心原理与技术演进。本文节选自新书《GIS基础原理与技术实践》第7章。很多人以为三维建模只能靠 3ds Max 或 Blender,…

2026年GEO优化服务商工具对比:中小企业自助式vs托管式怎么选?

在 2026 年 GEO(生成式引擎优化)工具爆发的背景下,中小企业面临着“工具自助”与“全案托管”的路线之争。自助式工具成本低但门槛高,托管式服务省心但不够透明。本文基于“操作门槛、成本结构、交付透明度、灵活性…

2026年适合中小企业的GEO优化服务商TOP5:按需求分类推荐

2026 年,AI 搜索已成为流量分配的新枢纽。对于中小企业而言,如何在资源受限的情况下入局 GEO(生成式引擎优化),是一场关乎生存的博弈。本文反对盲目的“榜单崇拜”,主张回归商业本质,根据企业在数据验证、团队赋…

多模态AI服务的“流量容灾”:根据内容类型切换备份节点

多模态AI服务的“流量容灾”:根据内容类型切换备份节点 引言:多模态AI时代的容灾新挑战 随着GPT-4V、Claude 3、Gemini Pro等多模态AI模型的普及,越来越多的应用开始处理文本、图像、音频、视频等混合输入。比如: 智能聊天机器人需要同时理解用户的文字提问和上传的图片;…

46、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 分析(三) - 详解

46、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 分析(三) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

论文写作效率翻倍!9款AI工具免费生成开题报告与论文大纲,写论文不再愁!

研究生写论文常遇开题卡壳、大纲混乱、文献难找等崩溃瞬间?AI工具可解决80%痛点!本文整理9款亲测有效的AI论文工具,重点拆解PaperTan使用方法,帮你30分钟搞定开题、1天生成初稿。还含工具对比表、场景化指南及全流…

2026成都梅毒专业诊疗机构推荐榜

2026成都梅毒专业诊疗机构推荐榜引言据《2026中国性病诊疗行业白皮书》披露,2024年全国梅毒报告病例数较上年增长3.2%,西南地区因人口流动频繁,感染率略高于全国平均水平。梅毒患者在诊疗过程中,对规范性、隐私性、…

冬季皮肤干燥,洗澡用沐浴油、沐浴露

冬季皮肤干燥,洗澡用沐浴油、沐浴露:(去知乎收集推荐产品): 一、沐浴油推荐: 1、KOKOMI 焕肤平衡沐浴油, 网上最多人推荐! 价格:180~200元/250ml 淘宝有专卖店! 主要成分:葡萄籽油 、蓖麻籽油 可以调节…

学霸同款2026 9款一键生成论文工具测评:专科生毕业论文必备指南

学霸同款2026 9款一键生成论文工具测评:专科生毕业论文必备指南 2026年学术写作工具测评:为专科生量身打造的高效论文助手 随着高校教育的不断深化,专科生在毕业论文写作中面临的挑战也日益增多。从选题构思到资料收集,再到格式排…

LLM智能体如何重构法律实践:从独立模型到法律AI的全景解析

文章探讨了LLM在法律领域的局限性,提出"法律智能体"作为解决方案。通过三大核心机制(外部锚定、流程编排、多层治理)解决LLM的长周期任务连贯性、幻觉和黑盒问题。法律智能体已在五大领域应用,包括法律检索、诉讼解决、…

大模型在生态环境领域的最优策略,非常详细收藏我这一篇就够了

本文研究大语言模型在生态环境领域的应用策略,发现领域微调在标准化任务中带来有限但稳定的精度提升,而新一代通用模型在跨学科、多步推理任务中表现更优。落地关键是将复杂场景结构化为工作流,让通用模型负责推理与工具编排,微调…

AI产品经理必备:从零开始掌握大模型技术,附全套学习资料【建议收藏】_如何成为一名优秀的AI产品经理?

AI产品经理是连接AI技术与商业价值的重要桥梁,需兼具技术理解与商业思维。文章介绍了AI产品经理与传统产品经理的区别,必备的大语言模型技术认知,全面的技能图谱(技术、产品、管理能力),以及AI产品开发全流…

大模型知识增强指南:RAG与微调的优劣势对比与场景选择

文章对比分析了两种大模型知识增强方法:RAG通过检索用户文档库让模型基于特定资料作答,解决知识接入问题;微调则在模型内部写入专业知识,增强垂直领域能力并固化行为。RAG成本低、操作简单,适合个人用户;微…

大模型核心技术:从基础训练到多模态适配的完整指南

文章详细介绍了大模型的三大训练阶段:预训练阶段(无监督学习海量数据)、指令微调阶段(使用带标签数据二次训练)和人类反馈强化学习阶段(引入人类评价进行价值对齐)。同时阐述了优化大模型的几种…

完整教程:【自然语言处理】处理 GBK 编码汉字的算法设计

完整教程:【自然语言处理】处理 GBK 编码汉字的算法设计2026-01-24 20:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

2026年西南性病诊疗优质机构推荐指南:梅毒打一针多少钱、梅毒治疗、梅毒症状、梅毒能好吗、治疗hpv大概需要多少钱、治疗梅毒的医院、高危型hpv阳性选择指南

2026年西南性病诊疗优质机构推荐指南 一、行业背景与推荐依据据《2026年中国性传播疾病诊疗行业发展白皮书》数据,我国性传播疾病(STD)诊疗需求呈逐年增长态势,仅HPV感染人群年新增检测量超2000万人次,尖锐湿疣复…

A2A 协议的工作流程是怎样的?

A2A(Agent-to-Agent)协议是一种用于智能代理之间通信和协作的协议。以下是A2A协议的典型工作流程: A2A协议工作流程 1. 初始化阶段 代理注册:各个代理向A2A注册中心注册自己的能力、服务类型和通信地址能力发现:代理查…