当前位置: 首页 > news >正文

java面试笔记(一)

1. 一万个string类型的数据,设计一个算法如何按照String长度来排序

以使用 Arrays.sort() 方法,并结合一个自定义的比较器。以下是实现的示例代码:

public class StringLengthSort {public static void main(String[] args) {// 定义一万个字符串的示例数组String[] strings = {"example", "test", "longerexample", "short", "medium"// 这里可以添加更多字符串以达到一万个};// 使用 Arrays.sort 方法按照字符串长度排序Arrays.sort(strings, Comparator.comparingInt(String::length));// 输出排序后的结果for (String s : strings) {System.out.println(s);}}
}
2.在 Spring Boot 中,如果你有一个包含一万条数据的 List,并且在一个接口中调用 list.remove(0),当有 100 多个线程同时请求这个接口时,会发生以下情况:
可能发生的问题
  1. 线程安全问题

    • ArrayList 和 LinkedList 等常见的 List 实现不是线程安全的。多个线程同时调用 remove(0) 可能导致数据竞争(data race),从而引发 ConcurrentModificationException 或者导致数据不一致。
  2. 数据不一致

    • 如果多个线程同时尝试移除第一个元素,某些线程可能会看到不一致的状态,导致它们移除错误的元素或抛出异常。
  3. 性能问题

    • 频繁的 remove(0) 操作会导致数组的重排,性能开销较大。在高并发的情况下,这种性能损失会更加明显。
解决方案

为了解决上述问题,可以考虑以下几种方案:

1. 使用线程安全的集合:使用 CopyOnWriteArrayList 或 Collections.synchronizedList(new ArrayList<>()) 来保证线程安全。

List<String> list = Collections.synchronizedList(new ArrayList<>());

2. 使用锁在访问和修改 List 的地方使用显式的锁(如 ReentrantLock)来确保同一时间只有一个线程可以执行该操作。

private final Lock lock = new ReentrantLock();public void removeFirst() {lock.lock();try {if (!list.isEmpty()) {list.remove(0);}} finally {lock.unlock();}
}

3. 使用并发集合

  • 如果你的操作是复杂的,可以考虑使用 ConcurrentLinkedQueue 或其他并发集合,这些集合设计用于高并发场景。
假如使用redis存储改结果

因为redis是单线程多路复用的可以解决多线程并发问题,但是也会出现其他的问题。如list数据量过大会导致redis大key问题,严重影响redis性能。

3. 现在有两个表A,B他们的字段一模一样,A中有少量数据,B中有大量数据;现在需要将A,B数据全部查出来,去掉id相同的数据。

可以使用以下 SQL 查询来获取去重后的结果:

SELECT id, name FROM A
UNION
SELECT id, name FROM B
WHERE id NOT IN (SELECT id FROM A);
  1. UNION:

    • UNION 操作符用于合并两个 SELECT 语句的结果集,并自动去除重复记录。
  2. NOT IN:

    • 在第二个 SELECT 语句中,使用 WHERE id NOT IN (SELECT id FROM A) 来排除表 A 中已经存在的 ID,从而确保结果集中不会有重复的 ID。
4. linux命令如何去查找文档里的某个字符并忽略大小写
grep -i '字符' 文件名
5. Linux如何按照日期去分割日志文件并按照每个日期的分别存储,然后zip打包到其他服务器

详细步骤

  1. 分割日志文件

    • 确保日志文件的日期格式一致。
    • 使用 awk 命令按日期分割。
  2. 打包

    • 使用 zip 命令将所有生成的日志文件打包为 logs.zip
  3. 传输

    • 使用 scp 命令将打包文件发送到目标服务器。

示例

假设你的日志文件名为 access.log,可以按以下步骤执行:

# 按日期分割
awk '{ date = substr($1, 1, 10); print >> date".log" }' access.log# 打包
zip logs.zip *.log# 传输
scp logs.zip user@remote_server:/path/to/destination/

相关文章:

java面试笔记(一)

1. 一万个string类型的数据&#xff0c;设计一个算法如何按照String长度来排序 以使用 Arrays.sort() 方法&#xff0c;并结合一个自定义的比较器。以下是实现的示例代码: public class StringLengthSort {public static void main(String[] args) {// 定义一万个字符串的示例…...

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。pri…...

Qt5开发入门指南:从零开始掌握跨平台开发

目录 Qt框架概述 开发环境搭建 基础语法与核心机制 第一个Qt窗口程序 常见问题解答 一、Qt框架概述 1.1 什么是Qt&#xff1f; Qt是一个1995年由挪威Trolltech公司开发的跨平台C图形用户界面应用程序框架。最新Qt5版本主要包含&#xff1a; GUI模块&#xff1a;支持Wind…...

Rook-ceph(1.92最新版)

安装前准备 #确认安装lvm2 yum install lvm2 -y #启用rbd模块 modprobe rbd cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules do[ -x \$file ] && \$file done EOF cat > /etc/sysconfig/modules/rbd.modules &l…...

深度学习在蛋白质-蛋白质相互作用(PPI)领域的研究进展(2022-2025)

一、蛋白质-蛋白质相互作用(PPI)的定义与生物学意义 蛋白质-蛋白质相互作用(Protein-Protein Interaction, PPI)是指两个或多个蛋白质通过物理结合形成复合物,进而调控细胞信号传导、代谢、免疫应答等生命活动的过程。PPI是生物体内复杂功能网络的核心,例如酶与底物的结…...

网络安全学习架构 网络安全架构内容

网上买的《信息安全原理及应用》的书还没到&#xff0c;就找了一本《密码编码学与网络安全》的电子书&#xff0c;写的也不错&#xff0c;计划今天和明天把第一章绪论和第二章的数论给看完 1. 计算机网络安全概念 计算机安全的三个核心是&#xff1a;完整性&#xff08;只要特…...

硕成C语言24

不管风吹浪打&#xff0c;胜似闲庭信步&#xff01; 1.选择排序&#xff1a; 不管风吹浪打&#xff0c;胜似闲庭信步&#xff01;1.选择排序&#xff1a; // 这个宏定义用于忽略 Visual Studio 中一些安全相关的警告&#xff0c;使得可以使用像 scanf 这样的函数而不产生警告…...

《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例

第一章&#xff1a;模型加载与基础生成 1.1 基础模型加载 from diffusers import StableDiffusionPipeline import torch# 加载SD 1.5基础模型&#xff08;FP32精度&#xff09; pipe StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",…...

Linux下为Intel核显安装OpenCL

实验环境 CPU&#xff1a;N5105运行内存&#xff1a;32G系统&#xff1a;almalinux 8 &#xff08;类似CentOS系统&#xff09; 安装过程 检查i915驱动 输入命令dmesg | grep i915查看驱动的加载信息。 我这里没接显示器&#xff0c;输出正确的驱动加载信息如下图所示&…...

用deepseek学大模型04-机器学习建模过程

https://metaso.cn/s/7tEmBHr 目前已经学完深度学习的数学基础&#xff0c;给出机器学习建模的基本过程 好的&#xff0c;我现在需要回答用户的问题&#xff1a;已经学完深度学习的数学基础&#xff0c;现在要给出机器学习建模的基本过程。我需要结合我搜索到的资料来构建一个详…...

【ClickHouse】Ubuntu下离线安装ClickHouse数据库并使用DBeaver连接

目录 0. 安装前准备1 安装ClickHouse1.1 下载安装包1.2 离线安装1.3 配置密码1.4 启动ClickHouse服务 2 DBeaver连接配置2.1 下载ClickHouse驱动2.2 DBeaver配置2.2.1 配置主要参数2.2.2 配置驱动 2.3 常见问题处理2.3.1 修改远程登录配置2.3.2 更新驱动配置 0. 安装前准备 有…...

Unity3D实现接入DeepSeek对话

系列文章目录 unity知识点 文章目录 系列文章目录👉前言👉一、使用第一步👉1-1、登录注册DeepSeek👉1-2、创建API-key👉二、使用第二步👉三、使用第三步👉壁纸分享👉总结👉前言 随着人工智能和机器学习技术的不断进步,DeepSeek的未来发展趋势充满了无限可能…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析②】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase02 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-002测试用例 用例ID测试场景验证要点参考条款预期…...

前端新手必看:10 大 UI 组件库全面解析,快速搭建高质量 Web 应用」 「从零开始:Vue 和 React 最受欢迎的 UI 组件库入门指南」 「超实用!PC 端和移动端 UI 组件库推荐与实战

前端新手必看&#xff1a;10 大 UI 组件库全面解析&#xff0c;快速搭建高质量 Web 应用 目录 什么是 UI 组件库&#xff1f;为什么需要 UI 组件库&#xff1f;PC 端 UI 组件库推荐 Ant DesignElement UIVuetifyBootstrapVueiView (View UI)Quasar FrameworkMaterial-UI (MUI…...

【MySQL高级】17 - MySQL中常用工具

1. mysql 该mysql不是指mysql服务&#xff0c;而是指mysql的客户端工具。语法&#xff1a; mysql [options] [database]1.1 连接选项 参数 &#xff1a; -u, --username 指定用户名-p, --password[name] 指定密码-h, --hostname 指定服务器IP或域名-P, --por…...

【Linux】Linux 文件系统——有关 inode 不足的案例

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天周二了&#xff0c;明天星期三&#xff0c;还有三天就是星期五了&#xff0c;坚持住啊各位&#xff01;&#xff01;&#xff01;&#x1f606; 本文是对之前Linux文件权限中的inode号进行实例讨论&#xff0c;看到博客有错误…...

计算机视觉:卷积神经网络(CNN)基本概念(二)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…...

【第7章:注意力机制与Transformer模型—7.4 NLP领域的BERT、GPT系列模型】

当你在2017年第一次听说Transformer时,可能不会想到这个模型会在短短三年内彻底改变NLP领域。想象一下,原本需要数周训练的翻译模型,现在用Transformer架构几天就能达到更好的效果;那些让程序员们头疼的梯度消失问题,突然变得不再重要。这一切的魔法钥匙,都藏在一个叫做&…...

[代码调试]安装Text2Image(stable diffusion)模型环境的踩坑记录

文章目录 一、xFormers版本问题1、先确认下自己torch版本所对应的cuda版本2.安装对应版本(1) 到对应官网下载包本地安装(2)代码安装 二、attn_mask尺寸错误三、diffusers四、Huggingface 配置基于stable diffusion预训练模型的环境&#xff0c;记录踩坑记录 一、xFormers版本问…...

大数据SQL调优专题——Flink执行原理

引入 上一篇我们了解了Spark&#xff0c;相比起MapReduce来说&#xff0c;它确实已经快了超级多了&#xff0c;但是人类的欲望是没有止境的&#xff0c;这也是推动人类进步的动力。 Flink就是为了满足实时响应的场景需求诞生的。 其实在Flink之前&#xff0c;实时处理其实已…...

2026届最火的六大降重复率工具实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 能免费使用的AI论文生成技术&#xff0c;正一点点改变学术写作原本的传统范式。当下&#xf…...

月饼机排名:企业选购选型关键策略深度解析

月饼机排名与企业选购选型全攻略&#xff1a;高频疑问解答&#xff0c;选对设备少走弯路"月饼机排名≠选购唯一标准&#xff0c;企业选型更需结合生产需求与设备适配性" 很多企业在选购月饼机时&#xff0c;容易陷入排名误区&#xff0c;忽略实际生产场景的匹配&…...

Pyfa:EVE Online玩家的终极舰船配置解决方案,3分钟掌握专业配船技巧

Pyfa&#xff1a;EVE Online玩家的终极舰船配置解决方案&#xff0c;3分钟掌握专业配船技巧 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 在EVE Online这个浩瀚的宇…...

UE5多人游戏开发避坑指南:从零配置Steam联机插件到打包测试(含SDK问题解决)

UE5多人游戏开发实战&#xff1a;Steam联机插件配置与疑难解析 第一次打开虚幻引擎5的多人游戏模板时&#xff0c;那种跃跃欲试的兴奋感很快会被各种配置问题浇灭。我清楚地记得自己第一次尝试配置Steam联机插件时&#xff0c;花了整整三天时间才让两个客户端成功建立连接。本文…...

AI对话生成PPT:基于LLM与python-pptx的自动化方案解析

1. 项目概述&#xff1a;当PPT制作遇上AI对话如果你和我一样&#xff0c;经常需要制作各种汇报、方案或者教学用的PPT&#xff0c;那你一定对“找模板、调格式、写文案、配图表”这个循环往复的过程感到疲惫。传统的PPT制作工具&#xff0c;无论是PowerPoint还是Keynote&#x…...

终极指南:3分钟上手libdxfrw,轻松读写DXF/DWG文件

终极指南&#xff1a;3分钟上手libdxfrw&#xff0c;轻松读写DXF/DWG文件 【免费下载链接】libdxfrw C library to read and write DXF/DWG files 项目地址: https://gitcode.com/gh_mirrors/li/libdxfrw 你是否曾为处理CAD文件而头疼&#xff1f;想要在自己的C应用中读…...

Vue3 + Vite项目里,用el-amap插件快速集成高德地图(保姆级避坑指南)

Vue3 Vite项目中优雅集成高德地图&#xff1a;el-amap全流程实战指南 最近在重构公司旧项目时&#xff0c;发现很多团队还在用Vue2 Webpack那套老方法集成地图功能。当我尝试在Vite构建的Vue3项目中复用时&#xff0c;各种报错接踵而至——全局变量未定义、插件加载异常、样…...

当伺服电机遇上PWM整流:在Simulink里搭建一个带能量回馈的“绿色”驱动系统

伺服驱动系统的绿色革命&#xff1a;基于PWM整流的能量回馈技术全解析 在工业自动化领域&#xff0c;伺服系统作为精密控制的核心部件&#xff0c;其能耗问题日益受到关注。传统伺服驱动采用二极管整流方案&#xff0c;虽然结构简单&#xff0c;但存在功率因数低、谐波污染严重…...

终极Turborepo错误恢复指南:7个简单步骤让构建失败自动修复

终极Turborepo错误恢复指南&#xff1a;7个简单步骤让构建失败自动修复 【免费下载链接】turbo Build system optimized for JavaScript and TypeScript, written in Rust 项目地址: https://gitcode.com/gh_mirrors/tu/turbo Turborepo作为一款用Rust编写的JavaScript和…...

别再乱买线了!一文看懂手机OTG连接U盘、键盘的正确姿势(附Type-C/Micro接口区别)

手机OTG连接全攻略&#xff1a;从U盘到键盘的智能玩法解析 每次看到抽屉里那堆形状各异的USB线材就头疼&#xff1f;明明都是"OTG线"&#xff0c;为什么有的能连U盘却识别不了键盘&#xff1f;上周帮同事调试手机外接设备时&#xff0c;发现她买了三条不同接口的OTG线…...