Java基础总结基础概念多线程/并发集合框架网络编程netty场景题经典面试题总结Java基础面试主要分为4个版块基础概念面向对象、多线程/并发、集合框架以及网络编程。基础概念这部分没啥需要记录的就面向对象那些直接背。 重点在Java8、11、17、21的新特性。面试题链接[https://www.mianshiya.com/bank/1787463103423897602]多线程/并发线程的生命周期、synchronize锁升级、volatile的用法与缺点、JMM抽象模型、cas无锁机制、线程池核心参数、如何排查死锁、synchronize与reentryLock的区别、ThreadLocal原理以及内存泄漏风险面试题链接https://www.mianshiya.com/bank/1789249312885223425集合框架ArrayList以及HashMap底层结构、扩容机制与时间复杂度currentHashMap并发实现与线程安全策略HashMap在Java1.7与1.8的实现区别红黑树算法哈希冲突。面试题链接https://www.mianshiya.com/bank/1788408712975282177网络编程nettyBIO|NIO|AIO的区别与应用、NIO三大组件channel、selector、buffer、零拷贝与mmap原理、netty为什么用nio、reatctor模式的单/多线程实现、netty粘包拆包问题。面试题链接https://www.mianshiya.com/tag/Netty这里不记录具体的面试题可以各大网站去刷ddkk、面试鸭、github场景题基本上就是考察基础知识积累以及源码阅读。经典面试题hashmap1.7和1.8的区别currenthashmap1.7和1.8区别版权声明以下内容为CSDN博主「Insist Every Day」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/m0_51769717/article/details/135738022JDK1.7 中hashmap 1、使用entry数组来存数据然后通过hash取模的方法将数据分散存到不同的格子里面这些key会形成一个链表 2、使用头插法 JDK1.8 中hashmap 1、hashmap在数组到达64格链表大于8时会将连别变成红黑树提升效率 2、使用尾插法避免在并发编程的时候出现循环列表问题将头插法改成尾插法 currentHashmap 底层加锁机制: 在JDK1.7中segments数组HashEntry数组链表。一个ConcurrentHashMap中有一个Segments数组一个Segments中存储一个HashEntry数组每个HashEntry是一个链表结构的元素。segment继承自ReentrantLock锁。首先将数据分为一段一段的存储然后给每一段数据配一把锁当一个线程占用锁访问其中一段数据时其他段的数据也能被其他线程访问实现了真正的并发访问。 在JDK1.8中摒弃了Segment而是采用synchronizedCAS红黑树来实现锁的粒度也从段锁缩小为结点锁 put的流程不同 在JDK1.7中要进行两次定位先对Segment进行定位再对内部的数组下标进行定位。定位之后会采用自旋锁锁膨胀的机制进行加锁也就是自旋获取锁当自旋次数超过64时会发生膨胀直接陷入阻塞状态等待唤醒。并且再整个put期间都持有锁 在JDK1.8中只需要一次定位并且采用CASsynchronized的机制。如果对应下标处没有结点说明没有发生哈希冲突此时直接通过CAS进行插入若成功直接返回。若失败则使用synchronized进行加锁插入Java8、11、17、21新特性Java8 1.元空间替代永久代 2.lambda表达式 3.函数式接口FunctionInterface 4.新的日期时间apiLocalDate、LocalTime 5.Stream API 6.CompletableFuture 是Java 8引入的异步编程工具解决了老版Future 的两个痛点:一是get 方法会阻塞线程二是没法 把多个异步任务串起来。 CompletableFuture 支持链式调用可以用 thenApply、thenCompose这些方法把多个异步操作像流水线一样串起来前 一个任务完成自动触发下一个不用手动阻塞等结果。 基本用法是这样的: 1)用supplyAsync提交一个有返回值的异步任务或者runAsync提交一个无返回值的任务 2)用thenApply 对结果做转换thenAccept消费结果thenRun单纯执行后续动作 3)用 exceptionally 或 handle 处理异常 4)用thenCombine合并两个任务的结果用allOf等待多个任务全部完成 Java11 1.标准化HTTP客户端API 2.String类方法增强 3.Files类简化文件读写writingString()/readString() 4.Optional新增isEmpty() java17: 1.Sealed密封类 2.增强的伪随机数生成器 3.强封装JDK内部API java21: 1.Virtual Threads虚拟线程重点可以详细了解一下适配AI 2.Switch模式匹配 3.Record模式 4.分代ZGC未完待续
联合拉泽替尼增效:埃万妥单抗Amivantamab一线治疗EGFR突变肺癌深度缓解率翻倍 在EGFR突变晚期非小细胞肺癌的治疗版图中,2024年美国FDA获批的埃万妥单抗联合拉泽替尼方案,凭借扎实的循证数据改写了一线治疗格局,为患者带来了无化疗的全新选择。这一组合并非两种药物的简单叠加,而是通过机制互补实现了疗效的阶…
卡地亚中国官方售后服务中心|全部地址与24小时客服电话权威信息通告(2026年7月更新) - 卡地亚服务中心 卡地亚中国官方售后服务中心在2026年7月已完成服务体系的全面升级,全国客户可拨打客服热线400-992-3692(服务时间8:00-22:00)获取腕表保养、维修、检测等各项支持。所有售后服务均通过直属渠道开展,覆盖全国范围,…
零基础玩转 bWAPP 靶场(四):HTML 注入(当前 URL 反射) 摘要:本文是 bWAPP 靶场系列的第四篇,聚焦于 HTML Injection - Reflected (Current URL) 漏洞。文章从零基础角度出发,详细讲解什么是 HTML 注入、它与 XSS 的区别与联系、该漏洞的产生原因与危害,然后按照 Low、Medium、High 三个…
老旧设备运行Windows 11与安卓子系统的技术方案 1. 老旧设备运行Windows 11的技术可行性分析在2021年微软发布的Windows 11系统要求中,TPM 2.0芯片和Secure Boot成为硬性门槛,这导致大量2018年前生产的设备被官方判定为"不兼容"。但通过技术手段,这些被排除在外的设备完全能够流畅…
嵌入式DSP开发中的SPI控制DAC实现与优化 1. 实验背景与目标解析 在嵌入式DSP开发中,数模转换(DAC)是实现数字信号处理系统与模拟世界交互的关键接口。本实验基于TL6748-PlusTEB教学实验箱,通过模拟SPI总线控制AD5724芯片实现可编程电压输出。不同于普通GPIO直接驱动&…
DeepAgents长期记忆机制与实战配置指南 1. DeepAgents长期记忆机制解析在AI助手领域,长期记忆能力一直是区分基础对话机器人和专业级智能体的关键特性。DeepAgents通过LangGraph Store实现的长期记忆系统,本质上构建了一个双层存储架构:瞬态存储层:处理当前对话的临时数…
Playwright网络请求拦截与模拟:从原理到实战的完整指南 1. 项目概述:为什么我们需要拦截与模拟网络请求?在自动化测试和网页爬虫的世界里,我们常常会遇到一个核心矛盾:我们想要测试或抓取的目标页面,其行为严重依赖于外部网络请求。比如,一个电商网站的“加入购物…
Miniconda企业级智能体微服务环境搭建实战 1. 项目概述:为什么智能体微服务开发绕不开Miniconda?做智能体开发的朋友,尤其是刚接触企业级微服务架构的,十有八九在第一天就被环境问题卡住——不是Python版本冲突,就是PyTorch和TensorFlow抢同一个CUDA驱动&#x…
年服务超4000人、进面率31%+,江苏粉笔基地班凭什么跑通? - 天涯视角 2026年江苏省考,43.8万人争夺8179个岗位,报录比约53.5:1。在这样一片红海里,江苏粉笔基地班交出了一组数据:笔试进面率超31%,面试上岸率超51%,状元上岸率高达83%。26省考中,基地班140分以上学员超40人,135分以上超100人…
VS Code 高效配置与个性化定制全攻略 1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像 在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…
WinRAR高效配置指南:从基础安装到高级压缩实战 前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…