
面试
文章平均质量分 81
无畏@
全栈领域优秀创作者
展开
-
南京银行-面经
主要优势:(1)无论是与其他城商行相比,还是和五大行,南京银行的薪资福利都很乐观;(3)部门氛围好,那些乱七八糟的东西少一些;一面综合面:自我介绍、介绍自己简历上的项目、根据简历上的项目问2-3个简单的问题比如项目的工作量、大学上的课程有哪些、校园经历最难忘、最有成就感的事情、你遇到最难的事情是什么,怎么解决的?二面技术面:计算机基础、项目里用的组件相关的比如mysql等等、项目里遇到的难点以及如何解决;现场参加面试,一般面试的顺序是根据笔试成绩排名来的;一面通过会有二面(现场);一定要穿正装,非常重要;原创 2024-09-20 10:55:52 · 450 阅读 · 0 评论 -
米哈游测开校招一面面试题分享(已凉)
软件测试死锁(Deadlock)是多线程或多进程并发编程中的一种常见情况,指的是两个或多个线程(或进程)因互相等待对方释放资源而无法继续执行的状态,导致系统无法前进或完成任务。在死锁状态下,线程将永远等待下去,除非外部干预。死锁通常发生在满足以下四个必要条件的情况下:互斥条件(Mutual Exclusion):至少有一个资源同时只能被一个线程(或进程)占用,其他线程无法同时访问该资源。请求与保持条件(Hold and Wait):线程在持有至少一个资源的同时,又请求其他线程当前正占用的资源。原创 2024-09-20 10:52:19 · 1018 阅读 · 0 评论 -
✅从B+树的角度分析为什么单表2000万要考虑分表??
我们都知道,Innodb中的数据页默认大小是16KB,并且B+树的每个节点都对应着一个数据页,包括根节点、非叶子节点和叶子节点。理论上来说,只要磁盘空间够,存多少都可以,但是随着数据量的增多,查询效率会下降的,根据实际经验来说,单表抗2000万数据量,通过索引查询问题不大,那么这个数字确实是一个经验值,但是他背后是不是有一定的计算逻辑呢?有了以上的背景之后,我们就可以基于B+树的高度及结构,还有数据页的大小,来估算单表的数据量了。我们都知道,B+树的叶子节点和非叶子节点存储的内容是不一样的。原创 2024-07-08 22:28:59 · 439 阅读 · 0 评论 -
✅Redis的zset实现排行榜,实现分数相同按照时间顺序排序,怎么做?
使用zset提供的排序功能,可以按照分数从高到低排序,**但是如果分数相同,按照默认的排序规则会按照value值排序**,而不是按照时间顺序排序。假设现在的时间戳是1680417299000,除以1e13得到0.1680417299000,再加上一个固定的分数(比如10),那么最终的分数就是10.1680417299000,可以将它作为zset中某个成员的分数,用来排序。实现了分数倒序排列,分数相同时间戳大的排在了前面,这和我们的需求相反了,所以,就需要在做一次转换。原创 2024-07-08 22:21:21 · 1613 阅读 · 0 评论 -
约到 B 站一面,什么水平?
在 JDK1.7 中,HashMap 整个扩容过程就是分别取出数组元素,一般该元素是最后一个放入链表中的元素,然后遍历以该元素为头的单向链表元素,依据每个被遍历元素的 hash 值计算其在新数组中的下标,然后进行交换。这样的扩容方式会将原来哈希冲突的单向链表尾部变成扩容后单向链表的头部。而在 JDK 1.8 中,HashMap 对扩容操作做了优化。原创 2024-07-08 15:04:44 · 847 阅读 · 0 评论 -
真怕了!武汉某小厂面试,都要扛不住了。。。
抽象方法抽象方法是接口的核心部分,所有实现接口的类都必须实现这些方法。抽象方法默认是 public 和 abstract,这些修饰符可以省略。默认方法默认方法是在 Java 8 中引入的,允许接口提供具体实现。实现类可以选择重写默认方法。静态方法静态方法也是在 Java 8 中引入的,它们属于接口本身,可以通过接口名直接调用,而不需要实现类的对象。私有方法私有方法是在 Java 9 中引入的,用于在接口中为默认方法或其他私有方法提供辅助功能。这些方法不能被实现类访问,只能在接口内部使用。原创 2024-07-08 15:01:41 · 1035 阅读 · 0 评论 -
Jvm杂谈
Full GC(Full Garbage Collection)是指对整个堆内存进行垃圾回收的过程。在进行 Full GC 时,会对年轻代和老年代(以及永久代或元数据区)中的所有对象进行回收。Full GC 是一种较为耗时的操作,因为它需要扫描和回收整个堆内存。在 Full GC 过程中,应用程序的执行通常会暂停,这可能会导致较长的停顿时间(长时间的停顿会影响应用程序的响应性能)。为了避免频繁的 Full GC,通常采取一些优化措施,如合理设置堆大小、调优垃圾回收参数、减少对象的创建和存活时间等。原创 2024-07-03 11:17:08 · 700 阅读 · 0 评论 -
理想今年校招薪资,有点猛。。。
缓存雪崩:当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是缓存雪崩的问题。缓存击穿:如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。缓存穿透:当用户访问的数据,既不在缓存中,也不在数据库中。原创 2024-06-28 09:14:16 · 1130 阅读 · 0 评论 -
双亲委派模型是 什么?
它是指当一个类加载器需要加载一个类时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最 终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无 法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去完成加载。双亲委派模型是 Java 类加载器的一种工作机制。原创 2024-06-27 17:07:55 · 323 阅读 · 0 评论 -
synchronized 和Lock有什么区别?
synchronized 可用来修饰普通方法、静态方法和代码块,当一个线程访问一个被 synchronized 修饰的方法或者代码块时,会自动获取该对象的锁,其他线程将会被阻塞,直到该线程执行完毕并释放锁。这样就保证了多个线程对共享资源的操作的互斥性,从而避免了数据的不一致性和线程安全问题。count++;i < 1000;t2.start();t2.join();原创 2024-06-27 16:39:48 · 629 阅读 · 0 评论 -
有点惊喜,理想一面通关了!
指多个线程按照申请锁的顺序来获取锁,线程直接进入队列中排队,队列中的第一个线程才能获得锁。公平锁的优点在于各个线程公平平等,每个线程等待一段时间后,都有执行的机会,而它的缺点就在于整体执行速度更慢,吞吐量更小。多个线程加锁时直接尝试获取锁,能抢到锁到直接占有锁,抢不到才会到等待队列的队尾等待。非公平锁的优势就在于整体执行速度更快,吞吐量更大,但同时也可能产生线程饥饿问题,也就是说如果一直有线程插队,那么在等待队列中的线程可能长时间得不到运行。原创 2024-06-25 16:31:35 · 1041 阅读 · 0 评论 -
泪崩,中厂一面也要输了。。。
分享过很多小厂和大厂的后端面经,这次来分享互联网中厂的面经,面试难度也是刚好介于大厂和小厂之间。除了技术问题之外,互联网中厂面试环节也需要手撕算法,所以想冲中大厂的同学们,算法不能拉下。这次分享,问题不算特别多,15 个左右,再加上 1 个算法题,大家看看难度如何?考察的知识点;Java:HashMap、ConcurrentHashMap、volatile、sychronized、线程池网络:TCP三次握手、四次挥手、netstat 命令mysql:B+树和B树、聚簇索引和非聚簇索引。原创 2024-06-22 20:30:47 · 1054 阅读 · 0 评论 -
好难!腾讯面试体验已结束。。。
还有 1 个月,秋招提前批就准备开始了 ,提前批持续 1 个月后,就正式进入秋招阶段,也就是 8-9 月份开始。还在校的同学,大家要重视秋招,秋招可以说校招阶段最多企业招聘的时间段,明年春招的话,一般是补录阶段,机会肯定没有秋招的多。所以不要觉得还有一年才毕业,就觉得时间多,实际上黄金的校招求职阶段就是几个月后的秋招这段时间,大概会持续 12 月份。那么在这段时间,我还会继续跟大家拆解后端开发的面经,协助大家一起准备面试的过程,以面试题为导向来复习知识点是一种比较高效的方式。原创 2024-06-21 10:32:11 · 1244 阅读 · 0 评论 -
去邮储银行面试了,压力不大!
是通过行级锁来实现的,序列化隔离级别下,普通的 select 查询是会对记录加 S 型的 next-key 锁,其他事务就没没办法对这些已经加锁的记录进行增删改操作了,从而避免了脏读、不可重复读和幻读现象。原创 2024-06-19 16:45:48 · 1613 阅读 · 0 评论 -
公司新来小伙,把 MyBatis 替换成 MyBatis-Plus,上线后被开了.....
在一个老项目中,数据库采用的是 MySQL 5.7.36,ORM 框架使用的是 MyBatis 3.5.0,而的版本是 5.1.26。有一天,一个精力充沛、充满折腾精神的年轻人加入了项目。他觉得 MyBatis 的使用不够简单,需要写的代码比较多,因此认为有必要将其替换为 MyBatis-Plus。关于组件的升级或旧代码的调整,都可能引发连锁反应,影响重大。我的观点是:❝能不动就不要动,改好没功劳,改坏要背锅,吃力不讨好,又不是必须要改。❞如果不得不改,那就需要全面的测试。原创 2024-06-12 10:27:32 · 1146 阅读 · 0 评论 -
一文让你彻底搞懂AQS(通俗易懂的AQS)
【Thread 在 start 的实现源码中做了判断看当前线程的状态是不是等于 0,也就是是否为新建状态NEW,如果线程不是新建状态 NEW,则会抛出非法线程状态异常 IllegalThreadStateException。Runnable(JDK1.0)比Callable(JDK1.5)诞生得早,后来当需要拿到线程的返回值时(使用频率低),为了不增加学习成本、改动原有Thread写法,新创建了FutureTask来接收线程执行的返回值。都没有返回值,当线程执行完成之后,主线程没法拿到新线程的执行结果。原创 2024-06-11 17:23:18 · 349 阅读 · 1 评论