Java开发面试题 | 2023
Java基础
- 接口和抽象类的区别?
- Java动态代理
- HashMap 底层实现及put元素的具体过程
- currenthashmap底层实现原理?
- map可以放null值吗,currenthashmap为什么不能放null值
- synchronze和reetrantlock区别?
- 怎样停止一个运行中的线程?
- 什么是悲观锁、乐观锁、公平锁、非公平锁
- String、StringBuffer、StringBuilder的区别
- Set是如何保证元素不重复的
- ArrayList与LinkedList哪个更占空间?为什么?
- Java的设计原则?
- 什么是长连接、短连接?
- i++是否是原子操作?
- ThreadLocal用过吗?主要在哪些场景用到了?
- Java 反射?以及优缺点?
- 常用的排序算法有哪些?时间复杂度分别是多少?
多线程
- 线程的生命周期
- JMM内存模型
- 线程池的工作原理、几个重要参数、几个参数是依据什么来进行设置的?
- 怎么实现线程之间的通信?
JVM
- JVM的基本组成,每部分作用是什么?
- jvm几种垃圾收集器
- 常见的GC垃圾回收算法
- JVM怎样判断对象是否存活
- 说说双亲委派机制
- 怎样打破双亲委派机制
- 为什么使用双亲委派机制(双亲委派机制的优势)
- 怎样实现自定义一个类加载器
- 常用的GC参数
设计模式
- 单例模式实现的几种方式?各自有哪些优缺点?
- 策略模式
- 模板方法模式
- 观察者模式
- 装饰器模式
Mybatis
- Mybayis中&与#的区别,底层实现是怎样的
- Mybatis Plus 为什么可以使用this.save直接插入一个实体对象
Spring
- 说一下你对IOC容器的理解?
- 说说Spring的AOP,实现机制是什么、有几种通知类型、Spring AOP底层是怎样实现的?
- Spring 事务失效的场景?
- Spring 的循环依赖是怎么解决的?
- 什么是事务、事务的ACID特性
- 事务的传播类型有哪些?
Spring Boot
- Spring Boot的Run方法
- 自动装配实现原理
- BeanFactory与FactoryBean的区别?
- 自定义Stater实现
Spring Cloud
- 项目启动是怎样把服务注册到nacos上去的?
- 微服务各组件的原理?调用链路?
Mysql
- Mysql 索引底层实现是怎样的?为什么底层使用B+树
- Mysql 常见的索引有哪些?有什么区别?
- Mysql 索引的最左匹配原则
- Mysql 查询索引使用explain 具体的值有哪些
- Mysql 的索引优化
- Mysql 索引失效的条件
- Mysql 的存储引擎
- Mysql的日志
- Mysql事务底层是怎样实现的?
缓存
- 本地缓存与Redis的区别?优缺点有哪些?
- Redis的持久化方式及原理?
- Redis是单线程还是多线程?
- 怎样保证缓存、数据库的双写一致性?
- Redis的缓存穿透、缓存击穿、缓存雪崩的解决办法?
- Redis分布式锁使用场景?
- 项目中哪些地方使用了Redis缓存
消息队列
- kafka的基本结构说一下,他是怎样保持消息顺序的
- kafka和rabbitmq的区别?
- kafka消息丢失怎样解决?如何保证消息的顺序性?
Linux
- 查看内存使用率命令
- 日志文件怎样根据关键字进行查找?
- Linux常用的命令
Maven
- maven 常用命令
- mvn clean package与mvn clean install有什么区别
Git
- 命令merge和git rebase的区别
场景题目
- 订单超时自动关闭如何实现?
- 接口限流怎么做?说一下具体的实现思路?
- 线上SQL你是怎样来进行优化的?
其他
- 线上SQL性能优化过程?
- 针对生产环境问题是怎样排查的?
- 公司整个开发流程是怎样的?
笔试
- Map<String,Integer> map = new HashMap<>(); 根据value进行排序,打印key?
- String、StringBuffer、StringBuilder的区别?
- CPU 100% 怎样定位所在代码行?
- 数据库设计E-R图?
- 写单例、策略、模板设计模式代码示例
- 手写重写equal、hashCode方法
- 手写排序算法
- 什么是缓存穿透、缓存雪崩、缓存击穿以及解决办法?
- 递归算法
- 索引有哪些类型?区别是什么?
- 怎样实现分布式事务?原理是什么?
- 怎样杀死一个运行中的Java项目进程
- 怎样实现分布式事务?原理是什么?

相关文章:
Java开发面试题 | 2023
Java基础 接口和抽象类的区别?Java动态代理HashMap 底层实现及put元素的具体过程currenthashmap底层实现原理?map可以放null值吗,currenthashmap为什么不能放null值synchronze和reetrantlock区别?怎样停止一个运行中的线程&#…...
Java课题笔记~ 自定义拦截器实现权限验证
实现一个权限验证拦截器。 1、修改web.xml文件中请求路径 2、将所有的页面放入WEB-INF目录下 3、开发登录FirstController 4、开发拦截器 5、配置springmvc.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…...
微信小程序使用npm引入三方包详解
目录 1 前言2 微信小程序npm环境搭建2.1 创建package.json文件2.2 修改 project.config.json2.3 修改project.private.config.json配置2.4 构建 npm 包2.5 typescript 支持2.6 安装组件2.7 引入使用组件 1 前言 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或…...
pytest自动化框架运行全局配置文件pytest.ini
还记得在之前的篇章中有讲到Pytest是目前主要流行的自动化框架之一,他有基础的脚本编码规则以及两种运行方式。 pytest的基础编码规则是可以进行修改,这就是今日文章重点。 看到这大家心中是否提出了两个问题:pytest的基础编码规则在哪可以…...
视频播放实现示例Demo
学习链接 vuespringboot文件分片上传与边放边播实现 同步加载、播放视频的实现 ---- range blob mediaSource 通过调试技术,我理清了 b 站视频播放很快的原理 MSE (Media Source Extensions) 上手指南 浅聊音视频的媒体扩展(Media Source Extension…...
makefile的自动化变量
一、是什么? 自动化变量:makefile依据执行的规则自动变化生成的变量 $(@) 规则的目标文件名 $(^) 所有依赖 依赖列表 $(<)第一个依赖文件名 $(*)规则中目标中%部分名 $(?)所有比目标文件更新的依赖文件列表,空格分隔 二、使用步骤 1.引入库 代码如下(示例): make …...
使用Kind搭建本地k8s集群环境
目录 1.前提条件 2.安装Kind 3.使用Kind创建一个K8s集群 3.1.创建一个双节点集群(一个Master节点,一个Worker节点) 3.2.验证一下新创建的集群信息 3.3.删除刚刚新建的集群 4.安装集群客户端 4.1.安装kubectl 4.1.1.验证kubectl 4.2.安…...
【STM32RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)
硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、RT-Thread相关接口函数1. 获取当前运行的线程2. 设置调度器钩子函数 二、程序设计1. 头文件包含及宏定义2. 线程入口函数定义3. main函数设…...
.net日志系统
.NET 平台提供了强大的日志记录系统,用于在应用程序中记录各种事件、错误和调试信息。最常用的日志记录库是 Microsoft.Extensions.Logging,它是一个通用的日志接口和基础框架,可以与多种日志实现集成。以下是如何使用 .NET 日志系统的基本步骤: 安装 NuGet 包:首先,您需…...
SpringCloud学习笔记(二)_Eureka注册中心
一、Eureka简介 Eureka是一项基于REST(代表性状态转移)的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为Eureka Server。Eureka还带有一个基于Java的客户端组件Eureka Clientÿ…...
spark的eventLog日志分析
查找满足指定条件的app_id查询条件: 表名、时间、节点名时间限定: 最好适当放大, 不知道什么原因有点不准eventLog的存放路径: spark.history.fs.logDirectory 1. spark-sql 先限定时间段;数据是逐行读入的, 但 app_id要按整个文件过滤, 按每个条件打标;按app_id粒度聚合, 查…...
探究Java spring中jdk代理和cglib代理!
面对新鲜事物,我们要先了解在去探索事物的本质-默 目录 一.介绍二者代理模式 1.1.Jdk代理模式 1.2cglib代理模式 1.3二者区别 1.3.1有无接口 1.3.2灵活性 1.4对于两种代理模式的总结 1.4.1jdk代理模式 1.4.2cglib代理模式 二.两种代理模式应用场景 2.1jd…...
反转链表(C++)
1、迭代法的一种写法 ListNode* reverse_linkList(ListNode* head){if(head nullptr || head->next nullptr) return head;ListNode* begin nullptr;ListNode* mid head;ListNode* end head->next;while(true){mid->next begin;if(end nullptr){break;}begin …...
适配器模式:让不兼容的接口协同工作
在面向对象设计中,适配器模式是一种常见的结构型设计模式。它允许将不兼容的接口转换成客户端所期望的另一个接口,从而使不同的类协同工作。适配器模式的主要目的是解决不同接口之间的兼容性问题,同时也提高了代码的可重用性和灵活性。 问题…...
【1day】复现Milesight-VPNserver.js 任意文件读取漏洞
目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 Milesight路由器-VPN是由Milesight Technology Co., Ltd.开发的一种集成了VPN功能的路由器产品。它旨在为用户提供安全、可靠的远程访问和连接解决方案。Milesight-VPNserver.js存在任意文件读取…...
前端代码规范
1 husky husky用于绑定git hooks,在指定时机执行想要的命令 {"husky": {"hooks": {"pre-commit": "lint-staged" }} }需要手动修改.husky文件内容: . "$(dirname -- "$0")/_/husky.sh"n…...
Java接入文心一言
文章目录 文心一言应用创建接口对接接口文档代码示例依赖 常量类实体类 结束语 文心一言应用创建 首先需要先申请文心千帆大模型,申请地址:文心一言 (baidu.com),点击加入体验,等通过审核之后就可以进入文心千帆大模型后台进行应…...
信息管理系统三级等保的一些要求
一、前言 在做一些互联网系统或面向互联网的系统时,需要进行备案,需要满足网络信息安全维护规章及有关规章制度要求,才能发布到互联网。所以在做系统的需求分析时,往往需要把信息管理系统三级等保的需求加上,方便开发…...
第六届“蓝帽杯”电子取证模块(初赛)解析+全资源一次性分享
前言:资源一次性分享 手机+电脑+exe+内存四个模块,我自己在网上也找了很久,才把资源找齐全,题目我也整理在这里,方便大家训练。 目录...
《Go 语言第一课》课程学习笔记(九)
常量:Go 在“常量”设计上的创新有哪些? Go 语言在常量方面的创新包括下面这几点: 支持无类型常量;支持隐式自动转型;可用于实现枚举。 常量 Go 语言的常量是一种在源码编译期间被创建的语法元素。这是在说这个元素…...
基于MCP协议构建AI代码安全沙盒:原理、实现与工程实践
1. 项目概述:一个为AI模型安全执行代码的“沙盒”工具最近在折腾AI应用开发,特别是那些能调用外部工具、执行代码的智能体(Agent)时,一个绕不开的核心问题就是:如何让AI安全地运行它生成的代码?…...
AI安全自动化测试:FuzzyAI模糊测试框架实战指南
1. 项目概述:当AI安全遇上自动化“模糊测试” 在大型语言模型(LLM)如ChatGPT、Claude、Gemini等日益普及的今天,我们享受其强大能力的同时,也面临着一个严峻的挑战:如何确保它们的安全与可控?你…...
别再只会用0填充了!Pandas DataFrame.fillna() 的6个高阶用法,数据分析师必看
别再只会用0填充了!Pandas DataFrame.fillna() 的6个高阶用法,数据分析师必看 在数据分析的日常工作中,缺失值处理就像是一道无法回避的数学题。许多刚入行的分析师会条件反射般地输入.fillna(0),这就像用创可贴处理所有伤口——有…...
GPU云服务器选型指南:从核心参数到实际部署的深度解析
在当下人工智能跟高性能计算急剧速度发展状况里,GPU云服务器正沿着从专业领域迈向更为广泛应用场景的路径前行。对于构成企业的开发者、相关技术团队来讲,怎样精准无误理解这一技术方案所具备的本质,并且于实际选型期间做出合乎情理的判断&am…...
开源机器人夹爪OpenClaw Max:从硬件组装到ROS集成的完整开发指南
1. 项目概述与核心价值 最近在机器人抓取领域,一个名为 minakovai/openclaw-max-guide 的项目在社区里引起了不小的讨论。乍一看这个标题,它像是一个关于“OpenClaw Max”的开源指南或教程。但如果你深入挖掘,会发现它远不止于此。这实际上…...
自然语言脚本编程:用humanscript实现意图驱动的自动化
1. 项目概述:当代码遇上自然语言最近在折腾一些自动化脚本时,我总在想,有没有一种方式,能让写脚本这件事变得像写待办事项清单一样简单?比如,我想让电脑“把今天下载的图片都压缩一下,然后传到网…...
知识付费浪潮下的技术学习:是捷径,还是新的信息茧房?
当“知识”成为一种商品打开手机,各类技术公众号、知识星球、极客时间专栏、慕课网实战课、B站充电视频……铺天盖地的“测试开发进阶”“性能测试大师班”“自动化测试框架实战”正以9.9元、199元、3999元的价格被明码标价。作为一名软件测试工程师,我们…...
FinFET与FD-SOI工艺下的IC可靠性验证关键技术
1. 集成电路可靠性验证的挑战与演进在28nm工艺节点之前,芯片设计工程师面临的选择相对简单——只需沿着摩尔定律的轨迹向下一个工艺节点迁移。但随着FinFET和FD-SOI等新型晶体管结构的出现,以及台积电、三星等代工厂推出的多样化工艺节点选项,…...
CSS 视图过渡完全指南
CSS 视图过渡完全指南 引言 CSS 视图过渡(View Transitions)是一个强大的新特性,它允许开发者创建平滑的页面过渡动画。本文将深入探讨视图过渡的各种用法和高级技巧。 基础概念回顾 什么是视图过渡 视图过渡 API 允许你在 DOM 状态变化时创建…...
3步在Windows上安装APK应用:告别安卓模拟器的轻量级解决方案
3步在Windows上安装APK应用:告别安卓模拟器的轻量级解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行Android应用却不想安…...
