Java 还能不能继续搞了?

金三银四招聘季已落幕,虽说行情不是很乐观,但真正的强者从不抱怨。
在此期间,我收到众多小伙伴的宝贵反馈,整理出132道面试题,从基础到高级,有八股文,也有对某个知识点的深度解析。包括以下几部分:
- Java:基础、线程、并发编程、 网络编程、JVM。
- 框架:Spring Boot、Spring Cloud。
- 数据库:Redis、MySQL。
- 架构:系统设计、技术选型、分布式理论等。
准备好迎接金九银十吧!!!
Java 基础
以下面试题可以移步至:
《Java基础面试题》
- Java 创建对象有几种方式?
- 有了数组为什么还要ArrayList?
- 重载和重写的区别
- 什么是内部类?应用在什么场景?
- 介绍下Java中的四种引用
- static都有哪些用法?
- HashCode在集合中的作用
- Hash冲突怎么处理?
- 深拷贝和浅拷贝的区别是什么?
- 你知道什么是fail-fast吗?
- 介绍下你对红黑树的理解
- 异常处理影响性能吗?
- 介绍下try-with-resource语法
- 你知道哪些数据结构?
- AVL树是怎么保持平衡性的?
- 为什么红黑树比AVL树效率高?
Java 线程
以下面试题可以移步至:
《Java线程面试题》
《Java线程安全面试题》
- 创建线程有几种方法?
- 介绍下线程的生命周期?
- 如何停止正在运行的线程?
- 什么是线程安全?
- 线程安全需要保证几个基本特性?
- 为什么wait和notify方法要在同步块中调用?
- Synchronized和Lock的区别?
- 常用的线程池有哪些?
- 为什么需要线程池?
- 简述一下线程池的工作原理
- 线程池的拒绝策略有哪些?
- 说说ThreadLocal的原理?
- 如何保证线程安全?
- 为什么需要确保共享变量的可见性?
- volatile是如何保证可见性、有序性?
- 谈一下 CAS 机制实现原理?
- CAS 机制存在什么问题?
- 简述一下synchronized工作原理?
- 简述一下synchronized锁升级的过程?
- 什么是锁粗化和锁消除?
- 为什么 HashMap 是线程不安全的?
Java 并发编程
以下面试题可以移步至:
《Java并发编程面试题》
- AQS是什么?
- AQS唤醒节点时,为什么是从后往前找?
- AQS为什么用双向链表?
- AQS为什么要有一个虚拟的head节点?
- ReentrantLock 的底层实现
- ReentrantLock的公平锁和非公平锁的区别
- ReentrantReadWriteLock如何实现读写锁?
- CountDownLatch,Semaphore有什么用?
- 你知道哪些常用的阻塞队列?
- 阻塞队列中的虚假唤醒是什么?
Java 网络编程
- 什么是网络编程?
- 什么是BIO、NIO、IO多路复用?
- Java NIO是New IO还是Non-blocking IO?
- 聊一下你对Netty的认识?
- Netty和Java NIO是什么关系?
- Netty为什么那么高效?
Spring Boot
以下面试题可以移步至:
《Spring Boot面试题 》
- 什么是 Spring Boot?
- Spring Boot 有哪些核心注解?
- Spring Boot 自动装配是什么?
- Spring Boot 自动装配原理?
- Spring Boot 配置文件的加载顺序
- bootstrap.properties 和 application.properties 有何区别 ?
- Spring Boot Actuator是什么?
- Spring Boot项目如何热部署?
- Spring Boot 中的 starter 是什么 ?
- Spring Boot 有哪些 starter ?
Spring Cloud
以下面试题可以移步至:
《Spring Cloud 面试题》
- Nacos是CP还是AP?
- 注册中心应该选择CP还是AP?
- Nacos注册中心工作机制是怎样的?
- Eureka注册中心工作机制是怎样的?
- Eureka自我保护机制原理是什么?
- Eureka和Nacos区别
- Nacos配置中心长轮询机制是什么?
- Nacos配置中心为什么不选择主动推送而是采用长轮询机制?
- Nacos配置中心宕机了,会影响服务吗?
- 为什么Feign第一次调用耗时很长?
- 使用Feign如何实现认证的传递?
- Seata中xid如何通过Feign进行全局传递?
- Feign底层默认使用什么发送HTTP,有什么问题?
- Seata支持那些事务模式?
- Gateway和Zuul的区别?
JVM
以下面试题可以移步至:
《JVM 面试题》
- 谈一下你对JVM的理解?
- JVM 为什么可以实现跨平台?
- JAVA内存模型和JVM内存模型有啥关系?
- JDK,JRE以及JVM的关系
- JDK编译器是怎么工作的?
- 类加载机制是什么?
- 有哪些类加载器?
- 什么是双亲委派机制?
- 介绍一下JVM内存区域划分
- 堆为什么进行分代设计?
- 什么是内存的担保机制?
- 为什么Eden:S0:S1 比例是8:1:1?
- 描述一下对象内存分配过程
- 如何判断对象已死?
- 讲一讲内存模型?
- 常用的垃圾回收算法有哪些?
- 常用的垃圾收集器有哪些?
- 常用的JVM调优参数有哪些?
Redis
以下面试题可以移步至:
《Redis 面试题》
- 为什么要使用Redis做缓存?
- 为什么Redis单线程模型效率也能那么高?
- Redis常见数据结构以及使用场景?
- Redis的数据结构是如何组织的?
- pipeline有什么好处,为什么要用 pipeline?
- Redis官方为什么不提供 Windows版本?
- Redis 持久化方式有哪些?有什么区别?
- 什么是Redis事务?原理是什么?
- Redis6.0为什么要引入多线程?
- 如何在100个亿URL中快速判断某URL是否存在?
- 什么是渐进式rehash?
- Redis有哪些的过期策略?
- Redis有哪些的淘汰策略?
- 什么是BigKey?
- 什么是缓存击穿、缓存穿透、缓存雪崩?
MySQL
- MySQL索引在什么情况下会失效?为什么?
- 描述一下一条SQL的执行流程?
- 执行器调用存储引擎后,InnoDB做了什么事?
- MySQL是如何保证数据不丢失的?
- MySQL是如何保证数据一致性的?
- MySQL数据被误删怎么办?
- 描述一下MySQL的主从复制流程。
- 分库分表有什么好的方案?
- 谈一下对MySQL事务隔离的认识?
- MySQL是怎么处理并发事务的?
- 什么是异构索引表,在分库分表场景下如何应用?
架构
- 如何在海量数据中快速检测某个数据?
- 消息中间件如何选型?
- 如何避免RabbitMQ消息丢失?
- 什么情况下可以用微服务架构?
- 高并发的系统都是怎么设计出来的?
- 什么是限流?你知道哪些限流算法?
- 如何理解分布式系统下的CAP理论?
- BASE理论又是什么?
- 你知道哪些分布式一致性算法?
- 如何保证分布式系统中ID的唯一性?
相关文章:
Java 还能不能继续搞了?
金三银四招聘季已落幕,虽说行情不是很乐观,但真正的强者从不抱怨。 在此期间,我收到众多小伙伴的宝贵反馈,整理出132道面试题,从基础到高级,有八股文,也有对某个知识点的深度解析。包括以下几部…...
【日记】遇到了一个很奇怪的大爷(845 字)
正文 花了昨天和今天两天时间,把数据转移完了。这块 2T 的硬盘可以光荣退休了。目前是没什么存储焦虑了。 农发行净开发一些垃圾系统。今天没什么业务,但跟 ActiveX 斗智斗勇了一整天,最后实在搞不过 IE 浏览器。我也懒得管了,又不…...
Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明
Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 目录 Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 一、简单介绍 二、处理文本数据 三、用…...
GAT1399协议分析(10)--视频定义及解析
一、官方定义 二、字段解析 VideoID 类型BasicObjectID 解析参考GAT1399协议分析(8)--ImageInfo字段详解-CSDN博客 InfoKind 采集类型...
【C语言】学生管理系统:完整模拟与实现
🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 🔥引言 本篇文章为修改了在校期间实训报告,使用C…...
pypi 发布自己的包
注册pypi个人用户 网址:https://pypi.org 目录结构dingtalk_utils 必须-pkgs- __init__.py .gitignore LICENSE 必须 README.md 必须 requirements.txt setup.py 必须安装依赖 pip install setuptools wheel安装上传工具 pip install twinesetup.py i…...
关闭windows11磁盘地址栏上的历史记录
关闭windows11的磁盘地址栏上的历史记录 windows11打开磁盘后访问某一个磁盘路径后会记录这个磁盘路径,而且有时候会卡住这个地址栏(关都关不掉),非常麻烦。 如下图所示: 关闭地址栏历史记录 按下windows键打开开…...
DDS自动化测试落地方案 | 怿星科技携最新技术亮相是德科技年度盛会
5月28日,怿星科技作为是德科技的重要合作伙伴亮相Keysight World Tech Day 2024。在此次科技盛会上,怿星科技不仅展示了领先的DDS自动化测试解决方案等前沿技术,还分享了在“周期短、任务重”的情况下,如何做好软件开发和测试验证…...
新品!和芯星通全系统全频高精度板卡UB9A0首发
6月6日,和芯星通发布了UB9A0全系统全频高精度GNSS板卡,主要应用于CORS站、便携基站、GNSS全球监测跟踪站等。延续了上一代产品高质量原始观测量的特点,UB9A0在性能和稳定性方面均表现出众。 UB9A0基于射频基带及高精度算法一体化的GNSS SoC芯…...
Cognita RAG:模块化、易用与可扩展的开源框架
Cognita RAG是一个开源框架,它通过模块化设计、用户友好的界面和可扩展性,简化了将领域特定知识整合到通用预训练语言模型中的过程。本文介绍了Cognita的特点、优势、应用场景以及如何帮助开发者构建适合生产环境的RAG应用程序。 文章目录 Cognita RAG介…...
linux虚拟机免密登录配置
1、假设A服务器要免密登录B服务器 2、在A服务器上执行命令: cd /root/.ssh/ ssh-keygen -t rsa #这里会生成两个文件 一个是id_rsa私钥和公钥rsa.pub2、我们把公钥的内容复制粘贴到B服务器的/root/.ssh/authorized_keys文件下 #在A服务器上执行命令记录内容 cat …...
Qt_C++ RFID网络读卡器Socket Udp通讯示例源码
本示例使用的设备: WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QHostInfo> #include <QNetworkInterface> #include <…...
C++ 实现Python 列表list 的两种方法
1、vector里面放多种参数。在C中,如果你想要在std::vector中存储不同类型的参数,你可以使用std::any(C17及以上)或std::variant(C17以前的版本需要使用Boost库或者C17及以上标准)。以下是使用std::vector&l…...
vue3+ elementPlus PC端开发 遇到页面已进入就form校验了的问题
form表单一进页面就校验了 rules里配置的 require 提示语 如图所示代码是这样的 最后发现是form表单下面的一个按钮的展示规则 会导致规则校验 canAddInsured 这个字段的变化会导致form表单校验 这个字段是computed maxInsureds 也是个computed监听 maxInsured.value >1 就…...
transformers DataCollator介绍
本博客主要介绍 transformers DataCollator的使用 from transformers import AutoTokenizer, AutoModel, \DataCollatorForSeq2Seq, DataCollatorWithPadding, \DataCollatorForTokenClassification, DefaultDataCollator, DataCollatorForLanguageModelingPRETRAIN_MODEL &qu…...
rust学习(字节数组转string)
最新在写数据传输相关的操作,发现string一个有趣的现象,代码如下: fn main() {let mut data:[u8;32] [0;32];data[0] a as u8;let my_str1 String::from_utf8_lossy(&data);let my_str my_str1.trim();println!("my_str len is…...
Docker:技术架构演进
文章目录 基本概念架构演进单机架构应用数据分离架构应用服务集群架构读写分离/主从分离架构冷热分离架构垂直分库微服务容器编排架构 本篇开始进行对于Docker的学习,Docker是一个陌生的词汇,那么本篇开始就先从技术架构的角度出发,先对于技术…...
汽车MCU虚拟化--对中断虚拟化的思考(2)
目录 1.引入 2.TC4xx如何实现中断虚拟化 3.小结 1.引入 其实不管内核怎么变,针对中断虚拟化无非就是上面两种,要么透传给VM,要么由Hypervisor统一分发。汽车MCU虚拟化--对中断虚拟化的思考(1)-CSDN博客 那么,作为车规MCU龙头…...
python的继承
本章正式开始之前,先让我们回顾一下什么是 对象 ? 什么是 类 ? 小贝 喜欢 猫咪,今年领养了一只名叫 Kitty 的 布偶猫。则下列哪项是 对象 呢? A. 猫咪 B. Kitty C. 布偶猫 相比之下,闻闻 更喜欢 犬科 动…...
组件的注册和引用
在Vue中,开发者可以将页面中独立的、可重用的部分封装成组件,对组件的结构,样式和行为进行设置。组件是 Vue 的基本结构单元,组件之间可以相互引用。 一.注册组件 当在Vue项目中定义了一个新的组件后,要想在其他组件中…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
