当前位置:首页 > 技术文章 > Java > Java面试题

  • 普通类和抽象类有哪些区别?
    普通类和抽象类有哪些区别?
    普通类和抽象类的核心区别在于“完整性”和“实例化能力”。1.普通类可以被直接实例化,用于创建对象,而抽象类不能直接实例化,必须通过子类实现其抽象方法后才能使用;2.抽象类可以包含抽象方法(没有具体实现的方法),而普通类不允许包含任何抽象方法;3.继承抽象类的子类必须实现其所有抽象方法,除非它本身也是抽象类,而普通类继承时没有这种强制要求;4.抽象类的设计目的是为了定义通用行为并强制子类实现特定功能,普通类则专注于具体实现;5.抽象类的构造器只能被子类调用以初始化成员变量,而普通类的构造器可直接用
    Java面试题 . Java 981 2025-07-22 10:32:02
  • 怎么确保一个集合不能被修改?
    怎么确保一个集合不能被修改?
    要确保集合不能被修改,可通过创建不可变集合、使用防御性拷贝、封装和访问控制、利用库提供的不可变数据结构等方法实现。1.创建不可变集合:使用Java的Collections.unmodifiableList或Python的frozenset等机制,使集合在创建后无法被修改。2.防御性拷贝:创建原始集合的副本,确保外部修改不影响内部集合。3.封装和访问控制:将集合设为私有并仅提供读取方法,防止外部修改。4.使用库提供的不可变数据结构:如Java的Immutables或JavaScript的Immut
    Java面试题 . Java 349 2025-07-21 20:41:01
  • 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
    两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
    两个对象的hashCode()相同,equals()方法不一定返回true。这是因为hashCode()的返回值有限,不同对象可能产生相同的哈希值(即哈希碰撞),而equals()才是判断对象是否相等的最终依据;因此当hashCode()相同时,仍需通过equals()进一步确认对象是否真正相等。
    Java面试题 . Java 982 2025-07-20 14:21:01
  • String 属于基础的数据类型吗?
    String 属于基础的数据类型吗?
    String在Java、Python等现代编程语言中不是基础数据类型,而是引用类型对象。它之所以常被误解为基本类型,是因为其使用频率高且操作直观,并且语言层面提供了字面量语法(如"hello")、运算符重载(如+拼接)等便利特性。此外,String的不可变性和字符串常量池机制也增强了其独特性与高效性,例如避免多线程竞态条件和优化内存使用。然而,作为引用类型,String的变量存储的是指向堆内存中实际数据的引用,而非直接存储值;每次修改都会创建新对象,可能导致性能问题;比较时需用equals()而
    Java面试题 . Java 738 2025-07-19 16:48:02
  • 什么是多态
    什么是多态
    多态是指同一接口在不同对象下展现不同行为,它通过父类引用操作子类对象,实现统一调用。1.多态解决了类型爆炸问题,提升代码灵活性与可扩展性;2.其核心实现方式包括方法重写(运行时多态)和方法重载(编译时多态);3.抽象类与接口进一步支持多态行为;4.多态广泛应用于框架设计、设计模式(如策略、工厂、模板方法)及通用数据处理中,符合开闭原则,使代码更简洁易维护。
    Java面试题 . Java 421 2025-07-18 17:54:02
  • 重写和重载的区别
    重写和重载的区别
    重写和重载的核心差异在于发生的场景和机制:1.重载发生在同一个类中,方法名相同但参数列表不同,编译时决定调用哪个方法,用于提高API易用性和代码清晰度;2.重写发生在子类对父类方法的重新实现,方法签名完全一致,运行时根据对象实际类型决定调用哪个方法,实现运行时多态,提升系统扩展性。
    Java面试题 . Java 1020 2025-07-17 17:01:02
  • final 在java 中有什么作用?
    final 在java 中有什么作用?
    Java中的final关键字用于确保变量、方法和类的“最终性”,提供不可变性或不可继承性。1.用于变量时,其值(基本类型)或引用(对象类型)一旦赋值便不可更改,但对象内部状态仍可变;2.用于方法时,防止子类重写以固化行为,保障核心逻辑安全;3.用于类时,禁止继承以实现不可变性或提升安全性;4.final与finally、finalize不同:finally用于异常处理后资源清理,finalize是废弃的垃圾回收回调方法,三者功能和用途截然不同。
    Java面试题 . Java 562 2025-07-16 08:50:02
  • JAVA 中的 Math.round(-1.5) 等于多少?
    JAVA 中的 Math.round(-1.5) 等于多少?
    Math.round()的底层实现是根据参数类型进行处理,float类型通过(int)Math.floor(a+0.5f),double类型通过(long)Math.floor(a+0.5d)。对于-1.5,加0.5后为-1.0,floor后结果为-1。避免问题的方法包括:1.明确舍入需求;2.使用DecimalFormat指定RoundingMode;3.自定义舍入方法;4.注意数据类型匹配。Java常用数学函数还包括abs、max/min、pow、sqrt、log/log10、三角函数及ra
    Java面试题 . Java 841 2025-07-15 14:55:02
  • JDK 和 JRE 有什么区别?
    JDK 和 JRE 有什么区别?
    JDK和JRE最核心的区别在于:JDK是Java开发工具包,用于编写、编译、调试Java程序;而JRE是Java运行时环境,仅用于运行别人写好的Java程序。换句话说,JDK包含JRE以及一系列开发工具,适合开发者使用;而JRE只提供运行环境,不具备开发能力。若你安装了Java却无法编译代码,可能是因为只安装了JRE而非JDK,因为javac编译器属于JDK的一部分。开发Java程序必须安装JDK,因为它提供了编译器、调试器、归档工具等必要组件,而IDE如IntelliJIDEA或Eclipse
    Java面试题 . Java 745 2025-07-14 08:23:02
  • java 中操作字符串都有哪些类?它们之间有什么区别?
    java 中操作字符串都有哪些类?它们之间有什么区别?
    Java中操作字符串主要有三个类:String、StringBuffer和StringBuilder。1.String是不可变的,适用于内容不常变化的场景;2.StringBuffer是可变且线程安全,适合多线程环境;3.StringBuilder是可变但非线程安全,适合单线程环境。选择依据为:若字符串内容经常变化,优先考虑StringBuilder(单线程)或StringBuffer(多线程);若内容很少变化,则使用String。String的不可变性提升了安全性、支持缓存、保证线程安全并允许
    Java面试题 . Java 956 2025-07-13 11:45:02
  • 抽象类能使用 final 修饰吗?
    抽象类能使用 final 修饰吗?
    Java不允许抽象类被final修饰,因为两者语义冲突;abstract表示类未完成需继承实现,final则禁止继承,导致类无法使用;编译器会直接报错;抽象类可用public、protected、包私有访问修饰符,也可包含static成员和final字段;抽象类中的具体方法可被final修饰以防止重写;若需要不可继承但定义公共行为的类,应使用final类或接口实现。
    Java面试题 . Java 488 2025-07-12 12:39:02
  • 抽象类必须要有抽象方法吗?
    抽象类必须要有抽象方法吗?
    抽象类即使没有抽象方法,也具有重要作用。首先,它作为基类提供通用实现,封装公共行为,如具体方法、成员变量和构造器,供子类继承使用;其次,它阻止自身被直接实例化,确保只有具体子类能被创建,适用于代表抽象概念的类,如“动物”;最后,它在框架设计中广泛应用,通过模板方法模式定义算法骨架,并由子类实现具体步骤,提升代码复用性和系统扩展性。
    Java面试题 . Java 639 2025-07-11 14:18:02
  • ==和 equals 的区别是什么?
    ==和 equals 的区别是什么?
    ==比较内存地址,equals比较内容(若重写)。1.==操作符对基本类型比较值,引用类型比较地址。2.equals默认行为与==相同,但可被重写以比较对象内容。3.重写equals时必须同时重写hashCode以保持一致性,确保相等对象哈希码相同。4.String类重写equals以比较字符数组内容。5.哈希码用于快速定位哈希表中对象位置,未重写hashCode会导致集合类如HashMap无法正确识别相等对象。
    Java面试题 . Java 827 2025-07-10 18:46:02
  • BIO、NIO、AIO 有什么区别?
    BIO、NIO、AIO 有什么区别?
    BIO、NIO和AIO的核心区别在于对“阻塞”和“并发”的处理方式。1.BIO是传统的阻塞模型,一个连接一个线程,适合连接数少、数据量大的场景;2.NIO是非阻塞模型,通过Selector实现多路复用,一个线程可处理多个连接,适用于高并发场景;3.AIO是完全异步模型,操作由操作系统完成并通过回调通知结果,适合极致性能需求但编程复杂度高。选择哪种模型取决于应用场景对并发量和开发复杂度的权衡。
    Java面试题 . Java 311 2025-07-09 15:18:02
  • Files的常用方法都有哪些?
    Files的常用方法都有哪些?
    JavaNIO.2中的java.nio.file.Files类提供了丰富的文件操作功能,分为四大类。1.文件与目录的创建、删除与移动:createFile、createDirectory、createDirectories用于创建文件或目录;delete和deleteIfExists用于删除;copy和move用于复制和移动。2.文件内容读写:readAllBytes和readAllLines用于快速读取文件内容;write用于写入字节或文本。3.文件属性与状态查询:exists、isDirec
    Java面试题 . Java 341 2025-07-08 15:24:03

PHP讨论组

组员:3305人话题:1500

PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是

学习途径

工具推荐

jQuery企业留言表单联系代码

jQuery企业留言表单联系代码是一款简洁实用的企业留言表单和联系我们介绍页面代码。
表单按钮
2024-02-29

HTML5 MP3音乐盒播放特效

HTML5 MP3音乐盒播放特效是一款基于html5+css3制作可爱的音乐盒表情,点击开关按钮mp3音乐播放器。
播放器特效
2024-02-29

HTML5炫酷粒子动画导航菜单特效

HTML5炫酷粒子动画导航菜单特效是一款导航菜单采用鼠标悬停变色的特效。
菜单导航
2024-02-29

jQuery可视化表单拖拽编辑代码

jQuery可视化表单拖拽编辑代码是一款基于jQuery和bootstrap框架制作可视化表单。
表单按钮
2024-02-29

芝麻乐开源众筹cms系统

芝麻乐开源众筹系统采用php+mysql开发,基于MVC开发,适用于各类互联网金融公司使用,程序具备模板分离技术,您可以根据您的需要进行应用扩展来达到更加强大功能。前端使用pintuer、jquery、layer等....系统易于使用和扩展简单的安装和升级向导多重业务逻辑判断,预防出现bug后台图表数据方式,一目了然后台包含但不限于以下功能:用户认证角色管理节点管理管理员管理上传配置支付配置短信平台新闻系统单页介绍项目回收站项目标签项目分类新增项目资金明细充值记录提现管理平台转账网站导航广告管理安装方法
电商源码
2025-11-03

服务类家政钟点工保姆网站源码1.7.0

服务类家政钟点工保姆网站源码是基于易优cms开发,非常适合家政企业通过网络拓展业务、程序内核为Thinkphp5.0开发,后台简洁,为企业网站而生。 这是一套安装就能建站的程序,不定期更新程序BUG,更新网站功能。我们提供的不仅是模板这么简单,我们还提供程序相关咨询、协助安装等服务。 默认不包含小程序插件,需要另外单独购买插件。 模板安装步骤 1、请将安装包ZIP上传到你的网站根目录,在线解压 2、安装模板系统:直接运行:http://您的域名/install
企业站源码
2025-11-03

ASP在线订单系统

可方便大家在asp和htm网页中调用,并可以根据自己的意愿随意修改和扩展
电商源码
2025-11-03

rmTop-cms茶叶官网模板源码1

rmTop-cms企业官网系统是专门为企业提供快速建站,全方位后台一键控制,小到各个图片文字,使用非常方便。
企业站源码
2025-11-02

温馨舒适矢量风格经典早餐插画

温馨舒适矢量风格经典早餐插画适用于咖啡馆菜单、酒店宣传册或儿童读物等相关视觉场景设计的AI格式素材。
矢量素材
2025-11-03

保护环境活动项目列表设计下载

保护环境活动项目列表设计适用于保护环境活动设计 本作品提供保护环境活动项目列表设计的图片会员免费下载,格式为PSD,文件大小为1.0M; 请使用软件Photoshop进行编辑,作品中文字及图均可以通过软件修改和编辑;
psd素材
2025-11-03

创意手工课程内容展示海报素材下载

创意手工课程内容展示海报素材适用于手工课程海报设计 本作品提供创意手工课程内容展示海报素材的图片会员免费下载,格式为PSD,文件大小为31.2M; 请使用软件Photoshop进行编辑,作品中文字及图均可以通过软件修改和编辑;
psd素材
2025-11-03

卡通万圣节海报源文件设计下载

卡通万圣节海报源文件设计适用于万圣节海报模板设计 本作品提供卡通万圣节海报源文件设计的图片会员免费下载,格式为PSD,文件大小为73.8M; 请使用软件Photoshop进行编辑,作品中文字及图均可以通过软件修改和编辑;
psd素材
2025-11-03

驾照考试驾校HTML5网站模板

驾照考试驾校HTML5网站模板是一款适合提供驾驶培训和组织驾照考试服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
前端模板
2025-06-10

驾照培训服务机构宣传网站模板

驾照培训服务机构宣传网站模板是一款适合提供一般驾驶和计划培训的驾校宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
前端模板
2025-01-07

新鲜有机肉类宣传网站模板

新鲜有机肉类宣传网站模板是一款适合提供各种新鲜有机肉类食材宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
前端模板
2025-01-06

HTML5房地产公司宣传网站模板

HTML5房地产公司宣传网站模板是一款适合从事房地产服务行业宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
前端模板
2025-01-06
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号