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

  • 说一下 jvm 运行时数据区?
    说一下 jvm 运行时数据区?
    JVM运行时数据区分为线程私有和共享区域:程序计数器记录字节码地址,是唯一不发生OOM的区域;虚拟机栈存储方法执行信息,可能抛出StackOverflowError或OutOfMemoryError;本地方法栈服务native方法;Java堆为对象实例分配空间,是GC主要区域,内存不足抛出OOM;方法区存储类信息、常量等,JDK8后元空间替代永久代;运行时常量池属方法区,支持动态添加常量;直接内存通过NIO使用,不受堆限制但受本地内存限制。
    Java面试题 . Java 898 2025-09-22 08:00:04
  • 动态代理是什么?有哪些应用?
    动态代理是什么?有哪些应用?
    动态代理是在运行时动态生成代理对象,通过拦截方法调用实现功能增强,无需修改原代码。它基于JDK(要求接口)或CGLIB(通过继承,可代理类)实现,核心是InvocationHandler或MethodInterceptor。相比静态代理需手动编写大量重复代理类,动态代理更灵活高效。典型应用包括SpringAOP实现日志、事务、权限控制;RPC框架中生成本地代理实现远程调用透明化;ORM中实现延迟加载;以及单元测试中Mock外部依赖。它使代码更纯净、可维护,是实现横切关注点的核心技术。
    Java面试题 . Java 853 2025-09-21 08:02:03
  • 数据库的三范式是什么?
    数据库的三范式是什么?
    三范式是数据库设计原则,1NF要求字段原子性,2NF消除非主属性对主键的部分依赖,3NF消除非主属性间的传递依赖,通过逐步规范数据结构减少冗余与异常,提升数据一致性与维护性,但需权衡查询性能,避免过度范式化。
    Java面试题 . Java 641 2025-09-21 08:00:01
  • mybatis 中 #{}和 ${}的区别是什么?
    mybatis 中 #{}和 ${}的区别是什么?
    {}采用预编译处理,防止SQL注入,自动转义并加引号;2.${}为字符串直接替换,存在安全风险,需手动校验;3.优先使用#{},仅在动态表名等场景慎用${}。
    Java面试题 . Java 613 2025-09-20 08:23:01
  • mysql为什么要分区?
    mysql为什么要分区?
    答案:MySQL分区通过将大表拆分为更小的物理部分来提升查询性能、简化维护和管理数据生命周期,逻辑上仍为一个表。它支持RANGE、LIST、HASH和KEY等分区类型,适用于数据量大、需定期清理或归档的场景。合理选择分区键和数量可优化性能,但需避免跨分区事务以保障一致性,并注意硬件资源与管理成本的平衡。
    Java面试题 . Java 717 2025-09-20 08:15:02
  • 集群中有3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
    集群中有3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
    是的,在3台服务器的ZooKeeper集群中,即使一个节点宕机,集群仍可正常工作。因为ZooKeeper采用法定人数机制,只要超过半数节点(至少2台)在线,即可维持服务可用性。此时,若Leader节点宕机,剩余Follower节点会自动发起选举产生新Leader,并通过数据同步保持一致性。客户端会自动重连至可用节点,确保业务连续性。但若再有节点故障,导致存活节点不足半数,则集群将不可用,因此需通过监控、备份、多机房部署等手段保障高可用。
    Java面试题 . Java 328 2025-09-19 08:12:01
  • rabbitmq 对集群节点停止顺序有要求吗?
    rabbitmq 对集群节点停止顺序有要求吗?
    停止RabbitMQ集群节点需考虑镜像队列、仲裁队列及应用依赖,建议先drain节点、移除集群、再停服务,避免数据丢失。
    Java面试题 . Java 660 2025-09-19 08:12:01
  • 如何避免 sql 注入?
    如何避免 sql 注入?
    避免SQL注入的关键是不信任用户输入并采取多重防护措施。首先使用参数化查询,将SQL语句结构与数据分离,防止恶意代码执行;结合输入验证和过滤,确保输入符合预期格式;遵循最小权限原则,限制数据库用户权限以降低攻击影响;生产环境中应隐藏详细错误信息,防止敏感信息泄露;定期进行代码审查和安全测试,及时发现漏洞;可借助ORM或存储过程减少手动拼接SQL的风险。同时可通过安全扫描工具、手动测试等方式检测漏洞,了解基于错误、布尔、时间等不同注入类型有助于针对性防御。
    Java面试题 . Java 655 2025-09-18 08:42:03
  • 集群中为什么要有主节点?
    集群中为什么要有主节点?
    主节点是集群的核心,负责协调管理、元数据存储、任务调度与故障恢复,确保集群高效稳定运行。
    Java面试题 . Java 343 2025-09-18 08:22:01
  • 线程池中 submit()和 execute()方法有什么区别?
    线程池中 submit()和 execute()方法有什么区别?
    submit()返回Future可获取结果和状态,execute()无返回值不关心结果。submit支持Callable并能处理异常,execute仅支持Runnable且异常默认被忽略。
    Java面试题 . Java 553 2025-09-17 08:14:01
  • redis 常见的性能问题有哪些?该如何解决?
    redis 常见的性能问题有哪些?该如何解决?
    Redis性能问题主要集中在CPU占用高、内存溢出、命令延迟和持久化开销。根本原因包括大Key、热Key、高复杂度命令滥用及配置不当。解决需多管齐下:优化数据结构,避免使用KEYS等阻塞命令,改用SCAN类命令;合理设置maxmemory及淘汰策略如allkeys-lru;开启主动碎片整理activedefrag;采用Pipelining和连接池提升客户端效率;排查网络延迟与系统资源争用;通过SLOWLOG定位慢查询;避免在大内存实例频繁fork导致阻塞;必要时引入RedisCluster实现分
    Java面试题 . Java 799 2025-09-17 08:02:01
  • 什么是反射?
    什么是反射?
    反射的核心应用场景包括:1.框架底层实现,如Spring通过反射进行依赖注入,Hibernate通过反射映射数据库记录到对象;2.序列化与反序列化库利用反射访问对象字段,实现通用数据转换;3.单元测试框架如JUnit通过反射查找并执行带注解的测试方法;4.动态代理与AOP借助反射在运行时生成代理类并插入横切逻辑。这些应用体现了反射在解耦、动态化和通用性方面的关键作用。
    Java面试题 . Java 942 2025-09-16 08:42:02
  • 怎么判断对象是否可以被回收?
    怎么判断对象是否可以被回收?
    对象能否被回收取决于其是否被程序需要,若无引用或仅被可回收对象引用,则可被回收。主流方法有引用计数法和可达性分析法。引用计数法通过计数器记录引用数量,优点是简单高效,但无法解决循环引用问题。可达性分析法从GCRoots出发,沿引用链搜索,不可达对象视为可回收,能解决循环引用,但实现复杂、效率较低。现代JVM如HotSpot采用可达性分析法。GCRoots包括虚拟机栈、方法区静态属性、常量、本地方法栈中的引用对象,是判断可达性的起点。理解回收机制有助于优化性能、避免内存泄漏。
    Java面试题 . Java 253 2025-09-16 08:34:01
  • spring cloud 的核心组件有哪些?
    spring cloud 的核心组件有哪些?
    SpringCloud核心组件构成微服务生态骨架,包括服务发现(如Nacos)、配置中心、客户端负载均衡(SpringCloudLoadBalancer)、熔断器(Resilience4j)、API网关(SpringCloudGateway)等,各组件协同解决分布式系统中的服务治理难题。
    Java面试题 . Java 330 2025-09-15 08:14:01
  • synchronized 和 volatile 的区别是什么?
    synchronized 和 volatile 的区别是什么?
    synchronized保证原子性和可见性,通过锁对象的monitor实现,同一时刻仅一个线程可执行同步代码块;volatile仅保证可见性,禁止指令重排序,适用于状态标志等场景。两者性能与适用场景不同,需根据需求选择。此外,Java还提供Lock、原子类、并发集合等更灵活的同步机制。
    Java面试题 . Java 759 2025-09-15 08:04:01

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

SiteDynamic企业网站管理系统1.7.7 企业版

SiteDynamic企业网站管理系统采用较为成熟的ASP+ACCESS编写,是迄今为止国内较先进的ASP语言企业网站管理系统。系统为企业级网站提供一个框架,能满足企业的基本应用,同时系统开放全部源码,用户可以根据自己的需求扩展出自己需求的模块,如:单页面、新闻、产品展示、下载、友情链接、电子商务、广告、会员、在线支付、人才招聘等。整套系统的设计构造,完全考虑大中小企业类网站的功能要求,网站的后台功能强大,管理简捷。使用页面高速缓存,站点访问速度快。 SiteDynamic模块与版本功能对比免费版:单页
企业站源码
2025-11-04

好货源连锁网源码

1、演示:以截图为准 2、好货源连锁网源码V1.1,适合广大站长做货源批发、淘宝店家货源、小商品货源等类型网站 3、运行环境:ASP/ACC 后台地址 http:/你的域名/admin/zzdl.asp 程序帐号 admin 程序密码 www.hhyls.com 源码只供大家研究学习之用,请勿做其它用途
电商源码
2025-11-04

佰牛网络企业网站管理系统3.0

佰牛企业网站管理系统(红色)是专业为个人和企业网站建设而开发的一款智能化程序。该程序基于ASP+ACCESS环境开发,拥有完善的网站前台和后台全智能化管理功能,完全由后台操作(如添加、修改网站基本信息、产品、企业新闻动态等),是个人和企业智能化网站建设首选!
企业站源码
2025-11-04

时尚起义php精品免费淘宝客源码

本程序为ecshop系统所建提供给用户程序加数据,安装步骤如下
电商源码
2025-11-04

一组海洋贝壳合集矢量素材

一组海洋贝壳合集矢量素材适用于海洋主题装饰、海滨度假村宣传、博物馆图鉴、夏季主题设计等相关视觉场景设计由AI生成的Ai格式素材。
矢量素材
2025-11-04

丛林动物园宣传材料矢量素材

丛林动物园宣传材料矢量素材适用于动物园宣传材料、儿童房墙贴或冒险主题等相关视觉场景设计的AI格式素材。
矢量素材
2025-11-04

3D柔和阴影天气图标矢量素材

3D柔和阴影天气图标矢量素材适用于天气App UI、新闻广播、儿童教育卡片、智能家居界面等相关视觉场景设计的AI格式素材。
矢量素材
2025-11-04

一组野生蘑菇插画矢量素材

一组野生蘑菇插画矢量素材适用于儿童书籍、植物书籍插图等相关视觉场景设计的AI格式素材。
矢量素材
2025-11-04

驾照考试驾校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号