![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试问题总结
文章平均质量分 78
18阿鲁
只为成功找方法,不为失败找借口
展开
-
快速排序总结
递归版每一次快速排序都是确定一个元素的位置,然后对左右两边的区域做相同过程,直到左边大于等于右边界。一次快速排序就是以左边界的值为中心,小于它的交换到左边,大于它的交换到右边。class Solution { public void sortColors(int[] nums) { process(nums,0,nums.length-1); } public void process(int[] nums, int left, int right){原创 2020-10-06 22:25:03 · 292 阅读 · 0 评论 -
大数据类面试题
如何从大量的url中找出相同的url给定a、b两个文件,各存放50亿个url,每个url各占64B,内存限制是4GB,请找出a、b两个文件共同的url分析:拆分成可以处理的文件,进行比较。a,b文件都这样处理,把url做hash处理,并对500求余,这样原来文件分成500份文件,平均一份文件有1000万条数据,(100万字节就是1mb)文件大概640mb。将着500份文件一一和b文件拆分出来的500文件比较。比较过程是,把a文件的一个小文件中的内容加入set集合,遍历b文件的小文件,若set中存原创 2022-03-14 01:07:26 · 1752 阅读 · 0 评论 -
Java集合面试问题总结
ArrayList和LinkedList特点及各自应用场景底层数据结构: Arraylist 底层使⽤的是 Object 数组;LinkedList 底层使⽤的是 双向链表 数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。)插入和删除: Arraylist 在内存中是一块连续的内存,如果插入或删除时需要移动内存。LinkedList 插入时不需要移动内存,只需要改变引用指向即可。随机访问: Arraylist支持随机访问,LinkedList不支持随机访问。应用场景: Arraylis原创 2021-12-07 23:48:09 · 317 阅读 · 0 评论 -
MY学习我的达瓦达瓦
旧的方案是调用虚拟机的脚本;使用双子快传收到文件后,提出的方案是触发通知,由应用去把文件写入数据库但今天讨论说docker能存储的空间有限,如果使用流在线读数据有可能超时,所以要使用虚拟机。因此,方案变成了:双子快传收到文件触发通知->通知启动应用去调用虚拟机的脚本->虚拟机的脚本下载文件并写入数据库;但还不确定这样行不行IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。selelctselect目前几乎在所有的平台上支持,其良好跨平台支持也是它的原创 2021-12-03 14:55:15 · 489 阅读 · 0 评论 -
架构知识点总结
分布式概述参考:https://blog.csdn.net/ThinkWon/article/details/105870730分布式(distributed)是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段,将一个业务拆分成不同的子业务,分布在不同的机器上执行。 服务之间通过远程调用协同工作,对外提供服务。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式缓存、分布式数据库、分布式计算、分布式文件系统等,一些技术如MQ、Redis、zookeeper等都跟分布式有关。分布式的实转载 2021-11-29 23:17:14 · 148 阅读 · 0 评论 -
Java虚拟机JVM面试总结
CMS垃圾回收器CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。整个过程分为四个步骤,包括:1)初始标记(CMS initial mark)2)并发标记(CMS concurrent mark)3)重新标记(CMS remark)4)并发清除(CMS concurrent sweep)其中初始标记、重新标记这两个步骤仍然需要“Stop The World”。由于在整个过程中耗时最长的并发标记和并发清除阶段中,垃圾收集器线程都可以与用户线程转载 2021-11-28 20:14:51 · 118 阅读 · 0 评论 -
Redis面试问题总结
Redis的主从复制、哨兵模式以及集群参考:https://blog.csdn.net/smilehappiness/article/details/107433525主从复制主从复制模式由一个master和多个slave构成,通过在redis.conf配置文件进行配置来实现主从关系当主redis(master )宕机,写请求将无法执行((error) ERR wrong number of arguments for ‘set’ command)当从redis(slave)宕机,读请求的处理性能转载 2021-11-12 00:39:03 · 279 阅读 · 0 评论 -
Java基础面试总结
文章目录hashmap发生hash冲突了有什么解决办法泛型,谈谈你对泛型的理解hashmap发生hash冲突了有什么解决办法开放地址法 平方探测再散列如果发生冲突,放到(冲突+1平方)的位置,如果还发生冲突,就放到(冲突-1平方)的位置;如果还有人就放到(冲突+2平方)的位置,以此类推,要是负数就倒序数。拉链法如果发生冲突,就继续往前一个元素上链接,形成一个链表,Java的hashmap就是这种方法。再哈希如果发生冲突,就用另一个方法计算hashcode,两次结果值不一样就不会发生hash冲原创 2021-11-10 21:23:42 · 442 阅读 · 0 评论 -
我的Linux常用命令总结
firewall防火墙查看状态systemctl status firewalldActive: active (running)且高亮则表示启动状态。Active: inactive (dead)灰色表示停止状态。开启systemctl start firewalld关闭systemctl stop firewalld...原创 2020-06-01 14:28:44 · 165 阅读 · 0 评论 -
IO模型 Netty
文章目录IO读写的基本原理阻塞与非阻塞 同步与异步四种主要的IO模型IO读写的基本原理大多数情况下,Linux系统中用户程序的IO读写程序并没有进行物理设备级别的读写,而是在用户缓冲区和内核缓冲区之间直接进行数据的交换。外部设备的直接读写涉及操作系统的中断。发生系统中断时,需要保存之前的进程数据和状态等信息,结束中断之后,还需要恢复之前的进程数据和状态等信息。为了减少底层系统的频繁中断所导致的时间损耗、性能损耗,出现了内核缓冲区。阻塞与非阻塞 同步与异步阻塞IO(Blocking IO)指的是需要内原创 2021-11-01 22:58:34 · 151 阅读 · 0 评论 -
Netty面试问题总结
原帖:https://blog.csdn.net/ThinkWon/article/details/1043910811.Netty 是什么?Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方法灵活。2.Netty 的特点是什么?高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),他转载 2021-10-29 22:37:00 · 173 阅读 · 0 评论 -
计算机网络面试题总结
cookie session内容摘抄自《图解HTTP》HTTP 是无状态协议,不能根据之前的状态进行本次的请求处理。由于不必保存状态,可减少服务器的CPU 及内存资源的消耗。通过cookie与session管理用户会话状态:客户端把用户ID 和密码等登录信息放入报文的实体部分,通常是以POST 方法把请求发送给服务器。通过验证从客户端发送过来的登录信息进行身份认证,然后把用户的认证状态与Session ID 绑定后记录在服务器端。向客户端返回响应时,发放用以识别用户的Session ID。另外转载 2021-10-23 17:19:43 · 110 阅读 · 0 评论 -
操作系统面试题总结
进程通信管道管道是指连接一个写进程和一个读进程以实现他们之间通信的一个共享文件。一个进程可以通过管道把数据传递给另外一个进程。前者向管道中写入数据,后者从管道中读出数据。匿名管道通信只能用于父子或兄弟进程的通信,由父进程创建管道,并创建子进程。消息队列将通信的数据封装成消息,利用操作系统的通信命令进行进程通信。消息传递方式也分为两种,分别是直接通信方式和间接通信方式直接通信方式,消息会直接挂到接收进程的消息缓冲队列上。间接通信方式,发送进程会把消息发送到一个中间实体(信箱)中,而接收进程通过原创 2021-10-23 15:30:38 · 109 阅读 · 0 评论 -
场景设计面试题
100亿个数据中找出最大的1000个海量数据处理,思路基本上是:必须分块处理,然后再合并起来。1.采用小顶堆算法我们知道完全二叉树有几个非常重要的特性,就是假如该二叉树中总共有N个节点,那么该二叉树的深度就是log2N,对于小顶堆来说移动根元素到 底部或者移动底部元素到根部只需要log2N,相比N来说时间复杂度优化太多了(1亿的logN值是26-27的一个浮点数)。基本的思路就是先从文件中取出1000个元素构建一个小顶堆数组k,然后依次对剩下的100亿-1000个数字进行遍历m,如果m大于小顶堆的根元原创 2021-10-17 16:00:37 · 640 阅读 · 0 评论 -
框架面试问题总结
什么是NIO?什么是Netty?三次挥手???Socket又称“套接字”,应用程序通常通过“套接字”向网络发出请求或应答网络请求。Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,不会因为在服务器端或在客户端而产生不同的级别。不管是ServerSocket还是Socket,它们的工作都是通原创 2021-10-15 22:52:04 · 151 阅读 · 0 评论 -
设计模式总结
代理模式的应用:Dao 接⼝的⼯作原理是 JDK 动态代理,Mybatis 运⾏时会使⽤ JDK 动态代理为 Dao 接⼝⽣成代理 proxy 对象,代理对象 proxy 会拦截接⼝⽅法,转⽽执⾏MappedStatement所代表的 sql,然后将sql 执⾏结果返回。...原创 2021-10-12 23:18:23 · 105 阅读 · 0 评论 -
Spring面试题总结
AOP的原理是什么?有哪些实现方式?AOP原理: 将相同逻辑的重复代码横向抽取出来,使用动态代理技术将这些重复代码织入到目标对象方法中,实现和原来一样的功能。意义: 提高模块化,即通过AOP解决代码耦合问题,让职责更加单一相关术语:连接点:指那些可以被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的连接点。切入点: 指我们要对哪些连接点进行拦截的定义。通知: 所谓通知是指拦截到连接点之后所要做的事情就是通知,通知的类型:前置通知,后置通知,异常通知,最终原创 2021-10-10 11:12:35 · 340 阅读 · 0 评论 -
多线程面试题
用户态、系统态,切换成本原创 2021-10-07 10:05:36 · 321 阅读 · 0 评论 -
数据库面试题总结
mysql都有哪些索引类型;为什么b+树,红黑树、b树为什么不好;B+树索引、哈希索引;hash索引查询单条确实比较快,但是他是无序的,查询多条或者排序的话性能就比较低了,并且在内存资源紧张的情况下,树索引可以分批装入内存进行计算。因为红黑树子节点只有两个,造成树较高,树越高,那么查询事件复杂度就越高,并且需要更多的磁盘IO,严重影响性能。B树是一个多路搜索树,也就是每个节点可以有多个子节点,这样是为了降低树的高度,减少磁盘IO次数。相比于B树,B+树有以下优势:更少的IO次数: B+树的非叶节转载 2021-10-06 14:53:56 · 260 阅读 · 0 评论