面试
文章平均质量分 87
系统看你学习很认真,随机送了一个月会员!
系统看你学习很认真,随机送了一个月会员!
系统看你学习很认真,随机送了一个月会员!
你不懂、、、
系统看你学习很认真,随机送了一个月会员! 系统看你学习很认真,随机送了一个月会员! 系统看你学习很认真,随机送了一个月会员!
展开
-
程序员常用的几种算法
了解并熟练使用这些算法能够帮助程序员有效地解决各种编程问题,并在开发过程中选择最优的解决策略。实际工作中,根据不同的业务需求和应用场景,程序员可能需要对这些算法进行调整或优化。在实际工作中,算法的选择和实现需要根据具体问题的需求,数据的大小和特性以及性能要求来定。掌握多种算法和数据结构对于解决复杂问题是非常有帮助的。原创 2024-03-07 16:40:48 · 836 阅读 · 0 评论 -
未来 AI:引领研发技术的关键
此外,AI还可以应用于自动驾驶技术的研发,通过深度学习和强化学习,让车辆能够更准确地感知和决策,提高行驶安全性和驾驶体验。此外,AI还可以应用于电子元器件故障预测和诊断,通过学习大量的历史故障数据,AI能够预测电子产品的故障概率和寿命,帮助制造商提前采取维修和替换措施,减少损失和客户投诉。首先,技术挑战的克服将推动AI辅助研发的进一步发展,包括改进算法和模型的稳定性和鲁棒性,提供更强大的计算和存储能力。科研人员可以根据自己的特定研究领域和问题,定制AI模型的结构和训练策略,提高模型的性能和适应性。原创 2024-03-07 14:04:10 · 775 阅读 · 0 评论 -
Java工作经验1~3年面试题(适用于小公司)
在 Java 中的反射机制是指 在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制堆和栈都java内存,堆是用来存储java中对象和数组,在创建一个数组或者对象时,堆内存会留一段空间存放它,栈使用来执行程序的。1.功能不一样栈内存用来存储局部变量和方法调用;堆内存用来存储java中的对象。2.空间大小不一样栈的内存要小于堆的内存。原创 2024-03-07 09:55:23 · 1234 阅读 · 0 评论 -
面试算法题【给定一个数组,找出最大子数组,并且该子数组的和能够整除6】——网易
然而,如果数组很大或者对性能有更高要求,你可以考虑其他更优化的算法,比如基于前缀和和哈希表的方法,这样可以将时间复杂度降低到O(n)。后来想到,可以把整个数组求和,然后模6,得到余数,然后再把数组中的这个数字去掉,或者这个数字的组合去掉,但是这不就是把一个排列组合的问题,转换为另一个排列组合的问题了吗。如果子数组的和能被6整除,并且大于先前找到的最大和,则更新最大和。前几天做了一次网易的笔试题,四道算法题,呜呜呜我算法太菜了一题都不会写,然后挑了一题看起来最短最好理解的一道做,结果也做不出来。原创 2024-03-07 09:32:21 · 332 阅读 · 0 评论 -
面试算法题【只出现一次的数字】——比亚迪
因此,你可以初始化一个变量来进行累积异或操作,由于除了一个元素之外,其余元素都是成对出现的,所以这些成对的元素异或后会变成0,最终剩下的就是那个只出现一次的元素。一般来说有线性复杂度,那么算法复杂度就是O(n),那么也就是说一层循环就能直接找到结果,不存在嵌套。要找出数组中唯一一个只出现一次的元素,你可以使用「异或」运算。,并对所有元素进行异或操作。由于异或操作的性质,成对出现的元素将会抵消掉,最后结果。给定一个非排序好的数组,存在一个数字x只出现了一次,其他数字都出现了两次。中就是只出现一次的那个元素。原创 2024-03-07 09:27:07 · 427 阅读 · 0 评论 -
面试算法题【两数之差(链表实现)】——字节跳动
算法题:参考题目:两数之和。原创 2024-03-07 09:11:10 · 371 阅读 · 0 评论 -
Java面试篇【JVM】常见面试题(2024最新)
线程私有:程序计数器,虚拟机栈,本地方法栈线程共享的:堆,方法区,直接内存。原创 2024-03-06 16:35:42 · 1474 阅读 · 0 评论 -
Java面试篇【MyCat】常见面试题(2024最新)
分库分表中间件,将存放在一个数据库的数据存放在不同的多个数据库中。来分散负载。垂直切分,一个表很大字段很多,将它拆成多个表。比如订单表,有一些常见的不变的字段,比如订单金额之类的,下单人,电话留言等信息。还有一些状态信息,下单时间,发货时间,付款时间,退货时间以及对应的状态变化等等,将这两个就可以垂直拆分成两个表。优点:拆分后业务清晰,拆分规则明确。缺点:部分业务表无法join,只能通过接口解决,提高系统复杂度。水平切分:根据表中的数据的逻辑关系,将一张表的数据按照某种条件拆分到多台数据库上面。比原创 2024-03-06 16:20:09 · 436 阅读 · 0 评论 -
Java面试篇【RabbitMQ】常见面试题(2024最新)
因为MQ可以异步处理,提高系统吞吐量。应用解耦,系统之间可以通过消息通信,不关心其他系统的处理。流量削峰,可以通过消息队列的长度,控制请求量。可以缓解短时间内的高并发请求。:A->BCD,但是如果E也想要这个数据,或者C不想要了。A就需要修改。与各种下游系统严重耦合。如果使用MQ,A系统产生一条消息,到MQ,哪个系统要消息就去消息系统里去消费。:A接收请求,在本地写库,在BCD三个系统分别要进行写库,本地很快,其它系统完成后传过来很慢,如果同步方式,原创 2024-03-06 16:14:09 · 1321 阅读 · 0 评论 -
Java面试篇【并发编程·进阶】常见面试题(2024最新)
synchronized关键字解决的是多线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能被一个线程执行。监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock来实现的,java的线程是映射到操作系统原生线程之上。如果要挂起一个线程,或者唤醒一个线程,都需要os来帮忙,而os实现线程切换需要从用户态转换为内核态。需要时间长,成本高。原创 2024-03-06 15:58:05 · 484 阅读 · 0 评论 -
Java面试篇【并发编程】常见面试题(2024最新)
虚拟机栈:每个java方法在执行的时候,都会创建栈帧,来记录局部变量,操作数栈,引用等等。为了保证线程的局部变量不被别的线程访问,应该设为私有。- 本地方法栈道理类似。程序计数器是记录方法执行到了哪里,用来在线程切换的时候恢复到正确的位置,自然要一个线程一个。持有对方想要的资源,期待获得对方持有的资源,形成了一个圈。互相等待谁也不让。try{try{原创 2024-03-06 15:28:55 · 434 阅读 · 0 评论 -
Java面试题【必知必会】Linux常用命令面试题(2024)
近期一直在准备面试,所以为了巩固知识,也为了梳理,整理了一些java的基础面试题!同时也希望各位英雄和女侠能够补充!不胜荣幸!!!原创 2024-03-06 14:12:20 · 852 阅读 · 0 评论 -
Java面试题【必知必会】Redis常见面试题(2024)
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI?C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。是一个NoSQL数据库,也被称为结构化数据库优点:速度快:因为数据存在内存中,类似于 HashMap ,HashMap 的优势就是查找和操作的时间复杂度都是O (1);纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value 数据库.原创 2024-03-06 13:54:35 · 839 阅读 · 0 评论 -
Java面试题【必知必会】SpringCloud常见面试题(2024)
负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA (高用)负载均衡的策略:轮询策略:轮询选择服务器(Rabbon默认)随机策略:随机选择一个服务器重试策略:根据轮询的方式重试权重策略:据响应时间去分配一个weight ,weight越低,被选择的可能性就越低最低并发策略:选择最小请求数可用过滤策略:过滤掉连接失败的服务节点,并且过滤掉高并发的服务节点,然后从健康的服务节点中,使用轮询策略选出一个节点返回。原创 2024-03-06 13:42:48 · 976 阅读 · 0 评论 -
Java面试题【必知必会】SpringBoot常见面试题(2024)
YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据优势:配置有序,在一些特殊的场景下,配置有序很关键支持数组,数组中的元素可以是基本数据类型也可以是对象简洁明了。原创 2024-03-06 13:29:44 · 929 阅读 · 0 评论 -
Java面试题【必知必会】SpringMVC常见面试题(2024)
Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。DispatcherServlet本质上就如其名字所展示的那样是一个Java Servlet。同时它是Spring MVC中最为核心的一块——前端控制器。它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端DispatcherServlet 在web.xml中的配置。原创 2024-03-06 11:24:49 · 409 阅读 · 0 评论 -
Java面试题【必知必会】Mybatis常见面试题(2024)
预编译(Prepared Statement)是数据库操作中的一种技术,它是一种在执行SQL语句之前,先将SQL语句发送到数据库进行编译并生成执行计划,然后再将参数传递给编译后的语句执行的方式。在使用预编译的过程中,数据库会对SQL语句进行编译,并生成执行计划,然后将编译后的执行计划缓存起来,当下次有相同的SQL语句需要执行时,数据库可以直接使用缓存中的执行计划,只需替换参数即可,而无需重新编译整个SQL语句。这样可以提高数据库操作的执行效率和性能。原创 2024-03-06 11:17:22 · 394 阅读 · 0 评论 -
Java面试题【必知必会】Spring常见面试题(2024)
近期一直在准备面试,所以为了巩固知识,也为了梳理,整理了一些java的基础面试题!同时也希望各位英雄和女侠能够补充!不胜荣幸!!!原创 2024-03-06 11:02:17 · 1019 阅读 · 0 评论 -
Java面试题【必知必会】MySQL常见面试题(2024)
简单的理解,索引就相当于目录。为了方便查找书中的内容,我们通常可以去查看目录看看要找的内容在哪页或者哪个区域页里。然后就可以快速的查找到我们想要的内容。官方理解:索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树索引的优缺点:优点:可以大大加快数据的检索速度,这也是创建索引的最主要的原因。原创 2024-03-06 10:26:24 · 867 阅读 · 0 评论 -
Java面试题【必知必会】常见基础题(2024)
面向对象是一种思想,简单来说就是将数据和操作数据的方法封装在对象中。举个例子来说比如洗衣机洗衣服。我们通常会把这个拆分成两个对象——人和洗衣机。人需要干的就是:打开洗衣机—放入衣服—放入洗衣液—关闭洗衣机门-按下各种开关,洗衣机则负责:清洗—烘干面向对象拥有三大特性其实也可以说四大特性:封装–继承–多态–抽象相等于封装来说,就是把一切内部信息隐藏起来,对外不透明,只提供最简单的调用。继承是从已有的一个类得到信息并创建新类的过程,一般我们称这个提供信息的类为父类,得到信息的的类为子类。原创 2024-03-06 09:55:02 · 629 阅读 · 0 评论 -
Java面试题【必知必会】基础(2024)
1.重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理2.重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法重载:发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与 方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分重写:重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。原创 2024-03-06 09:05:35 · 1100 阅读 · 0 评论 -
Redis面试题(答案版)2024
(1)高性能:Redis是基于内存的,读写速度非常快,可以支持10w的QPS。(2)用途多样:缓存、消息队列、分布式锁等(3)支持多样的格式:String、Hash、Set、ZSet、List、BitMaps、HyperLogLog、GEO(4)高级特性:事务、持久化、Lua脚本、原生集群、发布/订阅模式、内存淘汰、过期删除等。原创 2024-03-05 11:10:12 · 1098 阅读 · 0 评论 -
Redis面试问题纯享版
5、Redis中五种基本数据类型的底层数据结构是什么样的?8、Redis 如何解决集群情况下分布式锁的可靠性?2、对比一下Redis和Memcache的异同?3、单线程模型中客户端请求的处理流程是怎么样的?4、Redis 主从模式中,对过期键会如何处理?5、Redis 持久化时,对过期键会如何处理的?4、详细聊聊你对Redis各种数据类型的了解?1、Redis的单线程模型指的是什么?4、Redis为什么可以实现分布式锁?1、Redis的持久化方式有哪些?2、Redis怎么维护过期信息的?原创 2024-03-05 10:17:41 · 395 阅读 · 0 评论 -
MySQL性能优化-Mysql索引篇(5)
锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁、页锁和表锁。除了按照锁粒度大小对锁进行划分外,我们还可以从数据库管理的角度对锁进行划分。共享锁和排它锁,是我们经常会接触到的两把锁。01.共享锁也叫读锁或 S 锁,共享锁锁定的资源可以被其他用户读取,但不能修改。在进行SELECT的时候,会将对象进行共享锁锁定,当数据读取完毕之后,就会释放共享锁,这样就可以保证数据在读取时不被修改。使用举例一:①给 product_comment 在表上加共享锁,可以使用下面这行命令②当对数据原创 2024-03-05 09:59:41 · 831 阅读 · 0 评论 -
MySQL性能优化-Mysql索引篇(4)
承接上文,我们说过数据库读取磁盘的最小单位是页不是行,那么对于数据库来说,如果我们想要查找多行记录,查询时间是否会成倍地提升呢?其实数据库会采用缓冲池的方式提升页的查找效率。为了更好地理解SQL查询效率是怎么一回事,我们今天就来看看磁盘IO是如何加载数据的。磁盘 I/O 需要消耗的时间很多,而在内存中进行操作,效率则会高很多,为了能让数据表或者索引中的数据随时被我们所用,DBMS 会申请占用内存来作为数据缓冲池,这样做的好处是可以让磁盘活动最小化,从而减少与磁盘直接进行 I/O 的时间。要知道,这种策略对原创 2024-03-05 09:53:14 · 944 阅读 · 0 评论 -
MySQL性能优化-Mysql索引篇(3)
下面我们面对这几个概念做一个简单的讲解。数据页中的结构是怎样的刚才我们说过,数据库的读取是以页为单位的,所以这是一个非常重要的数据库存储结构,如果按照类型划分,可以分为以下几类:表页的大小限定了表行的最大长度,不同 DBMS 的表页大小不同。比如在 MySQL 的 InnoDB 存储引擎中,默认页的大小是 16KB,我们可以通过下面的命令来进行查看:数据库 I/O 操作的最小单位是页,与数据库相关的内容都会存储在页结构里。数据页包括以下七个部分既然我们讲了详细的数据页结构,那么接下来肯定是要了解,各个原创 2024-03-05 09:43:47 · 1053 阅读 · 0 评论 -
MySQL性能优化-Mysql索引篇(2)
关于索引使用到的底层数据结构,我们这里不会具体去说,因为这是一块非常固定的内容,大家可以下去后具体了解下,主要包括这几种,平衡二叉搜索树、B树、B+树、Hash结构。我们这里主要是对这几种数据结构,进行一波对比分析。(后续会对B+树的内部结构详细分析,小伙伴们可以期待一波)一、 平衡二叉搜索树和B树:我们知道,我们使用索引是为了在大量数据时,提升我们搜索的效率。所以我们可以说,使用了索引,说明了数据的量级非常大的,一般都是到达了百万级别。虽然平衡二叉搜索树在二叉树的基础上,平衡了节点的分布,避免了一般二原创 2024-03-05 09:34:24 · 771 阅读 · 0 评论 -
MySQL性能优化-Mysql索引篇(1)
数据库中的索引,就好比一本书的目录,它可以帮我们快速进行特定值的定位与查找,从而加快数据查询的效率。索引就是帮助数据库管理系统高效获取数据的数据结构。如果我们不使用索引,就必须从第 1 条记录开始扫描,直到把所有的数据表都扫描完,才能找到想要的数据。既然索引可以帮我们快速查找数据,是不是索引越多越好呢?答案是否定的,索引不是万能的,一些情况下使用索引不仅不能提升效率,反而会让效率变低。索引的价值是帮我们从海量数据中找到想要的数据,如果数据量少,那么是否使用索引对结果的影响并不大。原创 2024-03-05 09:28:50 · 894 阅读 · 0 评论 -
MySQL性能优化-范式设计和反范式设计
我们今天讲解了数据表设计的三种范式。关系型数据库的设计都是基于关系模型的,在关系模型中存在着 4 种键,这些键的核心作用就是标识。在这些概念的基础上,我又讲了 1NF,2NF 和 3NF。我们经常会与这三种范式打交道,利用它们建立冗余度小、结构合理的数据库。有一点需要注意的是,这些范式只是提出了设计的标准,实际上设计数据表时,未必要符合这些原则。一方面是因为这些范式本身存在一些问题,可能会带来插入,更新,删除等的异常情况(这些会在下一讲举例说明),另一方面,它们也可能降低会查询的效率。这是为什么呢?原创 2024-03-04 14:58:23 · 1536 阅读 · 1 评论 -
MySQL性能优化-数据库调优有哪些维度可以选择
简单来说,数据库调优的目的就是要让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标,因为用户在不同时间段访问服务器遇到的瓶颈不同,比如双十一促销的时候会带来大规模的并发访问;还有用户在进行不同业务操作的时候,数据库的事务处理和 SQL 查询都会有所不同。因此我们还需要更加精细的定位,去确定调优的目标。如何确定呢?一般情况下,有两种方式可以得到反馈。用户的反馈用户是我们的服务对象,因此他们的反馈是最直接的。虽然原创 2024-03-04 14:38:27 · 903 阅读 · 0 评论 -
MySQL面试题-锁(答案版)
加了全局锁之后,整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞:对数据的增删改操作,比如 insert、delete、update等语句;对表结构的更改操作,比如 alter table、drop table 等语句。使用场景:全局锁主要应用于做全库逻辑备份,这样在备份数据库期间,不会因为数据或表结构的更新,而出现备份文件的数据与预期的不一样。:加上全局锁,意味着整个数据库都是只读状态。原创 2024-03-04 11:24:13 · 1352 阅读 · 0 评论 -
MySQL面试题-基础内容(答案版)
执行器查询的过程是一个 while 循环,所以还会再查一次,会调用 read_record 函数指针指向的函数,因为优化器选择的访问类型为 all,read_record 函数指针指向的还是 InnoDB 引擎全扫描的接口,所以接着向存储引擎层要求继续读刚才那条记录的下一条记录,存储引擎把下一条记录取出后就将其返回给执行器(Server层),执行器继续判断条件,不符合查询条件即跳过该记录,否则发送到客户端;所以,如果一个用户已经建立了连接,即使管理员中途修改了该用户的权限,也不会影响已经存在连接的权限。原创 2024-03-04 10:51:00 · 897 阅读 · 0 评论 -
MySQL面试题-索引(答案版)
如果我们使用非自增主键,由于每次插入主键的索引值都是随机的,因此每次插入新的数据时,就可能会插入到现有数据页中间的某个位置,这将不得不移动其它数据来满足新数据的插入,甚至需要从一个页面复制数据到另外一个页面,我们通常将这种情况称为页分裂。综上所示,联合索引的最左匹配原则,在遇到范围查询(如 >、原创 2024-03-04 10:52:25 · 1606 阅读 · 0 评论 -
MySQL面试题-日志(答案版)
redo log 是物理日志,记录了某个数据页做了什么修改,比如对 XXX 表空间中的 YYY 数据页 ZZZ 偏移量的地方做了AAA 更新,每当执行一个事务就会产生这样的一条或者多条物理日志。在事务提交时,只要先将 redo log 持久化到磁盘即可,可以不需要等到将缓存在 Buffer Pool 里的脏页数据持久化到磁盘。当系统崩溃时,虽然脏页数据没有持久化,但是 redo log 已经持久化,接着 MySQL 重启后,可以根据 redo log 的内容,将所有数据恢复到最新的状态。原创 2024-03-04 13:28:50 · 948 阅读 · 0 评论 -
MySQL面试题【全面】2024
支持 InnoDB、MyISAM、Memory 等多个存储引擎,不同的存储引擎共用一个 Server 层。现在最常用的存储引擎是 InnoDB,从 MySQL 5.5 版本开始, InnoDB 成为了 MySQL 的默认存储引擎。我们常说的索引数据结构,就是由存储引擎层实现的,不同的存储引擎支持的索引类型也不相同,比如 InnoDB 支持索引类型是 B+树 ,且是默认使用,也就是说在数据表中创建的主键索引和二级索引默认使用的是 B+ 树索引。原创 2024-03-04 14:03:44 · 878 阅读 · 0 评论 -
MySQL面试题纯享版
3、next-key lock退化场景是怎么样的(唯一等值、唯一范围、不唯一等值、不唯一范围)10、如果不小心整个数据库的数据被删除了,能使用 redo log 文件恢复数据吗?19、事务没提交的时候,redo log 会被持久化到磁盘吗?23、组提交发现MySQL的IO还是很高,有什么办法优化?6、MySQL的InnoDB引擎是怎么解决幻读问题的?6、产生的 redo log 是直接写入磁盘的吗?7、执行器与存储引擎交互的三种方式是什么?7、四种隔离级别具体是如何实现的呢?原创 2024-03-04 10:16:12 · 408 阅读 · 0 评论 -
MySQL面试题-事务(答案版)
事务是由 MySQL 的引擎来实现的,我们常见的 InnoDB 引擎它是支持事务的。不过并不是所有的引擎都能支持事务,比如 MySQL 原生的 MyISAM 引擎就不支持事务,也正是这样,所以大多数 MySQL 的引擎都是用 InnoDB。原创 2024-03-04 11:04:32 · 1034 阅读 · 0 评论