java高频面试题(2024最新)
HashMap使用哪些方法来解决哈希冲突?
- 使用链地址法(使用散列表)来链接拥有相同hash值的数据;
- 使用2次扰动函数(hash函数)来降低哈希冲突的概率,使得数据分布更平均;
- 引入红黑树进一步降低遍历的时间复杂度,使得遍历更快;
Java内存模型
堆->用来存放对象,数组等信息;方法区->用来存放常量,静态变量,类信息等;虚拟机栈->用来存放局部变量等;本地方法栈->用来供程序调用native方法使用;程序计数器->用来记录程序运行到哪一步。
类加载机制
加载-链接-初始化,链接又包含验证,准备,解析
加载:通过全类名获取该类的二进制字节流,将字节流代表的静态存储数据结构转化为方法区中的运行时数据结构,在内存中生成一个代表该类的Class对象作为方法区这些数据的访问入口。
验证:文件格式验证==》验证字节流是否符合Class文件格式规范。元数据验证==》对字节码描述的信息进行语义分析。字节码验证==》通过数据流和控制流分析,确定程序语义是合法的。符号引用验证==》确保解析动作能正确执行
准备:是正式为类变量分配内存并设置类变量初始值的,这些内存都将在方法区中分配。注意:这时候分配的只包括类变量(static),不包括实例变量。初始值通常情况下是默认的零值。
解析:就是虚拟机将常量池中的符号引用替换为直接引用的过程。也就是得到类,方法或字段在内存中的偏移量或指针
初始化:是执行类构造器()方法的过程
更多更全面试题尽在:
https://pan.quark.cn/s/0700b37c6577

内存泄漏和内存溢出
内存泄漏只分配出去的内存回收不回来了
内存溢出指的是内存不够用,类如OOM
相关文章:
java高频面试题(2024最新)
HashMap使用哪些方法来解决哈希冲突? 使用链地址法(使用散列表)来链接拥有相同hash值的数据;使用2次扰动函数(hash函数)来降低哈希冲突的概率,使得数据分布更平均;引入红黑树进一步…...
WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
使用 Delphi 的 WebBroker 框架写 Web Server,需要一个前端的富文本编辑器。 评估了好几个,最后选择 Quill 这个开源的。 官方地址:Quill - Your powerful rich text editor 把前端代码,存储为一个单独的文本文件,方…...
新书出版,大陆首本NestJS图书《NestJS全栈开发解析:快速上手与实践》
新书全栈实战项目:数字门店管理平台开源啦🎉🎉🎉 GitHub地址(持续更新NestJS企业级实践):欢迎star⭐️⭐️⭐️ 前端ReactTypeScriptVite 后端NestMySQLRedisDocker 前言 对,你没看…...
面试题:react、vue中的key有什么作用?(key的内部原理)
1.虚拟DOM中key的作用: key是虚拟DOM对象的标识,当数据发生变化时,vue会根据【新数据】生成【新的虚拟DOM】随后Vue进行【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下: 2.对比规则: (1).旧虚拟DOM中找到了与新虚拟DOM相同的key: …...
基于python+django+vue的外卖管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的外…...
初始分布式系统和Redis特点(
(一)认识redis Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperlog…...
计算机毕业设计 家电销售展示平台的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 引言 RecyclerView 是 Android 开发中用于展示列表和网格的强大组件。它通过高效的缓存机制,优化了滑动性能和内存使用。本文将深入…...
管道缺陷检测系统源码分享
管道缺陷检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…...
python定时发送邮件的功能如何实现自动化?
Python定时发送邮件教程?如何用Python发送电子邮件? Python定时发送邮件不仅能够帮助我们自动处理日常的邮件发送任务,还能在特定时间点触发邮件发送,确保信息的及时传达。AokSend将详细探讨如何利用Python实现定时发送邮件的自动…...
工业机器人9公里远距离图传模块,无人机低延迟高清视界,跨过距离限制
在科技日新月异的今天,无线通信技术正以未有的速度发展,其中,图传模块作为连接现实与数字世界的桥梁,正逐步展现出其巨大的潜力和应用价值。今天,我们将聚焦一款引人注目的产品——飞睿智能9公里远距离图传模块&#x…...
IEEE-754 32位十六进制数 转换为十进制浮点数
要将 IEEE-754 32位十六进制数 转换为 十进制浮点数,可以使用LabVIEW中的 Type Cast 函数。以下是一些具体步骤,以及相关实例的整理: 实现步骤: 输入十六进制数:在LabVIEW中,首先需要创建一个输入控制器&am…...
XSS跨站脚本攻击及防护
什么是XSS攻击? XSS(Cross-Site Scripting,跨站脚本攻击)是一种代码注入攻击。攻击者在目标网站上注入恶意代码,当用户(被攻击者)登录网站时就会执行这些恶意代码,通过这些脚本可以读取cookie,session tokens,或者网站其他敏感的网…...
利用ClasserLoader来实现jar包加载并调用里面的方法
1.ClasserLoader介绍? classloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。…...
【VUE】快速上手
一、快速上手 创建HTML文件引入vue.js <script src"https://unpkg.com/vue3/dist/vue.global.js"></script> <script src"https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script>按照vue.js的语法编写代码…...
在 Docker 中部署无头 Chrome:在 Browserless 中运行
什么是 Browserless? Browserless 是一款基于云的浏览器解决方案,旨在实现高效的浏览器自动化、网页抓取和测试。 它利用 Nstbrowser 的指纹库,实现随机指纹切换,确保流畅的数据收集和自动化。得益于其强大的云基础设施…...
Meta-Learning数学原理
文章目录 什么是元学习元学习的目标元学习的类型数学推导1. 传统机器学习的数学表述2. 元学习的基本思想3. MAML 算法推导3.1 元任务设置3.2 内层优化:任务级别学习3.3 外层优化:元级别学习3.4 元梯度计算3.5 最终更新规则 4. 算法合并5. 理解 MAML 的优…...
【图像匹配】基于SURF算法的图像匹配,matlab实现
博主简介:matlab图像代码项目合作(扣扣:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于SURF算法的图像匹配,用matlab实现。 一、案例背景和算法介绍 前…...
RocketMQ实战与集群架构详解
目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…...
docker容器中的内存占用高的问题分析
文章目录 问题描述原因分析分析1分析2验证猜想 结论和经验 问题描述 运维新增对某服务的监控后发现:内存不断上涨的现象。进一步确认,是因为有多个导出日志操作导致的内存上涨问题。 进一步的测试得出的结果是:容器刚启动是占用内存约为50M…...
从WechatRealFriends迁移至WeFriends:解决微信好友管理痛点的完整指南
从WechatRealFriends迁移至WeFriends:解决微信好友管理痛点的完整指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/Wechat…...
Windows右键菜单管理终极指南:3分钟打造高效桌面操作环境
Windows右键菜单管理终极指南:3分钟打造高效桌面操作环境 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾因Windows右键菜单过于臃肿而烦恼&…...
OBS Multi RTMP插件:终极多平台直播同步推流解决方案
OBS Multi RTMP插件:终极多平台直播同步推流解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今直播行业快速发展的时代,如何同时在多个平台进行高效…...
Qwen3-Embedding-4B开箱即用:SGlang部署避坑指南
Qwen3-Embedding-4B开箱即用:SGlang部署避坑指南 1. Qwen3-Embedding-4B简介 Qwen3-Embedding-4B是Qwen系列最新推出的文本嵌入模型,专为语义检索、文本分类等任务优化。作为4B参数量的中型模型,它在效果与效率之间取得了良好平衡ÿ…...
解决了黄金价格api数据源不稳定的问题
最近在做一个实时金融数据项目,我比较关心的就是黄金价格的稳定获取。起初,我用的一些常规接口总会出现延迟或者返回空数据的情况。页面显示几秒前的价格,或者直接空白,让我意识到:稳定可靠的黄金价格api比漂亮的图表更…...
OpenClaw极简开发:用nanobot镜像快速验证自动化脚本
OpenClaw极简开发:用nanobot镜像快速验证自动化脚本 1. 为什么选择nanobot镜像进行OpenClaw开发 作为一名长期在本地折腾AI自动化脚本的开发者,我深知环境配置的痛。每次换机器重装OpenClaw,总要在Node.js版本、Python依赖和模型部署之间反…...
终极指南:如何用Zotero PDF Translate插件快速突破学术语言壁垒
终极指南:如何用Zotero PDF Translate插件快速突破学术语言壁垒 【免费下载链接】zotero-pdf-translate 支持将PDF、EPub、网页内容、元数据、注释和笔记翻译为目标语言,并且兼容20多种翻译服务。 项目地址: https://gitcode.com/gh_mirrors/zo/zotero…...
PicGo无法安装插件| 提示“请安装 Node.js 并重启 PicGo 再继续操作”(问题已解决)
📌 问题分析:PicGo 提示“请安装 Node.js 并重启 PicGo 再继续操作” PicGo 提示“请安装 Node.js 并重启 PicGo 再继续操作”,说明问题出在环境变量或进程识别上,或者未安装 Node.js。本篇就前者进行分解࿰…...
Python 函数式编程利器:Partial 与 ParamSpec 技术解析
partial 是 Python functools 模块中的偏函数,核心作用是「冻结」一个函数的部分参数(位置参数或关键字参数),生成一个新的函数,新函数调用时只需传入剩余未被冻结的参数即可,无需重复传入固定参数…...
5分钟部署MTools:功能强大的现代化工具,支持Windows/macOS/Linux
5分钟部署MTools:功能强大的现代化工具,支持Windows/macOS/Linux 1. 开箱即用的全能工具集 MTools是一款真正实现"下载即用"的现代化桌面工具集,它集成了图片处理、音视频编辑、AI智能工具和开发辅助四大核心功能模块。不同于需要…...
