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

【面试宝典】准备面试了~集合

1、ArrayList和linkedList的区别

它们都是继承自 Collection。

ArrayList 是基于数组的,在使用查询的时候效率比较高,但删除效率却非常低,因为它需要重新排数组中的所有数据。

LinkList底层是一个双链表,在添加和删除元素时更好的性能,但查询效率却非常低。

2、try catch finally,try里有return,finally还执行么?

首先,不管有没有异常,finally模块肯定会执行的,哪怕 try 里有 return,也是一样。

还有就是,finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

3、能简单的介绍下多路复用 IO 模型吗

多路复用 IO 模型其实就是NIO,在这个模型中,它会有一个线程,不断的去轮询socket的状态,如果socket发生真正的读写事件时,才会真正的调用实际上的读写操作。

它的优势就在于,在该模型下,只需要一个线程,就可以管理多个socket的状态。系统不需要再额外建立,或者去管理多个线程,极度节省了系统线程资源。

成于轮询,败于轮询,它是对到达的事件,进行逐一响应,所以一旦如果事件响应体较大,就会导致后续的事件迟迟得不到响应,会影响功能上的进度。

4、MQ如何避免消息重复投递或重复消费?

首先在消息生产的时候,在MQ的内部,会针对生产者生产的消息生成一个唯一ID,作为去重条件,可以避免消息重复进入队列里。

然后在消费时,必须要求消息体中有一个消费ID,作为消息消费的去重依据,防止同一条消息重复消费。

5、消息队列满了以后该怎么处理?

首先消息队列的延时或者过期失效,会导致消息不断积压。

首先肯定需要临时紧急扩容,然后再恢复consumer的问题,先确保恢复消费者的消费速度,然后再将现有的consumer都停掉。

第二步,新建一个topic,partition,queue数量,大小是原先的10倍。然后再手写一个临时分发数据的consumer消费者程序,部署到项目中去,代替停掉的消费者程序。

接着再征用10倍的机器来部署consuemr消费者程序,这种做法就是临时将消费者扩大了10倍,以之前正常速度的10倍来消耗。

6、如何停止一个正在运行的线程?

大家首先想到的肯定是调用 stop 方法强制终止。但是不推荐这个方法,因为这个方法在API里是过期作废的方法。

那么除了stop还可以使用退出标志,使线程run方法完成后,正常退出。

还可以使用interrupt方法中断线程。

class InterruptThreadDemo3 {
public static void main(String[] args) throws InterruptedException {MyThread m1 = new MyThread();System.out.println("Starting thread...");m1.start();Thread.sleep(3000);System.out.println("Interrupt thread...: " + m1.getName());m1.stop = true; // 设置共享变量为truem1.interrupt(); // 阻塞时退出阻塞状态Thread.sleep(3000); // 主线程休眠3秒以便观察线程m1的中断情况 System.out.println("Stopping application...");} 
}

7、sleep()和wait() 有什么区别?

  • sleep()方法属于Thread类中的方法,而wait()方法属于Object类方法。
  • sleep()方法不会释放对象的锁,它只是暂时让出CPU资源,给其他线程,时间到了,会自动恢复运行。
  • wait()方法,会释放对象的锁,会重新进入到对象等待池中,重新竞争锁资源,需要使用notify才能唤醒。

相关文章:

【面试宝典】准备面试了~集合

1、ArrayList和linkedList的区别 它们都是继承自 Collection。 ArrayList 是基于数组的,在使用查询的时候效率比较高,但删除效率却非常低,因为它需要重新排数组中的所有数据。 LinkList底层是一个双链表,在添加和删除元素时更好…...

华为OD机试真题Python实现【GPU 调度】真题+解题思路+代码(20222023)

GPU 调度 题目 为了充分发挥 GPU 算力, 需要尽可能多的将任务交给 GPU 执行, 现在有一个任务数组, 数组元素表示在这1s内新增的任务个数, 且每秒都有新增任务, 假设 GPU 最多一次执行n个任务, 一次执行耗时1s, 在保证 GPU 不空闲的情况下,最少需要多长时间执行完成。…...

gcc编译C源程序

一、安装 在Linux下,一般使用gcc或arm-linux-gcc交叉编译器来编译程序。在Ubuntu环境下,我们可以使用以下apt-get命令来安装这些编译程序。 apt-get install gcc apt-get install gcc-arm-linux-gnueabi 安装完毕后,使用以下命令查看编译器…...

Tina_Linux_各平台多媒体格式_支持列表_new

Tina Linux 各平台多媒体格式支持列表 1 概述 1.1 编写目的 本文档将介绍Allwinner Tina Linux 系统各个芯片平台支持的多媒体格式,旨在帮助软件开发工程师、技术支持工程师查找各芯片平台支持哪些多媒体格式。 1.2 适用范围 Tina Linux v3.5 及以上版本。 1.…...

归并排序及其应用

归并排序算法基于分而治之的概念,具体来说就是遍历一棵树,归并的过程是一个后序执行的动作。 由于我们知道每个子部分在合并后都是有序的,我们可以利用这个特性来解决一些问题。 上图可视化了merge sort algorithm的过程,我们很容…...

【PAT甲级题解记录】1007 Maximum Subsequence Sum (25 分)

【PAT甲级题解记录】1007 Maximum Subsequence Sum (25 分) 前言 Problem:1007 Maximum Subsequence Sum (25 分) Tags:DP Difficulty:剧情模式 想流点汗 想流点血 死而无憾 Address:1007 Maximum Subsequence Sum (25 分) 问题描…...

华为OD机试真题Python实现【 最小叶子节点】真题+解题思路+代码(20222023)

最小叶子节点 题目 二叉树也可以用数组来存储, 给定一个数组,树的根节点的值储存在下标1, 对于储存在下标n的节点,他的左子节点和右子节点分别储存在下标2*n和2*n+1, 并且我们用-1代表一个节点为空, 给定一个数组存储的二叉树, 试求从根节点到最小的叶子节点的路径, …...

mars3d动态轨迹DynamicRoamLine,如何获取实时运⾏的经纬度

问题 1.期望 实现 实时显示经纬度、⾼度,做电⼦围栏报警判断 2.第⼀步就是要,获取实时运⾏的经纬度信息、⾼度信息,然后通过算法做电⼦围栏判断 3.使⽤了参数getOverPositions,发现返回的不是经纬度 相关链接 http://mars3d.cn//e…...

jvm常识

Jvm工作原理学习笔记0126一、JVM的生命周期1.JVM实例对应了一个独立运行的java程序它是进程级别a)启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b)运行。ma…...

PHP部署、nginx与PHP的整合、PHP动态添加模块

文章目录前言一、基本知识1.php介绍2.PHP能做什么3.web工作原理4.PHP脚本主要用于领域5.php其他相关信息6.memcache介绍二、php的源码安装1.php安装2.php配置三、nginx与php整合四、php动态扩展模块(memcache模块)前言 一、基本知识 1.php介绍 官方下载…...

SpringCloud与SpringBoot的版本对应

一、SpringCloud与SpringBoot的版本对应 SpringCloud版本 SpringBoot版本 2021.0.1-SNAPSHOT Spring Boot >2.6.4-SNAPSHOT and <2.7.0-M1 2021.0.0 Spring Boot >2.6.1 and <2.6.4-SNAPSHOT 2021.0.0-RC1 Spring Boot >2.6.0-RC1 and <2.6.1 2021.0.0-M3 Sp…...

华为OD机试题,用 Java 解【N 进制减法】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...

Linux->进程概念于基本创建

1. 进程基本概念 当一个可执行程序被加载到内存当中&#xff0c;并由操作系统将其管理起来&#xff0c;此时这个程序就被称之为进程。也就是下方的&#xff1a; 程序的一个执行实例&#xff0c;正在执行的程序等 担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff…...

【MySQL】5.7版本解压安装配置

前言 之所以使用解压版本&#xff0c;而不使用exe安装&#xff0c;因为exe的安装方式删除过于麻烦&#xff01;&#xff01;&#xff01; 如果安装MySQL过程中&#xff0c;出错了或者想重新在来一把&#xff0c;删除mysql服务即可 sc delete mysql # 删除已经安装好的Mysql&a…...

c++类对象数据成员和虚函数的内存布局

一直想搞清楚类对象的数据成员和虚函数的内存布局&#xff0c;今天刚好有时间&#xff0c;所以就写了个demo查看了一下具体的内存布局情况&#xff08;使用的编译器为微软的&#xff09;。下面是自己demo的代码&#xff1a;#include <iostream> #include <windows.h&g…...

Python 模块和包

1. 模块和包 **容器&#xff1a;**列表、元组、字符串、字典等&#xff0c;对数据的封装**函数&#xff1a;**对语句的封装**类&#xff1a;**对方法和属性的封装&#xff0c;即对函数和数据的封装 而模块&#xff08;module&#xff09;就是个程序&#xff0c;一个.py 文件&…...

Java零基础专栏——面向对象

1 面向对象思想1.1 什么是面向对象&#xff1f;2 类和对象2.1 类和对象的理解2.2 类的定义2.3定义类的补充注意事项2.4 对象的使用2.5 练习3 封装3.1 封装思想3.1.1 封装概述3.1.2 封装的步骤3.1.3 封装代码实现3.2 private关键字3.3 练习—private的使用4 构造方法4.1 构造方法…...

离散无记忆与有记忆信源的序列熵

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;information-theory】&#xff0c;需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录离散无记忆信源的…...

算法该不该刷?如何高效刷算法?

一、算法该不该刷&#xff1f;最近有小伙伴向我咨询一个问题&#xff0c;就是算法该不该刷&#xff0c;该如何刷算法呢&#xff1f;这个问题可谓太大众化了&#xff0c;只要你去某乎、某度搜索一下相关的解答&#xff0c;会有无数种回答&#xff0c;可见这个问题困扰了多少学习…...

Allegro如何在关闭飞线模式下查看网络连接位置操作指导

Allegro如何在关闭飞线模式下查看网络连接位置操作指导 在用Allegro做PCB设计的时候,有时会因为设计需要,关闭飞线显示。 如何在关闭飞线显示模式下查看网络连接的位置,如下图 除了能看到网络连接的点位以外,还能看到器件的pin Number 如何显示出这种效果,具体操作如下 …...

双线性系统与RNN架构演进:从理论到实践

1. 双线性系统基础与RNN架构演进 双线性系统作为控制理论中的重要模型类别&#xff0c;其数学本质是状态变量与控制输入的乘积项构成的动态系统。这类系统在形式上可以表示为&#xff1a; dx/dt Ax Bu Nxu y Cx Du其中Nxu项就是典型的双线性耦合项。这种结构在保持线性系…...

融合UFF与机器学习势:高通量筛选MOF吸附剂的高效精准方案

1. 项目概述&#xff1a;当经典力场遇上机器学习势&#xff0c;如何实现MOF吸附剂的精准高效筛选&#xff1f;在材料研发的前沿&#xff0c;尤其是像金属-有机框架&#xff08;MOFs&#xff09;这样拥有近乎无限结构可能性的领域&#xff0c;我们常常面临一个“大海捞针”的困境…...

从Voronoi图到Lloyd算法:分布式传感器网络收敛性证明与工程实践

1. 从几何直觉到数学证明&#xff1a;理解传感器网络的收敛性在分布式传感器网络、无人机编队或者移动机器人集群的部署中&#xff0c;一个核心问题是如何让这些自主节点在没有中央控制器的情况下&#xff0c;高效、均匀地覆盖一个目标区域&#xff0c;并最终收敛到我们关心的关…...

Ventoy安装后U盘识别不了?手把手教你从下载(附国内镜像站)到成功引导Win10的完整避坑指南

Ventoy启动盘制作全攻略&#xff1a;从下载到成功引导Win10的避坑指南你是否曾经为了安装不同系统而反复格式化U盘&#xff1f;Ventoy这款国产开源工具彻底改变了传统启动盘制作方式&#xff0c;它允许你在同一个U盘上存放多个ISO镜像文件&#xff0c;无需反复格式化就能直接启…...

不止于播放:用VideoPlayer脚本控制实现一个简易的Unity视频播放器UI

不止于播放&#xff1a;用VideoPlayer脚本控制实现一个简易的Unity视频播放器UI在Unity中构建一个功能完整的视频播放器UI&#xff0c;远不止简单地调用VideoPlayer.Play()这么简单。本文将带您从零开始&#xff0c;实现一个具备播放控制、进度条拖拽、音量调节等完整功能的视频…...

从原理到操作:彻底搞懂Linux服务器UEFI启动项管理(efibootmgr命令详解)

深入解析Linux服务器UEFI启动管理&#xff1a;efibootmgr命令全攻略当你在Linux服务器上执行efibootmgr命令时&#xff0c;是否曾被那些神秘的Boot000X条目搞得一头雾水&#xff1f;作为现代服务器的主流启动方式&#xff0c;UEFI远比传统的BIOS复杂得多。本文将带你从底层原理…...

QM/MM与ML/MM模拟对比:从呋喃光化学弛豫看机器学习力场结构保真度

1. 项目概述&#xff1a;从呋喃的光化学弛豫看QM/MM与ML/MM模拟的实战差异在计算化学和分子模拟领域&#xff0c;我们常常需要回答一个核心问题&#xff1a;一个分子在吸收光能量后&#xff0c;究竟会经历怎样的微观旅程&#xff1f;这个过程充满了不确定性&#xff0c;电子在几…...

ThinkPad X1 Carbon摄像头罢工?别急着重装驱动,先试试这个Windows更新‘暂停大法’

ThinkPad X1 Carbon摄像头故障的终极解决方案&#xff1a;Windows更新机制深度解析ThinkPad X1 Carbon作为商务笔记本的标杆产品&#xff0c;其稳定性向来备受赞誉。但最近不少用户反馈遇到了一个令人抓狂的问题——摄像头突然罢工。更令人沮丧的是&#xff0c;按照常规思路重装…...

2026年AI模型接口中转站真实测评:五大主流大模型API聚合平台深度实测调研指南

进入2026年&#xff0c;大语言模型的工程化落地已经走完从尝鲜到规模化普及的全流程&#xff0c;对于广大AI应用开发者而言&#xff0c;AI大模型接口中转站早就不是过去仅承担接口转发的简单工具&#xff0c;如今它已经承担起链路高可用保障、多模型负载均衡、跨协议自动转换等…...

HexStrike AI v6.0:面向红队实战的多智能体渗透框架

1. 这不是又一个“AI安全”的概念玩具&#xff0c;而是一套能真正进红队作战包的智能体渗透框架我第一次在内部红队演练中把 HexStrike AI v6.0 推进真实靶场时&#xff0c;没敢直接叫它“AI渗透工具”——怕被老队员当场笑出声。毕竟过去三年里&#xff0c;我亲手试过七套标榜…...