Skip to content

Latest commit

 

History

History
4170 lines (2921 loc) · 157 KB

面试解答2021-06.md

File metadata and controls

4170 lines (2921 loc) · 157 KB

点击[:rocket::rocket::rocket:]可以看到知识点在哪


字节腾讯三轮社招面a经(附个人回答)

作者: 洗脸高手 链接:https://www.nowcoder.com/discuss/659590 来源:牛客网

字节

1面

1.简单说下项目

我项目比较挫,就介绍了下,然后项目就跳过了

2.redis的zset是如何实现的?为什么使用跳表不使用别的数据结构?

redis的zset基于ziplist和dict以及skiplist实现。这里我简单说了下这三个有什么字段,以及优化的细节。至于为什么使用跳表,我直接回答了官方原文。话说回来感觉zset每个大厂都会考啊。

3.redis的持久化方式

rdb和aof,这里本来我想扩展说一下。面试官直接说时间有限,不用了,希望能在短时间多问点东西。这场面试整体节奏很快,很多都是简单说下就问下一个问题了。

4.redis的集群方式,各有什么特点

哨兵配主从,可以保证可靠。redis cluster可以增加可扩展性。

5.redis cluster的通信机制,说一下蜂巢

基于goosip,具体的不了解,这一段就跳过了。

6.mysql innodb 以及mongodb的索引结构

b+树,简单讲了下。这一题就结束了。

7.rr级别如何防止幻读

这一题我听错了,听成了rr级别为什么要防止幻读。所以回答偏了。就说因为rc级别不会有 LostUpdate问题,但是rr级别由于mvcc版本会出现,rr作为更高等级级别必须要处理该问题,所以使用锁来处理,但是快照本身不能解决write skew,所以并没有解决幻写,某种角度来说也没有完全解决幻读。后面发现好像回答方向错了,所以还是简单提了下快照读,当前读,间隙锁,行锁之类的东西。这一题讲的有点久了,失误失误。

8.synchronized原理,讲一下底层实现

一开始我也就标准的说了下锁升级的过程,也说了mutex lock。最后面试官问到比较深,问我moniter里面啥内容,我就记得waitsets,entrylist,owner,count这几个,然后说了下,Java基础就这么结束了。

9.除了zk你还用过其他注册中心吗?之间有什么区别

nacos,eureka,consol。有的是cp,有的是ap。注册中心一般走ap就够了。简单说了下原因

10.算法

开始出的是,最小编辑代价。一看是较难,我担心做不出,要求换了一题。换成了二叉树之字形遍历,由于紧张,结果写了10分钟。尴尬的一笔。

2面

1.说下项目

这回面试官比较关注服务器的数量,qps之类的东西。这些我都记得,不过项目整体比较挫。面试官也就不深问了,直接进入八股文环节。

2.会什么语言?说下jvm吧。

我只会java,哈哈哈。所以面试官就问java了。jvm问的还挺深,什么tlb,逃逸分析,栈帧里面有什么,还好去年看过全都防出去了。

3.说下metaspace和permGen。

本来信号就不好,还说英文,我听了几遍才知道问的是元空间和永久代。简单说了下。

4.元空间中创建对象会不会开辟物理地址内存

这tm问的是什么?我题目都不太懂orz

5.system.gc()一定会触发gc吗?和full gc有什么关系?

不一定。该题回答的比较朴素。哈哈。java就这么结束了

6.redis的aof文件过大怎么处理,怎么解决,开启aof的方式有几种?了解rewrite命令吗?

由于不了解这一块儿,几乎团灭了。redis还算是我的强项,结果居然败的这么惨

7.kafka。。。

回答没用过(其实用过,但是好多年前的事情了,所以就直接说没用过,简历上只写了rocketmq。)

8.用过什么mq,说一下rocketmq的消费方式,什么是死信队列

只用过rocketmq。集群和广播,面试官问只有这两种吗,我说是啊。然后大家一阵尴尬。 死信队列简单讲下就结束了。

9.说一下exchange。。

回答说我没用rabbitmq(其实我用过)。面试官原来前面听错了,以为我用过的是rabbitmq,吐槽说难怪消费方式回答只有两种。

10.ack机制,offset何时位移,broker复制原理

作为mq白痴,基本回答的都是浅尝即止。其实我activemq,rabbitmq,rocket,kafka都用过(毕竟跳槽多)。但是mq确实是我的弱项,唉,这一块儿面的我直接心态崩了,当时心想要挂要挂。

11.mysql索引优化没有走对是什么原因

终于又问我擅长的了。说了下优化器的策略,面试官说不是想问这个,就问我explain,然后我就把explain的字段都说了一遍,面试官说还是理解错了。然后说算了这题跳过,有点小尴尬

12.explain语句会执行sql吗

不会,优化器就结束了。所以rows会有误差。

13.mysql两段提交

说了下binlog和redolg以及分组。说实话,问题直接就说两段提交,不熟悉的人可能都不知道问的是啥啊

14.说下undolog,是不是只有rollback才会触发undolog

基于回滚保证原子性。由于innodb的锁是锁住索引,所以更新主键之类的的时候,原数据也会保留,所以更新后微commit前一条数据会变两条。 在commit的时候会回滚掉原数据,这个场景有点绕,但是我觉得我应该没回答错。

15.算法

字符串数组中的字符能否拼接成为某个字符。由于不是牛客原题,当时心态又比较崩。所以这题算然不难但是最后没写出来没走通用例orz。

3面

1.java创建一个网络io流。会有什么操作,基于java底层或者网络或者操作系统说一下。

这块我java就简单了下(因为据说字节哪怕面的是java,也很可能做go,所以感觉多少点语言之外的可能好一点)。主要还是说了操作系统和网络。比如ringbuffer,dma,软中断硬中断之类的。

2.零拷贝说一下

就简单说了下sendfile和mmap。此外提了句senfile比较类似于网络中的对等概念,然后转到了网络

3.说一下ftp和http的区别

不了解ftp,跳过

4.文件下载一般用什么协议,udp还是tcp

udp用的多一点,两个都可以。udp主要nat穿透的话打洞容易,这一题过。

5.close wait和time wait有什么区别

这两个我回答的时候刚好说反了,哈哈哈

6.怎么保持长链接,为什么需要长链接

keep-alive。不然每次链接都要创建fd,浪费资源开销。

7.日志海量收集

开始的时候没听懂问什么就说日志用kafka啊。最后他提示多台机器,我就说mapreduce,简单说了下mapreduce,就结束了。

8.你说的主要是离线处理,如何实现实时的呢

流处理的话,flink,spark都没用过,所以不强答了(我简历也没写我会大数据啊。怎么问这个orz)

9.算法

给出一串字符串,写出选取三个字符组合出来的所有可能。这一题是唯一一题白板,不需要运行。(这题看到我就想用dfs加回朔,但是问了下面试官说固定只选三个,我就傻傻的决定写三层for循环,写完后面试官看了一下说你就写了三层循环啊,我说嗯)

腾讯

1面

1.说一下mysql的悲观锁乐观锁实现

乐观锁版本号加自旋。悲观锁就是slect for update或者 share mode

2.java里面是怎么实现的呢

悲观所主要是synchronized,走的操作系统mutex,又讲了一遍锁省级。乐观锁就是cas,底层是cpu指令。又说了下unsafe相关的内容。

3.如何取舍乐观锁悲观锁场景

当时面试心情好,就说了大实话。场景取舍类似于上厕所。小号就是乐观锁,毕竟排队一会儿就能等到,配合自旋等待就行了,如果使用悲观锁上下文切换(从厕所走到工位)花费的时间不划算。大号就是悲观锁了,毕竟等待的时间一般会很长。二者取舍就预测是否发生竞争,或者竞争的时间长不长。

4.说一下concurrenthashmap怎么实现。1.8比起1.7有什么优化

cas+synchronized,1.7则为分段锁。另外优化了寻址算法和hash算法(具体说了下两个公式)。(ps,最重要的红黑树没说,不过感觉不要紧啦)然后说了下怎么计算总数。扩容的步骤。

5. concurrenthashmap和hashtable的区别

一个最终一致,一个强一致。前者读的时候不加锁。

6.问一下网络吧。三次握手过程,能不能改为两次

经典八股文。ack,syn,半链接这些说一下就可以了。不能改为两次,如果没有中间消息丢失在没有超时机制的情况下就会产生网络的死锁。(不过终于到了我最擅长的网络啦,之前除了字节三面就没人问我网络,不愧是腾讯,嘻嘻)

7.四次挥手说一下,能不能改为三次。为什么要等待2msl

挥手过程又是八股文。可以改为三次,只要服务端开启延迟发送,第二第三步就可能变成一步。2msl是为了保证序列号不紊乱,不产生脏数据。顺便说了下序列号怎么产生的。

8.tcp的一些八股文,校验和,滑动窗口,拥塞控制,流控,nagle算法

又是基础八股文,tcp最大的缺点也就在流控了。流控还要维护整体网络,正常人一旦页面读取失败肯定会疯狂刷新页面啊。怎么可能等待一段时间再刷页面呢。

9.https加密过程

这一题我说太多了,从seesionid,sessionticket到加密套件的四个字断含义,加密套件只有两个算法需要填写,而只有一个算法需要填具体值。还有服务端是否需要发送证书,客户端是否需要发送证书。不同加密算法 ECDSA和RSA中间的过程有什么不同,讲到一半就感觉很累,不想讲了。越讲越快。

10.ca证书如何验证

标准八股文,就一般证书sha1加sha256验证证书完整性。还有就是最重要的密码套件中的算法怎么用(一般就是rsa和sha256)。又讲了下证书链,多级证书。还有openssl的pem转crt等等。什么是自签证书(diss了一下12306,哈哈)。到这里网络就结束了

11.说一下redis的数据结构,zset怎么实现的

基础的5个加布隆过滤器,hyperloglog,geohash之类的。zest和字节一面说的一样。

12.zset怎么实现排名

span字段

13.布隆过滤器怎么实现的,能否有删除功能

bitmap多个hash,增加计数器功能就能一定量实现删除功能(删除这块儿面试官不知道,所以听完有点懵逼,说自己之后在想一下我说的话)

14.数据库的事务隔离级别,各基于什么方式实现

我三家公司一➕用的orcale一家用的pgsql,一家用的mysql,所以我就老老实实三个数据库全都说了一遍。面试官估计对pgsql的ssi很感兴趣,我赶紧说那个太学术了,我解释起来有点难就糊弄过去了233

15.常见的索引结构

lsm树——rocksdb,leveldb ; b树——mysql的innnodb,mongodb ; hash索引 —— mysql的menory,innodb。 倒排索引 —— es,sloar。还有全文索引,r树。

16.mysql的锁,锁的具体使用

主要就是行锁,表锁,页锁。然后问其他分类呢,我就说x锁,s锁,ix,is。然后又问我别的分类,我就说行锁,间隙锁,邻间锁。在具体的就是innodb我记得有四个锁,名字记不住哈哈。至于sql具体的使用,有个锁升级降级策略,那个太绕了,简单说了下面试官就放过我了。

17.mysql的组件

八股文,就强调了一句新版本已经没有缓存了。面试官投来赞许的目光,嘻嘻

18.聚集索引说一下

就索引会存全部数据,按顺序存储之类的。另外聚集一定有唯一性约束。所以不能走change buffer

19.mvcc

纯八股文

20.说一下b+树吧,为什么innodb不像redis那样使用跳表。

因为redis几乎是纯内存,不像mysql要刷磁盘,mysql要保证层级尽可能的低,不然影响性能。

21.说一下redis的主从复制过程

八股文,不过怎么又绕回redis了,汗。

22.一致性哈希算法说一下,具体扩容过程。

主要解释了下slot就结束了,具体扩容过程不了解。redis到此问完了。

23.说一下java的垃圾回收器吧,有什么优缺点

说了zgc,香浓多,g1,cms。面试官主要问了g1和cms,然后问了优缺点又问了使用场景,由于很久不java刷面经了,场景这块儿差点没说上来。java到此也就结束了

24。cglib和jdk代理的原理

前者操作asm字节码,后者是继承proxy类。说了点具体源码,面试官就让过了。

25.算法:大数加法

三分钟左右写完过了。然后讲了下思路。

2面

1.说项目,项目中遇到什么困难,有没有技术突破

项目很弱,没啥说的。困难都在异地沟通和管理上,技术突破讲了下同事那hashwheeltimer+zk实现的延迟任务。

2.设计微信朋友圈

基础三张表之外,就是cdn加速啊。微信的南区北区。ssl3.0。lamport算法保证时间啊。三天可见这种放在手机客户端做过滤之类的东西,分组如何实现。反正就是按照自己的想法设计。说了10分钟。

3.算法题- 目标和

三分钟结束

3面

1.项目

就扯了10分钟。

2.算法- 最长的回文子串

动态规划代码比较多,所以多写了会儿,五分钟左右吧。

百度java岗 面经(社招)

作者:我真的好想拿1个offer 链接:https://www.nowcoder.com/discuss/667468?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

说一下 jvm

说一下 Java 类加载机制

说一下 volatile 关键字

Volatile 怎么保证可见性和有序性的

单例设计模式里面的懒汉模式的双重校验,为什么要用 volatile 修饰,如果不用 volatile修饰

多个线程去操作,会有什么问题

说一下线程池吧

说一下 https 怎么保证数据的完整性

说一下 redis 的数据类型

说一下 redis 的持久化

Rdb 快照会影响目前线程执行任务嘛?(BGSAVE 用子进程操作,不会影响)

说一下 redis 的淘汰策略(LRU):

你知道 redis 的 lru 怎么实现的嘛?(不太会)

普通的 LRU 底层,双向链表+hashmap

算法题:旋转数组找最小值

将一个链表向右旋转 k 个数

百度二面面经:

  1. 说一下 Java 的特性,封装继承多态,多态是什么?
  2. 说一下 jvm 的内存模型,垃圾回收
  3. redis 怎么设置分布式锁
  4. 说一下数据库索引
  5. 说一下 redis 和 mysql 的区别
  6. redis 为什么快
  7. Java 的锁的实现方式
  8. TCP 和 UDP 的区别,TCP 三次握手
  9. 说一下 DNS 解析服务
  10. 我们现在的视频是采用什么协议进行传输的
  11. HTTP 是无状态的,怎么保持他的状态
  12. 说一下排序算法,1T 文件怎么排序,
  13. 大顶堆或者小顶堆的插入时间复杂度是多少
  14. 10 亿个数字找最大的 500 个(建立一个容量为 500 的小顶堆,每次来一个数字与堆顶的数字比较,如果比他小,就不要,否则就插入)
  15. 说一下四次挥手
  16. 说一下滑动窗口
  17. 短连接和长连接了解吗?

字节跳动后台开发岗社招面试题目分享

作者:超越妹妹保佑我有offer 链接:https://www.nowcoder.com/discuss/667474?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

说一下计算机网络的七层模型

TCP 和 UDP 有什么区别

说一下常用的 I/O 模型

说一下 Java 中的多线程和操作系统中的多线程有什么区别(不会)

线程池有哪些参数,如果让你自己实现一个线程池,你会怎么实现(不会)

算法题:大数相乘 大数相乘要求调通,后面上leetcode 才发现自己这道题根本没有做过。。。所以浪费了很多时间,反问环节说算法还有欠缺。

TCP 保证可靠传输的机制

线程进程,怎么进行上下文切换的,进程切换的过程?中断?谁去执行中断呢?

讲一讲内存分页,怎么进行内存分页

100 个 0~1000 的正整数,怎么找到第一个缺失的数

两个链表交叉,怎么找交叉点

已知rand(5)={0,1,2,3,4,5},怎么生成 rand(7)

一个1g 的数,空间复杂度最小找最小的 10 个

一个10g 的文件,内存空间 200M,怎么按照出现次数排序。考虑内存。。

说一下hashmao,线程安全的 hashmap

说一下Java 中的锁是怎么实现的

算法题:

1、找一个数字在非严格递增数组中的位置,比如 234456 找 4 出现的位置返回{2,3},如果 没有返回{-1,-1},因为不太确定先用了二分然后用了中心扩展法,被吐槽时间复杂度太高, 后面说了一下单纯二分找左右边界的方法

2、链表翻转的递归算法,不会递归的写了非递归,后面尝试递归失败了

问了很多我的知识盲区,一直在问框架和操作系统,但是真的不怎么会

算法题:k 个一组翻转链表,没有撕出来

计算递归的时间复杂度

说一下OSI 模型,TCP/IP 模型说一下每一层的协议:应用层:HTTP FTP DNS SMTP

传输层UDP/TCP

网络层IP

DNS 是基于传输层的什么协议的?

TCP 和 UDP 的区别?

TCP 怎么保证到达的数据是有序的?

算法题:

1、三数之和

2、有三种不同价格的商品,你需要取其中的 k 件,请写一个函数计算所有可能得到的价格

猿辅导 java岗 社招面试的技术题目汇总

作者:无敌哥大大 链接:https://www.nowcoder.com/discuss/667478?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. JDK JRE JVM 的区别?

JVM 就是我们常说的 java 虚拟机,它是整个 java 实现跨平台的 最核心的部分,所有的 java 程序会首先被编译为.class 的类文件,这种类文件可 以在虚拟机上执行,也就是说 class 并 不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行。

JDK = JRE+Java 开发工具

JRE = JVM+核心类库(libs)

JVM 是用来执行字节码文件的

  1. 浏览器输入一个网址会发生什么变化?
  2. 详细说一下DNS 域名解析服务器?DNS 用的是什么协议(UDP)
  3. TCP 三次握手,那四次挥手呢?为什么要四次挥手?
  4. TCP 怎么保证可靠通信?

超时重传和确认机制

  1. TCP 和 UDP 的区别? TCP 是面向连接的,TCP 传输的是字节流,TCP 只能点对点,保证传输的可靠性 UPD 不是面向连接的,传输的是报文,可以一对多,多对一,多对多,提供尽最大努力交付 的

  2. 进程和线程区别?

  3. Spring 常用注解?

  4. Spring 事务传播机制?(不知道)

  5. Spring 事务隔离级别?(只知道有五种)

  6. OSI 分层模型

  7. TCP/IP 分层模型?

  8. 网络拥塞一定会导致丢包吗?为什么?

  9. ArrayList 中删除值为指定的数,能够直接 remove 吗?会有什么问题(如果直接 remove, 比如remove 了位置为 0 的元素,则后面的元素会前移,之前的 index 为 1 的 index 就变成 了0,所以会有问题)

算法题:

有三台服务器,分别是一定容量,也就是权重,如果来了若干个包,怎么分配让每 个服务器处理的包的数量和权重成正比?可以把权重相加,比如第一个为10,第二个为 20,第三个为 30.那么加起来就是 60.来一个 包,rand 一下产生一个 0-1 之间的小数,再乘以 60.如果落在 0-10 就分配给第一个服务器, 如果落在10-30 就分配给第二个服务器,如果落在 30-60 就分配给第三个服务器。

就有点大数定律来求概率的意思,当时没有想到这个方法。。。

哔哩哔哩 后台开发 社招半年经验面经

作者:无敌锦鲤附体王 链接:https://www.nowcoder.com/discuss/667481?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面(约 42 min)

  1. 聊项目
  2. 事务的 ACID,说一说概念和实现(说了 MySQL 相关的)
  3. 事务的隔离级别说一说,每个级别的问题?MySQL 默认是哪个隔离级别
  4. 除了 Java 还了解什么语言(C/C++)
  5. C/C++ 和 Java 的区别?(有点紧张,居然忘记说自动垃圾回收了 )
  6. Full GC 的概念?
  7. GC 算法
  8. Java 标记存活对象使用的是什么算法?
  9. 栈和队列有哪些应用场景?
  10. JVM 的堆和栈分别存什么东西?
  11. 一个静态对象(static)的存储位置?
  12. 手撕算法
  13. 二叉树按前序序列化
  14. 数组按层序反序列化(一开始把面试官的意思理解错了,以为这题还是序列化 )
  15. 反问环节
  16. 我的知识储备还有哪些地方需要补全?

二面(约 50 min)

  1. 聊项目
  2. Kafka 如何保证全局有序性?
  3. Kafka 如何保证高可用(扯了一下 Kafka 的副本机制,leader 选举
  4. MySQL 是怎么解决幻读的?
  5. MySQL 索引的底层数据结构?
  6. 哈希索引的局限性有哪些?
  7. InnoDB 为什么用 B+树而不用平衡二叉树?
  8. 如果索引全部加载到内存中,平衡二叉树和 B+树哪个更优?(答了 B+树)
  9. Java 内存模型的概念?
  10. 可见性的概念?
  11. 指令重排序说一说
  12. 缓存一致性模型?(没听说过……)
  13. 常见的 Happens-Before 能说几条吗?(这个真记不得)
  14. GC 算法
  15. G1 收集器和传统的收集器有什么区别?(答了内存划分的区别和选择回收区域的策略)
  16. G1 分代吗?(记错了,答了不分代)
  17. IO 模型说一说,NIO 底层是 OS 什么函数?(epoll)Reactor 模型了解吗?(不了解……)
  18. 手撕算法
  19. 二叉树剪枝:节点值要么 0 要么 1,要求删去全为 0 的子树
  20. LeetCode 221(这题一段时间以前刷过,但是一开始想错了,在面试官提示之下算是写出来了)
  21. 反问环节

猿辅导 java岗二面面经 (社招)

作者:锦鲤美女姐姐 链接:https://www.nowcoder.com/discuss/667487?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

二面:

面试官稍稍迟到了一段时间

1.项目相关,个人项目是在美团点评做的流处理项目,简单讲了一下逻辑和处理超时数据的

方法。

2.开始聊基础知识相关

(1)volatile 关键字(内存可见性,防止指令重排等)

(2)JVM 结构,什么时候会 OOM。

(3)如何在 mysql 里面生成一个事务死锁(感觉自己答得不好)

(4)内存的管理(段式,页式,段页式。楼主这里把页式和段式特点搞错了)

(5)网络模型,介绍下各个层的协议

(6)如何把 UDP 变成可靠的

(7)os 进程通信方式哪几种

(8)kafka 和 rabbitmq 的结构有什么不同

(9)堆栈的区别

(10)场景题,

3.mysql 索引数据结构,事务隔离级别,解决幻读方式

4.redis 分布式锁流程,如何解决缓存雪崩问题

5.dubbo 用到的协议,http 和 dubbo 协议的区别

6.zookeeper 中的节点类型,服务端宕机后 zk 发生的变化

7.http 和 https 区别,握手方式,加密方式,如何加密

8.http2.0 和 http1.0 区别,http2.0 可以推送弹幕消息吗

9.java 线程池,拒绝策略

10.保证线程安全的方式,CAS 优化,AQS,以及 AQS 是否可以实现非公平锁

11.JVM 内存模型,分代收集算法,什么时候分配在栈,什么时候分配在堆,内存泄漏出现

做题目

1.通过无向图,确认三角形的个数(A-B,A-C,B-C)代表 ABC 可以形成三角形。(感觉自己

算写出来了,可能时间复杂度不理想)

2.借助数组实现小根堆。这个就是我凉的基本原因,还是自己数据结构没有复习透,忘记了

如何实现小根堆,最后没有写出来,很对不起面试官的提示。

社招|快手开发岗一二面面试技术题目

作者:牛牛牛比哥哥哥 链接:https://www.nowcoder.com/discuss/667492?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. 自我介绍
  2. 做了哪些工作,收获,如果离职了你怎么把你的工作接给下个人,项目文档一般都写什么
  3. 抽象类和接口的区别,什么场景使用抽象类比较好
  4. new Integer(1) 和 Integer.valueOf(1)的区别是什么
  5. 索引是什么,索引为什么快
  6. 主从数据库的好处
  7. Linux 介绍一下,用 Linux 干过什么事,用过哪些指令
  8. 接口设计的幂等性
  9. 说一下springIOC
  10. 介绍一下redis,为什么用 redis,你项目中 redis 用来干什么
  11. redis 数据类型
  12. redis 持久化是什么,持久化的方式都有哪些
  13. redis 的内存淘汰策略(回答 lru,成功埋坑)
  14. http 的状态码都有哪些,5 开头的状态码表示什么
  15. 观察者模式和发布订阅模式的区别
  16. 单例模式都有哪些实现方式
  17. 微服务了解吗
  18. 算法题:
  19. 手撕lru
  20. 对多态的理解。
  21. 多线程怎么搞?Thread,Runnable,线程池。
  22. HTTP Get 与 Post 区别。
  23. HTTPS 聊一下。
  24. 对JVM 的理解。这里谈到了编译的问题。
  25. 聊一聊JVM 的编译怎么搞的?
  26. 聊聊熟悉的垃圾收集器。
  27. MySQL 事务,隔离级别,隔离级别的实现方式。
  28. 进程线程区别。
  29. mysql 处理死锁机制是怎么样的
  30. mysql MVCC
  31. 线程池的参数理解
  32. HashMap
  33. zookeeper 中的节点类型,服务端宕机后 zk 发生的变化
  34. http 和 https 区别,握手方式,加密方式,如何加密
  35. http2.0 和 http1.0 区别,http2.0 可以推送弹幕消息吗
  36. java 线程池,拒绝策略
  37. 保证线程安全的方式,CAS 优化,AQS,以及 AQS 是否可以实现非公平锁
  38. JVM 内存模型,分代收集算法,什么时候分配在栈,什么时候分配在堆,内存泄漏出现的场景

vivo面试题目分享~java岗 社招

作者:中华大哥哥 链接:https://www.nowcoder.com/discuss/667577?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

1、HashMap

底层结构,什么时候扩容,为什么负载因子是0.75等

2、ConcurrentHashMap

底层结构,1.7和1.8有什么不同,为什么是线程安全

3、线程池的创建

七个参数,核心线程数和最大线程数根据什么设置

4、MySQL默认的隔离的机制,怎么解决幻读的?

5、Spring中AOP的实现原理

6、一般什么场景用AOP

7、Redis用于排序的数据结构

8、ZSet底层是怎么实现的

9、Redis实现分布式锁

10、setnx和过期时间分开两个语句设置会出现什么问题

11、还了解哪些分布式锁的实现

12、项目的代码结构

各层之间是怎么调用的(一下忘记忘记了),实体类什么时候调用

13、事务怎么用,是用在哪一层

14、深挖项目功能点,遇到什么难处,解决方法是什么

二面

1.java 创建线程的方式,runnable和callable 区别(参数不同)1. java线程的状态有哪些;线

程的几种状态

2说一下公平锁和非公平锁的原理;

3锁有哪些

4问了如何保证多线程通信

5 CAS 的原理给我讲一下,他是怎么保证内存的可见性的。CAS会产生什么问题

6多线程如何保持同步?

7linux中如何查看CPU负载top

8.protobuf 了解不,grpc 了解不,用的什么协议,HTTP2和HTTP1 区别,websocket建立连

接过程

9.RPC你了解过吗?

10 排序算法有哪些,简述冒泡和归并排序,冒泡算法的优化,讲讲归并排序,冒泡的优化知道

吗;回答相等不交换,还有flag做已排序标志的优化;直接插入排序,写一下伪代码或者说

一下思路,插入排序,时间复杂度

vivo 后台开发岗面试经验分享

作者:UMRsama 链接:https://www.nowcoder.com/discuss/667581?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

1 OSI七层和TCP/IP四层 2 TCP,UDP,HTTP的报文格式(我懵了)

3 TCP,UDP的区别,为什么TCP 是安全的,TCP三次握手四次挥手

4 HTTP的长连接是怎么做的

5 堆排序原理

6 JVM内存分布

7 set,list,map(线程安全的map,map怎么实现之类的)

8 线程创建,线程池参数

9 linux命令

10 分布式事务,CAP定理,有没有使用过相关的产品

11 事务的ACID 12.一个手机应用要更改数据库,它的底层是怎么实现的? 13.程序,进程和线程的区别?举例形容。

14.什么时候情况下要用多线程?

15.进程之间怎么通信的?

16.一个手机应用程序里面的进程和线程分别是怎么进行的?

17.快排

18.字母排序

19.每天花在研究方向上的时间?

20.解释一下图像处理高斯滤波小波的原理

21.滤波器原理,卷积核之类的

22.清晰度最高的图片格式哪一种?

23.jpg 格式的编码前十位是什么?

二面

1、java线程的状态有哪些;

2、wait和sleep的区别;

3、wait和notify的使用场景;

4、介绍一下volatile以及原理;

5、介绍一下synchornized以及原理;

6、lock和synchornized的区别;

7、介绍一下AQS;

8、说一下公平锁和非公平锁的原理;

9、hashmap为什么线程不安全,如何保证线程安全,就扯到concurrenthashmap

10、concurrenthashmap1.7和1.8的区别;

11、cas操作是什么,以及可能出现的问题;

12、输入一个url后的过程;

13、负载均衡的算法有哪些;

14、聊了一会rpc,让我说一下dubbo的组件有哪些,没说出来。。。

15、redis中zset,说了一下跳跃表的插入,删除过程;

16、说一下线程池,然后你再平时怎么用的,工作原理,有哪些重要参数,饱和策略有哪些;

作业帮后台开发岗社招面经

作者:秋招加油加油啊 链接:https://www.nowcoder.com/discuss/667604?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

上来先是个人介绍和项目经历

1 递归,写一个递归判读字符串是否回文(aba 是回文,abab 不是)

2单链表逆转,写一个吧

3 单链表有环?说说

4 操作系统的东西:进程和线程的关系

5 线程的通信(想让我回答管程之类的,给机会我不中用啊)

6 知道 time_wait 吧,有什么危害?

7 如何避免 time_wait

8 再来个数据结构吧:

9 大数乘积

10."12345678987654321"这种用字符串表示的数字如何做乘法?

11.session和cookies的区别。

12.https和http的区别。

13.Mysql事务隔离级别。

14.sql注入,以及如何防治。

15.springboot中jar包如何部署。

16.JVM的垃圾回收算法。

17.为什么要有包装类。然后就是int和Integer 的一些问题,balabala。。

18.Nginx服务器了解过嘛。

19.说说Mybatis。。。。

20.场景题:Nginx服务器日志,然后去检索某一类请求的次数。

21.场景题:分布式下设计一个id 生成器。

二面

1.输入url后发生了什么,然后具体过程各种追问

2.tcp为什么不两次握手

3.dns迭代和递归过程

4.说一下http 的状态码(401 502 504 实在不记得了)

5.说一下流量控制和拥塞控制的具体过程(各种名词记不得了,说的很乱)

6.写一个守护进程,怎么实现?(不会)

7.进程间的通信方式有哪些?

8.linux怎么查找文件?

9.linux文件夹下有很多文件,怎么查找字符串在这些文件的出现的情况

10.grep用在哪里过

11.数据库了解吗?(没怎么了解,没问了)

12.那你觉得你后台技能中最会的是什么?

13.手写快排

14复杂度 主要的技术问题就是这些了,后面还问了好多关于之前的工作经验有关的问题

作业帮 后台开发岗 一面、二面社招面经

作者:抠图怪 链接:https://www.nowcoder.com/discuss/667616?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

我一面二面其实都是主要问项目,基础知识问的不多,把除了项目有关的都列出来了

Linux常见命令,如何查看磁盘情况,如何查看线程?复制一个文件和一个文件夹的命令相

同吗。

登录的token存在哪里比较好?有关同个账号登录的问题

对Redis的了解

算法:合并两个有序列表

如果同时插入相同的东西(比如注册的时候不小心点了两次,就会插入相同的信息)如何避

免重复插入

比如同时有几百个用户同时想数据库插入相同的东西,如何防止不重复插入相同东西浪费时

间?

get和post的区别。在用户体验上get和post的最大区别,为什么大多数情况下都是用get

而非post?什么数据类型只能post传递?

如果出现了无法通过测试用例测出的异常怎么调试?

编程:输入两个日期,算出中间有多少天

二面

1,自我介绍

2,说说有哪几种数据结构,每一种具体说说在哪能用到

3,说说进程和线程的区别

4,说说进程之间通信,每一种具体说说

5,说说进程的死锁条件,如何解决死锁

6,说说数据库的事物

7,事物的隔离级别

8,了解redis么

9,mysql的两种引擎

10,7层网络协议,每一层都干嘛的

11,说说http协议

12,说说3次握手和4次挥手

13,设计模式用过哪几种,具体说说

14,gc问没问来着,想不起来了

问答环节35分钟左右,自我感觉还可以

第一题输出小于n的所有质数(前n个质数?)

第二题求给定字符串的最长回文子串

高途 社招面试经验分享(后台开发岗)

作者:谢谢谢写写写 链接:https://www.nowcoder.com/discuss/667960?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

1.自我介绍

2.做过哪些项目,给自己印象最深的项目是什么

3.用redis做二级缓存的时候如何确保高并发数据的一致性,如果有一张订单表,我要你找

到对应用户所拥有的订单,怎么找?数据库的几种事务隔离机制是什么,有哪些?有什么用?

4.Str1=“a” str2=new string(“a”)区别,虚拟机内存空间上如何体现这两个区别,这区别具体在开发中会造成什么问题,如何解决?

5.Java和C++在内存处理上有什么区别?虚拟机的常用垃圾回收机制有什么?什么时候会发生OOM错误(内存溢出错误)

6.Redis的基本数据结构是什么?

7.redis如何做持久化的?

8.给你一个场景,设计秒杀系统,假设有10件商品,先用redis去get 数量,数量-1,然后用set更新redis的数据,如果get数据为0就表示商品卖完了,这种情况安全么,有问题的话如何解决

9.redis加锁上锁的命令是什么

10.Linux awk grep命令是什么,如何用正则表达式匹配AxxxxAxxx?(正则还是用的比较少生疏了。。。)

11.讲一下在浏览器输入URL之后到浏览器出现界面的全过程,系统后面用了哪些协议

12.如果你有很多IP地址,如何找到出现次数最多的前三个IP 地址?(hashMap + heap)

13.如果你有一个100G的IP地址文件,你的机器只有5G存储空间,如何找到出现次数最多的前三IP地址?

14.如果一张订单表特别大,你会如何处理这个表格,如何优化它?

15.算法题:字符串切分+反转

16.盲人有10 双袜子,两双黑的,8双白的,如何在没人帮助下找出黑的(在太阳下晒一晒黑色更吸热)

17.你有什么问题想问我的?

作业帮后台开发岗社招面经

作者:牛客有嘻哈x 链接:https://www.nowcoder.com/discuss/668021?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

闲聊,自我介绍

int和Integer的区别,为什么有了int还需要Integer

ArrayList和LinkedList区别,各有什么特点

进程和线程的区别,联系

多线程编程,死锁检测与预防,死锁的检测手段,怎样避免死锁

讲一讲线程池,讲讲为什么很多公司对于线程池的使用非常谨慎

SQL代码书写:有一个学生信息表包含id,学号,选修课程和该课程的成绩,写一个SQL语句来查找总分最高的前十名同学。

建表过程中索引添加的规范

InnoDB的4种事务隔离级别

SSM和Spring Boot 的比较,Spring Boot 的缺点(没答上来,面试官的解释是Spring Boot封装层数过多导致的性能问题)

假如有10 亿个手机号,怎么样快速判断一个手机号是否在其中(一开始没什么好的思路,面试官一步一步从hash,二分,布隆过滤器引导到位图)

机智题:烧完一整根香需要30分钟,怎么样得到15分钟的计时,怎么样得到7.5分钟的计时

可以入职的时间,介不介意转语言,反问

一面大概40分钟左右,更多的都是基础问题,面试官人超级和蔼,没想出来的问题会先给你一些引导,面试体验极佳!

二面

聊了聊项目

算法题:把数组中奇数放在前面,偶数放在后面,并且奇数偶数都要保证从小到大,要求空间复杂度O(1)

MySQL索引结构,说说B树和B+树的区别

MySQL索引什么时候失效,联合索引,聚集索引

写一个单例模式

Redis数据结构,场景题

讲讲Java 的堆内存、GC

说说抽象类和接口的区别

浏览器输入URL地址到页面渲染发生的过程

三次握手,为什么要三次握手

算法题:找出数组中第K 大的数

去哪儿 后台开发岗 社招 面经

作者:青春记录 链接:https://www.nowcoder.com/discuss/668024?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

1.自我介绍

2.TCP的特点有哪些?

3.详细介绍一下三次握手和四次挥手

4.为什么是三次握手?挥手为什么有四次?

5.四次挥手中,处于time_wait的连接太多该怎么解决

6.介绍操作系统内存管理?逻辑地址和物理地址以及直接使用物理地址会存在什么问题?

7.JVM垃圾回收

8.mysql事务特性?隔离级别?解决了哪些问题?

9.Innodb在RR级别就可以解决幻读的情况,具体是怎么实现的?

10.int和Integer,自动拆箱和装箱底层是怎么实现的?使用包装类型会存在什么样的问题?

11.什么是死锁?死锁的四个必要条件?在开发中,如何去避免死锁?

12.算法题:数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并

且有效的括号组合。

13.算法题:给定一个包含非负整数的m x n网格,请找出一条从左上角到右下角的路径,

使得路径上的数字总和为最小。

二面

1.先自我介绍

2.JAVA中的并行框架

3.java中的一些集合类

4.java和c++的区别,各自的优缺点

5.c++指针的用法

6.java是值传递还是引用传递

7.mapreduce的执行过程

8.mapreduce如何实现合并操作

9.mapreduce执行时的瓶颈有哪些?

10.任务并行的几种方式

接着让写一个sql查询

日志表log分为id ame time

查询某用户访问过几个不同的网址(name表示网址名)

写完后面试官让优化成同一用户在不同时间点访问同一网址记为两次

算法题:

1.给了一个待排序数据,写出第一次快排后的结果

2.写一个二分查找某数

之后又问了问了解Hadoop技术生态圈吗?

反问环节

用友java岗社招一面、二面面试题目

作者:darksidewow 链接:https://www.nowcoder.com/discuss/668045?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

  1. 自我介绍一下做的项目 2.hashmap 源码相关

3.举例说明hashmap1.7 循环依赖的产生

4.arraylist 相关

5.java 异常

6.说说finally 和finalize

7.aop 你怎么使用的aop

8.spring bean 生命周期

9.spring mvc 请求执行流程

10.spring cloud 介绍一下说说降级和熔断

11.数据库三范式

12.sql 场景题

13.数据库引擎

14.innodb 什么情况下使用行锁和表锁

15.tcp 和udp 区别tcp 三次握手

16.shiro 框架

17.多线程

threadlocal

18.jvm 堆栈本地方法栈

19.java 锁volatile synchornized RentantLock 的实现AQS

  1. 有共享变量可以通过什么方式来保证线程安全

21.说一下dcl 单例模式的实现

  1. 如何遍历hashmap

23.后面问了一些前端知识jquery,vue

二面

1.Mybatis 和JDBC 编程对比

2.# 和$符号区别

3.mybatis 动态sql

4.springboot 启动原理?

5.hashmap 底层实现hashcode equals 方法不重写equals 会怎样

6.hashmap put 一个key 的具体过程

7.hashmap 如何遍历输出

8.一个 User 类,不重写equals 和hashcode 方法,那么多个user 对象put 到hashmap 中会怎么样?

9.hashset 中放入1,2,3,第一次遍历,输出的结果是2,1,3,那么再做一次遍历的话,输出结果会是什么?

10.mysql 的有哪些索引?底层数据结构是什么?

11.主键和普通索引的区别?什么是覆盖索引?

12.给定student 表,有两列,一列是school,一列是姓名,如清华大学张三,要求输出两

列school num,其中num 是对应学校的人数

13.name 相同的人怎么统计?如果经常查询school,想要建索引,要怎么建?school 太长的,要怎么建索引更优?

14.排序算法 ,说自己知道的,大概讲一下

作业帮、浩鲸 后台开发岗 社招 面经

作者:darksidewow 链接:https://www.nowcoder.com/discuss/668074?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

作业帮

  1. 自我介绍

2.int 和Integer 的区别

3.String StringBuffer StringBuilder 区别

4.TCP 和HTTP 的关系

5.GET 和POST 的关系,GET 的长度是因为HTTP 协议限制的吗(查了一下,不关HTTP 的事,

根据不同浏览器的输入决定)

6.GET 跟PUT 的关系

7.Spring IOC(控制反转,解耦)

8.Spring AOP(面向切面),怎么实现的(动态代理)

9.数据库三大范式

10.循环依赖和解决(没回答好)

11.数据库三大范式

12.varchar 和char(可变和不可变)

13.为什么三次握手,不是两次握手

14.数据库隔离等级,为什么可重复读可以解决什么问题,不可以解决什么问题

15.MYSQL 默认隔离等级,可重复读如何解决不可重复读

16.如何看待加班,以前实习有没有遇到一些问题。

17.简单工厂,抽象工厂,工厂方法。

18.如何保证TCP 传输的可靠性(校验和,分割成适合发送的大小,序列号,拥塞控制,流量控制)

19.反问。

浩鲸

· Spring Bean 的启动流程

· Spring 循环依赖怎么解决?

· Spring 事务用过吗?

· Spring 中的事务具体怎么实现的?事务怎么传播的?

· 项目中用过AOP 吗?AOP 的实现原理?

· 动态字节码技术、字节码增强技术。

· .class 文件加载过程?

· 类加载器有几种?

· 加载器加载流程?

· 为什么采用类加载器这样的机制?

· Tomcat 用过吗(以为要Tomcat 内核剖析了,吓得不轻。)?

· Tomcat 中的类加载器?

· MySQL 事务隔离级别?

· 四个隔离级别的区别?

· MySQL 默认隔离级别是什么,为什么用这个?

· Oracle 默认隔离级别?

· Oracle 和MySQL 的默认隔离级别为什么不一样?

· InnoDB 实现索引的数据结构?

· B+ 树的特点及实现?

· B+ 树和B 树的区别?

· MySQL 中的聚簇索引和非聚簇索引?一张表聚簇索引能有几个?

· 在MySQL 中加一个联合索引(a, b, c),按(b, c) 查询走索引吗?

· 加一个索引(a),查询一定走索引吗?

· 有哪些情况会不走索引?

· 代码:二叉树的非递归先序遍历

· 讲解代码思路、在遍历中每个节点被访问几次?

· 垃圾收集算法

· 虚拟机判断对象是否可以被收集?

· 哪些对象可以当做GC Roots?

· 反问

用友java前后端社招一面和两面的技术问题汇总

作者:dililidalala 链接:https://www.nowcoder.com/discuss/668144?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

1.项目的功能

2.ioc

3.aop

4.jdk 动态代理和cglib 动态代理

5.面向切面编程的使用场景

6.aop 当中的声明式事务

7.说一下事务(acid)

8.讲一下隔离性,mysql 的默认隔离级别,讲解一下可重复读(快照读)

9.讲一下自己熟悉的设计模式,讲一下懒汉式单例模式

10.volatile 和sychronized 关键字的作用

11.还了解其他的锁吗,简单介绍一下

12.sychronized 可以修饰什么,可以修饰静态方法和静态代码块吗

13.讲一下乐观锁和悲观锁

14.讲一下线程池的优点,讲一下线程池的分类和使用场景

15.详细讲一下java 的内存模型,每一个都介绍一下用处

16.讲一下java8 了解的新特性

17.lambda 表达式了解嘛,有用过吗

18.springcloud,springboot,微服务有了解吗?

19.final 关键字的用法

20.讲一下redis 的应用场景,主要是用来做什么的

21.java 中的类加载器是什么,讲一下类加载器的分类

22.分布式锁是怎么实现的

23.看过什么书,学习了那些技术

24.数据库优化,sql 优化讲一下

25.什么是组合索引

26.说一下一次完整的http 请求的过程

  1. TCP 怎么实现流量控制和拥塞避免

  2. TCP 拥塞避免是每次拥塞后发送窗口都自动再从1 开始吗?

29.Java 动态加载过程,什么时候动态加载,底层怎么实现的

30.类加载过程?

31.都有哪些类加载器,分别加载的哪些类?为什么要设置三个类加载器,设置一个的话有

什么问题?

33.Tomcat 怎么实现不同应用的Jar 包不冲突?(从Tomcat 架构回答)

34阻塞和同步的区别

以上就是一面和二面的技术问题了,除了技术题目之外,每次都有 反问的环节,还会深挖项目。

支付宝

作者:冰山Alan 链接:https://www.nowcoder.com/discuss/668256?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. 聊项目
  2. 什么程度需要分库分表
  3. 聊聊GC 算法、收集器
  4. 聊聊堆内存
  5. 正在运行的系统,缓存被击穿了怎么办
  6. 如何横向扩展你的系统(结合项目经验)
  7. Mysql为什么使用B+树
  8. HashMap底层
  9. 手写: 两个线程交替输出自己的线程名,每次输出5次,共输出3次 给定一个字符串,如何根据首字母排序,首字母一致的按下一个字母,以此类推

作者:冰山Alan 链接:https://www.nowcoder.com/discuss/668253?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. 对JVM的理解
  2. JVM的调优参数
  3. 如何查看是哪个GC比较频繁
  4. 频繁YGC怎么调
  5. RebbitMQ的原理
  6. Mysql为什么用B+树不用B树
  7. 聊聊GC
  8. 多个线程之间怎么通信
  9. 索引有什么缺点吗,所谓的维护成本是哪些

CVTE web后端一面 实习凉经

作者:SadC1ty 链接:https://www.nowcoder.com/discuss/668446?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一共面了40min,电话面

  1. 自我介绍
  2. 项目介绍
  3. SpringBoot的特性
  4. AOP 我是直接回答了AspectJ AOP还有Spring AOP
  5. AOP设计模式,描述一下代理模式
  6. 描述一下装饰器模式和代理模式的区别
  7. 为什么使用MyBatis,回答的是MyBatis的优点
  8. 项目细节(所以hxd们一定要掌握好自己的项目哦! )
  9. 面向对象,三大特性
  10. Java里的异常和错误;平时使用的工具来排查;
  11. JVM内存模型
  12. 垃圾回收算法;
  13. 了解的垃圾回收器有哪几种;
  14. 多线程的数据同步怎么实现;
  15. 常用的数据库-我答的是MySQL,常用引擎是什么?
  16. 关于索引的了解?
  17. B+树和B树的区别;
  18. 事务是用来解决什么问题?
  19. 事务的特性?
  20. 事务的隔离机制
  21. 加锁的类型有哪些?
  22. TCP和UDP的区别
  23. TCP如何保证可靠性?
  24. HTTP和HTTPS的区别?
  25. HTTPS的加密过程?
  26. 背包问题的解题思路,动态规划体现的思想
  27. 未来的学习计划

松果全部面经

作者:zhz白神 链接:https://www.nowcoder.com/discuss/668636?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

松果出行

一面

  1. 时间管理
  2. 任务管理
  3. 怎么去看源码?
  4. 怎么接触一个新的东西?
  5. 996怎么看?
  6. 人生规划
  7. 接下来的学习计划
  8. 如果朋友找你吃饭你去吗?(合理分析)
  9. 反问
  10. 评价
  11. 学软件工程还是去学基础(大佬建议先去培养解决问题的能力,拆分业务的能力)
  12. 怎么去学一个源码?(这个我是想问他的思路)
  13. 怎么去看一本书?
  14. 网忘了

总共48分钟。

二面:

rabbitmq

  1. 丢失消息
  2. 幂等性
  3. 顺序性

redis

  1. 基本数据结构+底层源码实现
  2. 持久化
  3. 缓存击穿/缓存雪崩/缓存穿透/热点缓存key重建优化/缓存与数据库双写不一致
  4. 集群原理(主从)
  5. 全量复制,部分复制
  6. gossip协议
  7. 分布式锁的实现与原理,后面三个都要讲(zk,setnx,redission)
  8. 哨兵的原理与作用

分布式事务实现方案:

  1. mq
  2. seata
  3. tcc-lcn

每一个的原理

mysql:

  1. 调优
  2. innodb与mysiam的区别
  3. B+树和各种树的区别,和为什么选B+?
  4. B+树索引原理
  5. 为什么B+树3层可以容纳2千万数据(操作系统的页方面的知识)
  6. mvcc

JUC:

  1. aqs实现与原理
  2. cas的底层实现(unsafe)与特性
  3. volatile底层与mesi的几种模式,mesi的缺点,缓存一致性,伪共享等
  4. synchronized的原理,直接将源码(对象锁,waitset,entrylist那些),锁升级
  5. 还有什么锁吗=》同步锁

JVM:

  1. 内存区域
  2. 对象创建与分配
  3. 标量更新
  4. CMS的原理
  5. 三色标记法
  6. 漏标解决方案(增量更新+写屏障,(原始快照+写屏障)
  7. TLAB
  8. GCroot
  9. G1的原理
  10. bitmap,cs,rs,ct
  11. 逃逸分析

skywalking的原理

kafka用过没

反问

1、评价

三面:

  1. 讲项目
  2. 问sentinel的原理,有什么用处
  3. seata的原理与用处
  4. dubbo的一致性hash
  5. redis的集群的原理,有什么问题?
  6. spring的生命周期
  7. juc就二面的一些
  8. 自己最熟的框架
  9. es用过没
  10. 反问

1、评价 三面面试官比较忙,问了20分钟左右吧

HR: 都是一些没营养的

虎牙 java工程师 社招 面经

作者:dililidalala 链接:https://www.nowcoder.com/discuss/668797?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

自我介绍。

项目中怎么做的服务端分页?

用的mysql 还是 oracle 数据库?

有一条sql 语句执行很慢,如何排查问题?

如何查看sql 执行计划?explain 命令的执行结果介绍下?

索引为什么能加快查询速度?

问几个Java 基础知识吧,Java 虚拟机你了解吗,介绍一下,能说多少说多少?

假设有一个String str = new String("hello world");这条语句创建了几个对象,分别在 JVM 的 哪个区域?

假设项目中需要用到线程同步,你会考虑怎么实现?

Java 中的锁了解吗,介绍一下?

什么是乐观锁、悲观锁,在Java 中分别有哪些实现类?

线程池用过吗?

如何创建线程池?

Executors 类可以创建哪些线程池?

线程池初始化参数详细介绍?

什么时候会开启核心线程以外的线程?

什么时候会用到拒绝策略?Spring 原码看过吗?

最后问个场景题,现在要查询数据库,数据两位2 千万行,使用多线程实现,你有什么思路

吗?不能重复读取,数据全部读取完之后才进行数据操作。

假设有一个线程查询失败如何处理?

hashmap concurrenthashmap

list set map

jvm 内存模型 垃圾回收等(都是一些常见的问烂的)

进程、线程结合JVM 说

mysql 事务 锁 (间隙锁 next key lock)

mysql 事务 怎么实现的 对应相关的日志来说 undo log

redo log 等

mysql 索引优化 执行计划

spring 中源码看过啥 说了下 spring aop ,ioc springboot 自动装配

redis 项目中怎么用的。。balabal 项目相关问了还蛮多

mysql 中死锁怎么解决

线程池balabala 常用线程池,平时手写线程池,参数配置(7 个参数) 平时怎么设置 的

无反问环节。

虎牙后台开发岗面经(社招岗)

作者:萨桑 链接:https://www.nowcoder.com/discuss/668855?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

Mysql 事务隔离级别,默认隔离级别是哪个

· 为什么设置“可重复读”为默认级别

· Mysql 索引有哪些

· 是不是所有情况必须用索引

· 聚簇索引和非聚簇索引区别

· 聚簇索引可能存在的问题

· Spring 声明式事务

· 说了一个场景,在一个service 方法里,有a()和b()方法,b()方法加了事务注解,a()方法

调用了b(),问调用a()是否走事务

· Java 容器介绍

· HashMap 数据结构,多线程下不安全的原因有哪些,解决策略是什么

· HashTable 和ConcurrentHashMap 区别

消息系统的表设计

Having 的作用

MySQL 索引我答了B+索引之后,面试官没问什么

Spring 源码看过吗,说一下ioc,aop 吧

hashmap、hashtable 的区别

手撕冒泡排序

数组元素有100 个,冒泡排序排了多少趟

针对hashmap,如果我有10000 个数,你会怎么设计这个entry 数组的初始长度。

ConcurrentHashMap 底层数据结构

1T 数据存的是用户访问信息,机器内存只有16G,怎么查出访问频率最高的前1000 个用户信息。

手撕算法:二叉树中序遍历非递归实现

如何设计一个哈希函数

Dictionary 知道吗,说一下底层实现

介绍一下登录的原理

浏览器根据什么原理来存储登录的状态(聊了一下COOKIE 和SESSION 的区别)

HTTP 请求的BODY 内容(这个没背下来,下来补了一下)

使用过抓包工具嘛(没有)

Spring MVC 的执行流程

项目对接支付了嘛(没有)

Nginx 缓存了解吗

限流降级,有什么办法Hystrix

springboot 相比spring,有什么改进

spring jar 包运行的原理(怎么找到main 类,MANIFEST.MF)

spring 定时任务

招银网络java社招岗一面和二面技术题目汇总

作者:沙宰曼 链接:https://www.nowcoder.com/discuss/668859?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

springboot 自动配置原理

spring 循环依赖

redis 的bitmap,hyper-loglog 用过吗

redis 过期删除策略

redis 的zset 有什么应用场景

TCP 粘包是什么?

TCP 服务端如何保证失序的包按序到达

索引为什么能加快查询效率

为什么HashMap 不用B+树?

HashMap 的查找时间复杂度?

Hashmap 链表大于8 时为什么要变红黑树?

GC 是什么时候进行的?

JVM 讲一下,哪些区,都是干什么的,垃圾回收机制

类加载机制

JAVA 的数据引用有哪些 软引用,硬引用

队列,堆栈的底层实现

JAVA 异常的机制讲一下

数据库索引B 数和 B+树的数据结构

聚簇索引非聚簇索引

数据库引擎了解吗,Innodb 和 MylSam 讲一下

java 反射class.forName()加载类和使用classLoader 加载类的区别

(Class.forName 加载类是将类进行了初始化,而ClassLoader 的loadClass 并没有对类进行初始化,只是把类加载到了虚拟机中。)

mysql 索引项目中用了哪些

redis 在秒杀项目中作用

如何保证redis 中数据都是热点数据(内存淘汰机制)

redis 集群

Mybatis 与Hibernate 有哪些不同

数据库了解吗?怎么学习的?除了MySQL 还学过什么?

事务隔离级别?可重复度怎么实现的?

varchar 和char 区别?什么时候使用哪个?

java 怎么学习的?有没有完整看过一套教学视频?jdk 用的什么版本?

lamda 表达式怎么实现的?

Spring IOC 好处?

Spring AOP

MyBatis 的$和#区别

怎么实现分页(分页工具实现,mybatis 实现)

看过什么源码?说一下arraylist。

arraylist 和linkedlist 的区别,linkedlist 是单向的还是双向的,为什么这么设计

arraylist 是线程安全的吗?如何实现线程安全

thread 源码,线程状态

23届上岸实习,总结面经回馈社区

作者:AlanWilson 链接:https://www.nowcoder.com/discuss/669220?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

网易面试(2020-11-18)

一面

Redis五种数据结构底层与C对比

SpringMVC流程,相同url会出现什么问题

会报异常,registerHandlerMethod方法上注解说明url名称相同时会抛出异常

如何保证缓存一致性

先删除缓存,再修改数据库。如果数据库修改失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致。因为读的时候缓存没有,则读数据库中旧数据,然后更新到缓存中。

可以先把“修改DB”的操作放到一个JVM队列,后面读请求过来之后,“更新缓存”的操作也放进同一个JVM队列,每个队列,对于一个作业线程,按照队列的顺序,依次执行相关操作,这样就可以保证“更新缓存”一定是在DB修改之后,以保证数据一致性

BeanFactory和FactoryBean

happen-before规则

一个线程解锁前对共享变量的写对解锁后其他线程加锁的读可见

线程对volatile变量的写,对其他线程的读可见

线程启动前的写对启动后的读可见

线程结束前对变量的写,对其它线程得知它结束后的读可见(比如其它线程调用 t1.isAlive() 或 t1.join()等待 它结束)

tcp拥塞控制

https 对称加密与非对称加密,如何防止第三方攻击

Redis RDB持节化,10GB文件如何处理

微服务理解,服务出故障如何解决

SeiverizableId

这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。

voliatle 可见性原理(lock前缀),有序性原理(4个内存屏障区别)

aop原理(chlib,jdk)动态代理和静态代理区别

判断回文链表 时间+空间+优化

HashMap原理(7和8)为啥大于8用红黑树,小于8链表

MySQL的InnoDB和MyISAM区别

索引数据结构为啥不用B树

啥时候建索引,索引如何优化(慢日志,explain字段解释)

最左前缀法则

重做日志,回滚日志

事务,隔离级别,MVCC,乐观锁,悲观锁实现,间隙锁

项目

滴滴面试(2020-12-31)

一面

Java基本数据类型

HashMap1.7/1.8

jvm内存模型

双亲委派机制

类加载机制

volatile/CAS原理

AQS机制

多线程工作原理/7大参数/4大拒绝策略

堆分代/GC算法/逃逸分析/GCROOT

对象分配步骤,TLAB

CMS原理 优缺点

MySQL Innodb和MySiam存储引擎区别

MVCC机制

事务4属性/隔离级别

undo/redo

乐观锁实现

Redis String/Hash 数据结构

List/set/arrayList/LinkedList/底层数据结构,优缺点

场景题:连续内存空间 有数组下标,如何定位内存空间

写SQL

算法:反转字符串

问实习时长,多久能来。

二面

因为实习时长原因已拒,面经就暂时没写

百度面试(2021-4.12-4-19)

一面

HTTP报文基本组成,基于无状态引处cookie和session区别,用户禁用cookie怎么办(答得token)

TCP三握四挥,三握原因,与UDP原因,TCP可靠性原因(握手链接,ack,快速重传,超时重传,流控,拥塞)

TCP与UDP区别

说说对数据结构理解,从数组,链表引申到二叉树,二叉搜索树,红黑树,B+树,B树。用hashmap和B+树和avl树做对比分析。

快排(自己提出写个非递归的),冒泡,堆排,LC。分析时间复杂度,空间复杂度

Redis五种基本数据结构,底层原理(SDS,hash,跳表)

设计秒杀(分布式锁 Redisson保证释放锁原子性,setnx保证过期时间原子性)

MySQL存储引擎,InnoDB,MyISAM对比,优缺点

Innodb的索引数据结构,聚簇,非聚簇

二面(凉)

400亿文件找数字存不存在(位图)

http渲染过程(面试官***)

x的n次方(快速幂,面试官还是***)

http状态码

网易面试(新闻大数据平台)

一面

  1. 项目(token与session,cookie异同,禁用cookie怎么办,为什么用token)等相关流程问题,MD5单向加密过程,RSA双向加密过程
  2. MySQL索引数据结构,聚簇,非聚簇,二级索引是聚簇还是非聚簇(非聚簇,因为聚簇索引有序排列)
  3. Java基本类型与包装类型,分别存在哪,Java值传递问题(面试官下了一个套说值传递和引用传递,实际上Java只有值传递,引用传的是地址值),给了个场景,一个方法接受基本类型参数和引用类型参数,在方法内对元素进行了修改问会不会改变原值
  4. Java线程池,阻塞队列,Java的线程和OS线程区别(我回答的对内核级线程的映射)
  5. 场景题:设计一个优先级队列(用的小顶堆,大于堆顶的优先级直接放入堆,删除堆顶元素)
  6. syn泛洪攻击(我说的采用tcp_synccookie解决)
  7. B+树与B树区别
  8. 说说你熟悉的数据结构
  9. 进程间通信
  10. redis跳表数据结构,时间复杂度,为什么不用红黑树,有哪几种类型
  11. bitmap应用场景,布隆过滤器原理,一定能查到元素存在吗(不能,hash会重复)
  12. string类型和c进行对比分析
  13. redis为什么快
  14. 你是如何做MySQL调优的
  15. 内核态与用户态区别
  16. LC写题 提示了一下,直接秒 100% 最优解
  17. 反馈:基础比较好,有点震惊到了我。但是没有hc了,我去帮你争取一下

【已oc】美团平台部门后端开发面经

作者:踏歌1998 链接:https://www.nowcoder.com/discuss/669272?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

具体部门就不说了,用的语言是java(无疑问...),面试官人都挺好的,包括Hr小姐姐,最终还是去了字节,只能说可惜...

一面(100分钟)

自我介绍

没看我简历,问我要从哪里开始聊起,我说线程池..(埋雷)

线程池

线程池的四组成,七参数

四种常见的线程池

cachedThreadPool的工作原理(我说了线程池的工作流程)

超过keepAliveTime的线程如何了

HashMap

hashmap在jdk1.7和jdk1.8的区别(链表和红黑树、扩容时的头插和尾插)

在多线程下头插法引起的环化

红黑树的数据结构,如何维持相对平衡

concurrentHashMap线程安全,分段式锁

多线程

ReentrantLock和synchronized的区别

ReentrantLock的实现(AQS)

AQS中A代表什么,S代表什么(不清楚..我只知道实现原理..)

什么是公平锁,用什么数据结构实现

什么是线程安全

CAS

如何解决ABA问题(增加版本号)

版本号是什么类型的

Volatile是什么,有什么特性(可见性、非原子性、禁止指令重排)

Happen-before原则

JVM

JVM内存模型

CMS和G1的区别

标记清除算法优化?(不就是改进成标记整理吗)

MySQL

Mysql中有哪些索引(B+树索引、哈希索引)

两者的区别,为什么不使用哈希索引代替B+树索引

范围查询怎么走索引

聚簇索引和非聚簇索引

计算机网络

三次握手中为什么进行第三次握手,如果只有两次会出现什么问题

如果服务器端有很多time-wait,可能是什么问题,怎么优化(我答可能是时间设置过长或受到了攻击..前者可以通过优化参数解决)

https加密原理(对称加密和非对称加密)

CA证书的作用

操作系统

线程、进程和协程的区别

进程之间的通信方式

线程之间的通信方式

场景题:如果CPU占用率过高,怎么查看(linux top指令),可能是出现了什么原因

Redis

Redis为什么速度那么快

Redis有哪些数据类型

zset使用的是什么数据结构(跳表)

跳表是怎么实现的(答成多链表层级查找了,正确的应该是在链表上建多个索引查找)

数据库题 统计出在一天内订单超过2的用户金额,主键是一个自增的值,有userId,amount,starttime,endtime等 问了springboot做的项目发布了么?

还问了知道RPC框架吗(因为没用过,只能说知道,但是不是很清楚)

算法题 力扣54.旋转矩阵,要求输出字符串(秒了,面试官问之前是否写过-。-)穿插的问了一下StringBuilder和StringBuffer的区别 其他 反问:之前有几个纠结的点希望他能给我解答

闲聊:研一的课程有哪些?研究方向?学java多久了?一周能实习多久?怎么体现你的学习能力很强?

后记:问的比较深,问到我答不上来/答的不准确为止…第二天18:00前发二面邀请

二面(60分钟)

(记的不是很清楚了,全凭回忆)

自我介绍

java 如果两个线程一起操作,如何保证线程安全

问了解哪些原子类

countdownlatch实现

Try..catch..finally应用在线程出现问题时解决计数器减一问题(与前一问连着)

数据库 数据库索引有哪些,区别(老八股了)

Mysql操作会哪些(怕直接出sql题,就说只会一点点简单的..)

事务的ACID分别是什么

事务的四个隔离级别

从读已提交到可重复读是优化了什么

数据结构 数组和链表的区别

链表在java中有哪些实现(LinkedList/ArrayList),两者区别是什么

算法 口述链表逆序的过程

问了排序知道哪些,按照时间复杂度说了一下

问了快排的时间复杂度和空间复杂度,并口述快排的思路

算法题:力扣78.子集

后记: 第二天15:00左右 Hr面, oc

一天后发了offer。效率还是很高的….

许愿字节三面!!!附后端面经

者:xyx... 链接:https://www.nowcoder.com/discuss/669391?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

字节跳动后端

一面

  1. 堆和栈的区别 以及在操作系统中堆和栈的具体使用
  2. Unicode编码 utf-8 utf-8和utf-16的区别
  3. 查询总分成绩为前三的学生姓名和总分
  4. 一个用户多个订单如何设计
  5. http状态码 https ajax json格式 幂等
  6. python字典的底层格式
  7. DNS解析过程
  8. 想要name查询过快怎么办?一级索引和二级索引之间是怎么作用的
  9. python中is和==的区别
  10. 死锁如何避免死锁
  11. 设计一个线程池
  12. 数据库索引以及为什么要用这种索引
  13. https 数据传输中使用什么加密以及为什么要使用这种加密
  14. http中传输图片是怎么传输的 什么情况下用http,什么情况下用https
  15. 304状态码中除了if modified还可以使用什么?
  16. 算法题:计算字符串中的回文子串个数

二面

  1. TCP三次握手 TCP为啥不能两次 举个例子
  2. TCP如何保证可靠传输
  3. 进程通信、线程进程区别、什么用线程什么时候用进程(举例子
  4. 进程上下文切换、为啥进程开销大
  5. 中间还有很多细小的点,记不清了,举例子真的举不出来啊(哭、 算法题:给你一个Linux系统里面的文件路径,输出正确路径,如/a/a/./..输出/a 哎,愁死了,许愿一个三面!!!

蚂蚁金服后台开发岗一面二面技术问题汇总(社招)

作者:darksidewow 链接:https://www.nowcoder.com/discuss/669466?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

1.如何让一个线程优雅地退出

2.外部线程调用该线程的 interrupt()方法注意:如果线程处于阻塞状态,只会抛出interrupt 异常,而不会设置中断状态,所以捕获异常后要做相应处理

3、检测到中断状态,作相应处理,(释放资源,或者进行完当前任务)

4.面向对象,你自己是怎么理解的

5、设计模式知道哪些

6、自己在项目中,设计模式使用到的有哪些

7、多线程编程,你的项目中有哪些运用到了

8、mysql 索引,哪些该建索引,哪些不该建索引

9.那你自己在使用的过程中,对索引有哪些考虑呢?

10.服务器端出现CPU100%,如何去排查问题

11.linux 的命令,你自己使用过的有哪些

12.你知道的通信协议有哪些?

13.tcp 和udp 的区别

14.http 和https 的差别

15.说几个你自己知道的加密算法(只让说了名字,没深入问)、

16.如何理解http 和websocket 的区别

17.websocket 持久性连接,连接时间可以好几天

18.http 是客户端发起请求,服务器端应答请求,客户端主动,服务器端被动

19.websocket 服务器端和客户端都能主动发起交易

20.session 和cookie 分别是什么?

21.重要的数据可以放cookie 吗

22.线上问题,你遇到过什么?具体自己是如何去排查问题的?

23.说下乐观锁和悲观锁

24.CAS 中可能出现的ABA 问题讲讲

25.java 和C++的内存管理上有哪些不同

26.垃圾回收算法具体讲一下

27.sql 里面的group by 是什么作用

28.如果你和你同事有意见上的不同,你会怎么去处理

29如果是在工作当中和领导意见不同呢?

作业帮后台开发岗面试技术题目汇总(社招)

作者:今天一定能赢 链接:https://www.nowcoder.com/discuss/669487?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一、机器学习部分

1.机器学习的整个流程是怎样的?

2.如何处理样本中的缺失数据?

3.做过的项目中用到了哪写机器学习算法?有没有遇到过什么问题?是怎么解决的?

  1. 决策树有什么问题?怎么解决

  2. 说一说随机森林和逻辑回归在分类问题上使用场景有什么不同?

6.SVM 算法推导

核函数是什么?有哪些?

函数间隔和几何间隔有什么区别?

加大数据量一定会提升SVM 的准确率吗?为什么?

7.SVM 和 LR 的区别?

8.逻辑回归为什么选用 sigmoid 函数?多分类怎么做?

9.逻辑回归可以解决非线性分类问题吗?

10.详细解释 L1 和 L2 正则化

11.了解 xgboost 吗?和 gbdt 的区别?

12.平时看过哪些机器学习方面的书籍?是怎么学习机器学习的?

二、JAVA 部分

1.Java 基础

HashMap 的实现原理,为什么不是线程安全的,并发情况下会有什么问题?

ConcurrentHashMap 怎么实现线程安全的

类的加载过程?

类加载器有哪些?双亲委派模型?有什么作用?

2.JVM

Java 内存管理模型

垃圾回收算法:CMS,G1

如何判断一个对象是否要被回收

3.Spring

Spring Bean 加载,解决循环引用

Spring AOP 原理

FactoryBean 和 BeanFactory 区别

4.数据库

事务的隔离级别?平时用的是哪种?

MySQL 常用存储引擎,InnoDB 数据是怎么存储的

Left Join 是怎么执行的

聚簇索引,二级索引,联合索引

怎么判断一个查询走没走索引,like 走索引吗?

Hash 可以做索引吗?为什么 InnoDB 不使用 Hash 索引?

如何利用索引提升查询速率(任何优化一个慢查询)

5.MyBatis

MyBatis 执行一个 Select 查询的流程?

有哪些Executor

插件原理

二级缓存机制?6.多线程并发

线程生成方式有哪些?Callable 返回值?

ThreadLocal 原理

volatile 关键字原理

线程池参数

拒绝策略有哪些

同步队列哪几种?区别?

线程通信方式有哪些

Synchronized 和 ReentraintLock 区别

编程实现两个线程循环打印ABABAB

三、数据结构算法

双向链表如何判断有交叉?如何找到交叉点?

滴滴Java面试

作者:象牙山首富谢广坤 链接:https://www.nowcoder.com/discuss/669687?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

没投过滴滴Java ,两点接到面试两点半开始。

面试时间45min 面试官很好

  1. 聊项目

  2. 我说了所有功能的思路

  3. 说多端登录一端下线怎么实现的?

  4. 我说了所有遇到的问题和解决办法,还有现在没解决的bug

  5. 说说cookie和session

  6. 我说了我加密cookie的问题

  7. 项目是上线跟人做的吗? 这里聊了十分钟 我很少让他去问 说自己的思路。

  8. 说说es底层怎么实现的?

  9. 分词 倒排 说了一个例子

  10. 聊基础 说hashmap,我说了线程安全,扩容机制,加载因子,put过程

  11. 他反问 转移机制?

  12. 问我扩容时候有一个要添加进来怎么办?

  13. 1.7和1.8区别

  14. 什么情况从红黑树变成链表?

  15. 聊Redis 让我说持久化 数据结构,我说还说了宕机恢复

  16. 问我kv低层怎么实现的

  17. 跳表知道吗?

  18. 聊MySQL

  19. 我说了索引

  20. 反问 hash索引和b树索引可以手动切换吗?

  21. b和b+什么区别?

  22. spring事务隔离级别?

  23. 平时怎么使用,哪个注解

  24. 聊jvm 我说了full gc 数据区域 gc算法 gcroot

  25. 什么情况被gc判定无用,引用计数优缺点,为什么要分代,元空间和永久代,四种引用

  26. 反问 你说了四种引用,那你说说threadlocal 我说了怎么用,底层,干啥的,内存泄漏

  27. 问创建线程方法?

  28. 五层模型

  29. 各层都有什么协议干嘛的?

  30. 说说http底层

  31. 说说tcp和udp 用塞避免

  32. git冲突知道吗?

  33. Linux问怎么查看一个文件?

  34. 我说了cat more tail vi vim

  35. 思考题 1000个橘子 放入10个箱子,无论我要多少橘子都可以从箱子的不同排序拿出来怎么办? 提示二进制

  36. 算法

  37. 说说排序算法有啥

  38. 怎么求两个数组并集

  39. 手撕快排 归并

  40. 时间复杂度?

  41. 说说桶排序

  42. 反问两个一个亿大小的文件怎么取并集

反问什么想问的 需要什么样的人! 他说喜欢钻研源码 我说我会aqs 然后我说了aqs源码 反问 队列双向链表还是单向 双向 反问我没问你锁呢我问问吧 我说还是算了

很多问题想不起来来,滴滴面试不求成功,当锻炼面试谈吐和查缺补漏

万物心选java实习一面面经

作者:cai的抠脚 链接:https://www.nowcoder.com/discuss/670587?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

求二面!许愿一波

(面试时间:一小时)

  1. 自我介绍
  2. 接受转语言吗?PHP
  3. TCP 和UDP区别
  4. TCP如何保证可靠(重传机制,流量控制,拥塞控制)
  5. 传输包丢了怎么办,有哪个字段是验证这个的? CRC循环冗余校验码?
  6. DNS怎么解析域名的,基于UDP还是TCP,UDP,端口多少53
  7. 本地hosts文件-》本地域名服务器-》根域名-》顶级域名-》二级域名
  8. content-type有哪些类型(没说几个)
  9. 请求头有哪些内容(说了协议版本,请求方式,content-type,content-length)
  10. 进程,线程区别
  11. 进程的状态
  12. 11用户空间和内核空间?
  13. 进程通信方式(匿名管道,有名管道,消息队列,信号,信号量,socket)
  14. 虚拟内存
  15. 什么是线程安全,如何保证
  16. 线程安全的集合类(ConcurrentHashMap,CopyOnWriteArrayList,HashTable)
  17. 数组中删除重复元素
  18. 链表和数组的区别
  19. 快排的原理以及过程
  20. redis常用命令
  21. 一次执行多个命令该怎么做?
  22. redis数据结构有哪几种
  23. redis存验证码?token,怎么存?
  24. 数据库设计了哪些表
  25. 权限控制是怎么做的
  26. 最后问学习上有什么建议?
  27. 基础还行...缺少项目经验。

补面经

作者:RJMavis 链接:https://www.nowcoder.com/discuss/671108?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

5.27招银提前批一面

  1. 垃圾处理算法
  2. OOM什么时候会发生
  3. hashmap
  4. hashmap为什么会有链表和红黑树的转换
  5. 如何删除排序树的一个节点
  6. 数据库索引
  7. 数据库隔离级别
  8. 算法题:给定一个数组arr,返回数量超过一半的数字,如果没有则返回-1

6.8招银二面

  1. kafka,具体说一下项目中的kafka是怎么用的
  2. kafka会发生信息丢失,怎么解决
  3. kafka如何保证消息不被重复消费(什么什么策略)
  4. 在答kafka的时候答了一波redis,但是面试官不问redis,盯着kafka问
  5. 整体感觉还好吧,基础没问,算法没撕
  6. 就问了十几分钟项目,over
  7. 过了一会等来了hr面

6.8 tp link一面

  1. 自我介绍,项目
  2. 数据库遇到海量数据时如何优化
  3. 常用的排序算法以及时间空间复杂度
  4. 为什么用快排
  5. 数据量很大时快排的优势

6.9 tp link二面

  1. 自我介绍,介绍项目
  2. 牛客网项目如何解决高并发问题
  3. 20匹马,每次上场5匹,选出跑得最快的三匹,不需要知道三匹之间的快慢顺序,最优算法?

6.10字节跳动西瓜视频

一面

  1. 介绍项目,登录功能如何实现
  2. redis怎么提高性能
  3. 操作系统的四种IO模型
  4. redis集群讲一下
  5. redis的数据类型,讲一下Stirng类型的特点
  6. kafka的topic和partition有了解吗
  7. kafka中topic的的消息能保证顺序吗
  8. 算法题:二叉树的右视图
  9. 对折链表相加,比如1-2-3-4-5,输出6-6-3
  10. 整体一面感觉很好,面试官很友善
  11. 面完就让在房间里等一会,五六分钟的样子二面面试官进来了

二面

  1. 介绍项目,逮住教研室的项目问
  2. 给你一个IP地址,如何给对应的主机传输信息
  3. 不会IP还是逮着IP问,子网分布什么的
  4. 算法题:对折链表,1-2-3-4-5,输出1-5-2-4-3
  5. 写了用栈实现的,让再写一个常数空间复杂度的

浩鲸后台开发面试题目总结

作者:今天一定能赢 链接:https://www.nowcoder.com/discuss/671194?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. 自我介绍,说自己的项目经历和工作经历

  2. HashMap(自己说的很细,面试官说了句挺不错,问你几个很细的问题)

  3. HashMap1.8 之后有没有循环依赖的问题

  4. reHash 那段源码你看没有

  5. 默认长度是 16,那我初始大小给 5 他会是多少

  6. 长度为什么是 2 的幂次

  7. HashMap 翻转链表的时候原来在 3 位置的元素,他会到哪

  8. ConcurrentHashMap

  9. 说 1.8 它变成了 Node+Cas+Syn 的方式,你讲下 CAS(我顺着 ABA 也说了一遍)

  10. ABA 问题是比较经典。但还有两个缺陷你知道吗

  11. Synchronized 讲一下

  12. Synchronized 原子可见有序的原理

  13. Java 对象头里还有哪些东西你记得吗

  14. 最近在看什么书

  15. 这本书收获最大的地方在哪(排查 OOM 异常)

  16. Redis 的数据类型讲一下

  17. Mysql 事务隔离级别(幻读是怎么解决的,我记得是加锁,怎么加锁忘了,面试官提醒是阶段锁)

  18. JDBC

  19. 不关闭连接会发生什么问题(从网络角度来讲,会有大量的 CLOSE_WAIT 状态,因为没有及时的释放资源,从jvm 来讲,可能会造成内存泄漏)

  20. 项目里边用的 JWT 是 Java Web Token 的意思吗(Json Web Token)

21 你这个 JWT 在分布式里边会不会出现失效的问题

  1. 哦,分布式你不太了解,那这个 token 会不会出现被破解的问题呢。

23 面试官跟我科普了一下现在大厂网络安全的一些做法

  1. Spring 简单讲一下

25 Spring AOP 的原理

26 Spring 里边用到了哪些设计模式

27 线程池以及线程池的核心参数,作用28. 四个拒绝策略(29. 反转链表

  1. 连续子序列的最大和

映客后台开发岗社招面试经验分享!

作者:ce、欢笙 链接:https://www.nowcoder.com/discuss/671209?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面:

一面电话面试,基本常见问题,50min 一直问问题

  1. 堆排序

  2. 快速排序

  3. 单向链表 如何快速得到长度

  4. 浏览器请求的过程

  5. HTTP 无状态

  6. 1.1 和 1.0 区别

  7. 讲一下 https

  8. 抓包 工具 能否看到 ack 和状态码

  9. 网络编程讲一下 socket 同步通信 异步通信 select poll epoll

10.不同语言之前通讯方式(跨语言通信方案) C 和 Java 之间

11.长短连接实现

12.sychronized 静态方法和不同方法的区别

13.死锁线程的方法 互斥资源

14.线程状态

主线程能拿到子线程的执行结果和异常吗

15.常见的集合类 线程安全

16.自旋锁和互斥锁区别

17.哈希冲突解决方法

18.JVM 内存模型

19.链表和数组的区别

20.数据库 聚集索引和非聚集索引区别

21.一条 sql 语句是怎么执行的

22.隔离级别 一般使用哪种 存在哪些问题

23.数据库 单体部署吗?集群有哪些问?主从复制的问题? 数据不一致怎

么解决??

24.中间件有用过吗 ZK?kafka?

25.Redis 如何部署 集群

RDB 和 AOF 介绍

26.ES 索引和文档的区别

分片和副本配置分片缺失对检索有影响吗

27.链表删除指定节点。。。

28.日志文件很多行 rest 接口提供 如何能够快速去对某个字符串进行筛选??

29.设计模式 命令模式和策略模式。。。

二面二面视频面,问题没全记下,感觉面试官层次高了一截,问题也比较发散,而且不太好答,面了一个多小时

  1. 树的遍历 两种方法 计算节点的兄弟节点的差

  2. 大数据 日志 时间最长的 10 个 url mapred

  3. 线程调度 内核态和用户态切换 用户态内的进行线程调度 协程

  4. 了解哪些开发框架

共同点响应式编程

  1. BIO NIO Tomcat 的作用

  2. 反向代理的作用 静态资源具体怎么处理

  3. 印象深刻的事情

三面

本来说就两面,隔了一周似乎是又加了一面,估计是大boss,自我介绍完简单

问了问简历相关的一些问题,基本都是大方向的问题,之后就开始听大佬讲故事,

大概半个小时

映客服务端一面+二面+HR面面经

作者:百可 链接:https://www.nowcoder.com/discuss/671563?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

  1. 输入一个网址,出现页面的全过程
  2. http的请求方法有哪些
  3. get与post的区别
  4. 进程与线程的区别
  5. 线程共享的有什么,不共享的有什么
  6. 死锁的必要条件
  7. 死锁的预防
  8. hashmap的原理
  9. LRU缓存的实现
  10. mysql的锁
  11. 事务的隔离有哪些
  12. 说一下每个隔离的区别
  13. mysql默认使用哪个隔离
  14. 日常应用中应该使用已提交读还是可重复读
  15. 用什么语句实现数据库锁
  16. 数据库使用b+树的好处
  17. 联合索引的使用原则
  18. redis 用过?kafka用过吗?(没有,没有)
  19. 编程:两个栈实现一个队列。

映客二面50min

  1. new delete malloc free
  2. delete delete []
  3. 一个对象数组,不用delete[]使用delete有什么影响。
  4. const与define
  5. cpp的面向对象
  6. 重载与重写
  7. 纯虚函数
  8. 虚函数的原理
  9. 结构体与联合体的区别
  10. 修改联合体的多个值有什么影响
  11. 进程线程协程
  12. Io模型
  13. io多路复用的类别
  14. epoll的底层实现
  15. mysql的存储引擎
  16. innodb与myisam的区别
  17. innodb的索引有哪些
  18. 事务是什么
  19. 如果一个表查询,插入等很慢,你怎么做?
  20. git 的本地仓库和远程仓库

后来查的:在本地使用git init 建立了一个仓库 A,就是本地仓库 在github 上建立的仓库就是远程仓库

  1. JMM
  2. 内存溢出遇到过吗
  3. 线程池的创建流程是怎样的(线程池的实现原理)
  4. CMS 垃圾回收器

映客hr面10多min

1.自我介绍

2.说下具体的事情,印证自己的评价。3.转语言能接受?

4.找工作toB toC考虑这个?

5.目前offer有吗

6.期望薪资?

7.反问

滴滴秋储java后端实习一面二面(凉了但没完全凉)

作者:coder_tq 链接:https://www.nowcoder.com/discuss/671754?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

6.2日 一面(40min)

  1. 项目(10min)
  2. equals与==
  3. Integer之间==
  4. Integer如何放到常量池
  5. volatile说一说
  6. 可见性有什么作用。
  7. 如果java内存模型中去掉了线程内存,直接修改主内存会出现什么情况。
  8. 单例模式说一说
  9. 实现方式,区别
  10. 枚举是如何防止反射破坏单例模式的
  11. 动态代理模式说一说
  12. JDK和cglib动态代理区别
  13. CAS说一说 使用场景
  14. TCP三次握手 两次握手行不行,为什么
  15. 滑动窗口(没答上)
  16. linux相关
  17. 基础指令有什么
  18. vim的缺点? 会将文件全部加载入内存中
  19. CPU突然飙高怎么检查(答成内存飙高的检查方式了。。。)
  20. 支付业务,客户不小心点了两次,发送两次请求,如何判断。(服务器生成序列号放入redis,发送请求后删除)
  21. 如何应对高并发的秒杀? 算法 令牌桶
  22. 怎么判断服务可能出现异常,通过什么数值可以监测
  23. 算法 二叉树前序遍历 字符串的倒叙

反问

6.7日二面

  1. 自我介绍
  2. 项目
  3. 数据库怎么设计的 用到了什么范式(范式记不太清就说了说设计)
  4. 外连接内连接笛卡尔积
  5. 在哪里用到了这几种连接
  6. 注解是什么,如何进行处理的,让你实现一个注解你怎么写
  7. 单例模式 你怎么写,如果通过反射有没有可能破坏单例模式,该怎么处理
  8. 项目中用到了哪些设计模式
  9. 进程之间的锁(说成了线程间的)你知道进程和线程的区别嘛
  10. 了解过文件锁嘛
  11. 访问www.baidu.com的过程
  12. 两个进程能不能同时监听同一个端口,UDP和TCP的同一个端口呢?
  13. 等通知,然后就没有消息了。。。

6.15收到oc,不得不说滴滴流程有一点点慢。。。

浦发银行软件开发岗面试经验分享(社招)

作者:牛客895370106号 链接:https://www.nowcoder.com/discuss/671771?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

浦发银行

  1. 学过的语言?C、C++、Java
  2. String和StringBuilder的区别?final、拼接效率 面试官:还有吗?--没看过StringBuilder源码
  3. TreeSet底层?红黑树复杂度?(八股文)
  4. HashSet 底层?HashMapa 的复杂度?Hash冲突解决方案?(八股文)
  5. 如果key是String,那它的hash值是怎么得到的? 面试官:我是问你String的hashCode是怎么计算的? 思考了片刻,老实交代:我没看过这个源码,但它应该是和ASCII码有关
  6. 平时怎么调试?Debug打断点
  7. 还有吗?线上出问题如何定位或调试?分析日志文件
  8. 10000个数找最大的100个?秒给小顶堆、TopK思路
  9. 小顶堆思路的时间复杂度?o(N)?因为要遍历
  10. 面试官:那如果是找1000个呢?应该还是o(N)吧...
  11. 那维护堆的代价呢,你再计算一遍?我猜o(NlogN),应该是错的,胡乱分析一通
  12. 平时写项目遇到死循环怎么解决?郁闷了好久...实在想不出来,随后说,死锁这种情 况可以吗? 控制台输入jps+jstack指令 11、那像for、while这种死循环你怎么定位? 12、手头有offer吗?来深圳没什么问题吧?我待会儿把你的简历给我leader看一下 13、反问:您如何定位死循环?

高途

  1. 单例模式
  2. ArrayList和LinkedList的区别
  3. 创建线程的几种方式
  4. 线程池的几个核心参数和执行流程
  5. 线程池是怎么控制核心线程数和最大线程数的(答得不太好,瞎扯了队列)
  6. JUC包下了解什么工具(我答了concurrentHashMap),接着问了concurrentHashMap的分段锁和使用场景
  7. Atomic和CAS
  8. Spring中使用的设计模式(我只答出了工厂BeanFactory和代理AOP)
  9. Spring中的事务的隔离级别和传播特性(传播特性没答全)
  10. SQL题,三张表:部门、员工、工资,查询某个部门2019年年薪超过12万的员工
  11. 手撕代码,二叉树的前序遍历
  12. JVM -Xss参数表示什么(不知道)
  13. 死锁产生的条件,怎么解决死锁(只知道粗粒度锁和设置锁优先级)
  14. 场景题:在一个服务中调用另一个服务的接口保证数据一致性,例如:提交订单不会提交两次(分布式锁?其他不清楚了)
  15. 场景题:高并发场景下数据库压力很大,怎么解决?(使用索引,使用缓存,分库分表?当然还存在IO瓶颈)后来面试官又提出了MQ 消息队列也行。

金山云软件开发社招岗面筋

作者:牛客541601154号 链接:https://www.nowcoder.com/discuss/671775?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面面经:

  1. 先自我介绍然后讲一下最拿得出手的一个项目(我讲了我做的区块链fabric的农产品溯源项目)不知不觉聊了将近30分钟
  2. Java多态机制
  3. 策略模式
  4. 线程池,假如让你实现一个线程池,你会怎么实现?(我使用list存储核心线程,然后不够再扩容,用完了经过最大等待时间再回收......) 面试官说其实数据结构用数组、链表都可以,有空多看看源码的设计思路
  5. 线程池的核心参数
  6. Netty了解吗?(没用过,只知道用了基于buffer的非阻塞的NIO底层实现)
  7. NIO底层实现
  8. TCP和UDP的区别
  9. TCP和UDP的首部报文格式差异
  10. TCP三次握手和四次挥手
  11. SQL题:订单表的订单号没建唯一索引有大量重复的订单号,怎么去重?
  12. SQL 题:学生课程成绩表(student_id,course_id,score),查询所有课程成绩都>60分的学生的student_id
  13. 算法题:从1亿个数中找出最大的100个(我说了堆排序,建大堆100次。然后面试官问一定要排序吗?不排序可以吗?)

(后来想了,遍历一遍,准备100的变量存储最大100个数的下标,遍历每一个数的同时跟那100 个小标的数比较)

二面

  1. TCP 三次握手,四次挥手,Time_wait状态过多的优化
  2. 说说select,epoll
  3. Mysql的默认隔离级别?什么是不可重复读
  4. select语句的执行过程
  5. select poll epoll 的区别?epoll的数据结构
  6. TCP三次连接,这个listen backLog有什么作用
  7. TCP 四次挥手,Time WAIT发生在哪方?两个超时重传时间的作用?大量timeout怎么处理?
  8. https的加密过程?证书认证的过程
  9. 进程间的通信方式?有哪些信号通信是不可靠的?为什么是不可靠的?
  10. 线程死锁的情况,怎么解决?
  11. 1 2 35 5 35 2 56 统计2 35出现的次数,按序排序
  12. 请求出现超时,但应用查不到这个请求日志,怎么排查
  13. 僵尸进程怎么解决?协程有了解过嘛

反问:第一次面试表现怎么样:计网一般般,后面还可以

腾讯PCG QQ客户端一面面经(凉经)

作者:RookieProgrammer 链接:https://www.nowcoder.com/discuss/671881?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

日期:2021年03月22日

八股部分

  1. 询问项目 10~20min
  2. 比较Vector 与ArrayList
  3. 比较ArrayList与linkedlst
  4. Java有无符号类型吗?网络上传来一个64位可以用long接吗(可以但会溢出)
  5. Object里都有什么方法,equals,clone,wait,notify、hashcode、toString,讲下他们的作用
  6. 深拷贝与浅拷贝
  7. Java有内存泄露吗
  8. 强弱引用是什么,区别在哪,使用场景
  9. 反射是什么,哪些框架会用到
  10. Spring的AOP、IOC是什么
  11. 进程间的通信方式哪几种、
  12. 平衡二叉树是什么?用普通二叉搜索树不行吗?
  13. TCP、UDP讲一下(三次握手、拥塞控制)

手撕代码部分:

  1. problem1:无序数组的中位数(排序、大顶堆小顶堆)
  2. problem2:两个100000位的整数,计算相加和(有时间考虑有符号情况)

腾讯TEG 一、二面面经分享(已拿offer)

作者:RookieProgrammer 链接:https://www.nowcoder.com/discuss/671884?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

腾讯TEG后台一面

日期:2021年03月29日

基础知识与项目

  1. 询问项目
  2. 除了时延, 还有什么可以刻画分布式系统的吞吐
  3. 分布式系统负载均衡,需要注意哪些指标
  4. 计算机哪些资源参与负载均衡算法的计算(部署位置)(因为区块链是一种分布式数据库,所以面试官才这么问)
  5. 分布式系统有了解吗
  6. 设计分布式系统最大的挑战是什么(CAP, BASE
  7. 常用哪些编程语言
  8. Java做过项目吗,C/C++了解过吗,为什么学java而不是C++或Go
  9. Java相对于C++, golang的优势
  10. HashMap与HashTable比较
  11. 红黑树查询的复杂度logN,动态增删复杂度logN
  12. 红黑树相对于一般二叉树的特点,相对于平衡二叉树的特点
  13. 平衡二叉树做查询logN、增删的复杂度N(恰好删除根节点,二叉树重建)(查询、增删复杂度很容易被问)
  14. HashMap线程安全吗(不),应该用ConcurrentHashMap,原因是什么(CAS, 1.8之前怎么实现的)
  15. Java多线程的实现方法(四种)
  16. 为什么用线程池
  17. 资源占用会不会很高
  18. 参加过什么竞赛、项目
  19. 网络I/O, I/O模型(阻塞、非阻塞)
  20. 为什么非阻塞并发度更高 + I/O过程描述,有几次拷贝
  21. 进程、线程区别
  22. 为什么进程是程序运行的基本单位,而线程不是? (linux中 进程、线程实现几乎一样,调度也相同,主要区别在于二者内存使用上的不同)
  23. 多进程的通信手段 (其中一种是 信号 or 信号量?)
  24. 线程间通信方式
  25. 进程间通信,线程间同步,通信与同步的区别
  26. 进程也可以同步,为什么线程没有通信
  27. 程序内存空间分为哪几块
  28. static的作用
  29. 堆栈的区别,用来保存什么
  30. HTTPS对于HTTP的改进
  31. HTTPS的过程
  32. 客户端怎么验证服务端的签名
  33. 用UDP怎么实现TCP
  34. 有哪些排序算法,哪些是稳定的,如何衡量稳定性

手撕代码:

  1. 十亿个整数,找出最小的十个

快排不行,内存不够 内存不够 → 小顶堆(实现过程怎么样) 为什么小顶堆可以,快排不行(因为递归吗) 简化一些,有很多的机器,用快排怎么做 每个机器排序一部分,找出最小十个 然后取出最小值最小的十台机器进行合并 给一堆数,比如1-9,任意取3个数进行排列组合,输出所有可能(数字可重复)

0406 腾讯TEG二面

  1. 什么是同态加密
  2. 一些项目相关的东西
  3. a. PBFT, CFT b. 比特币、以太坊、fabric的吞吐
  4. 实现分布式一致的方式:
  5. 通信交互
  6. 时钟同步(谷歌一篇论文,分布式存储数据库),难做到强一致

七牛云等公司java岗社招基础题目汇总

作者:蓝的天白的云 链接:https://www.nowcoder.com/discuss/671889?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

楼主是社招菜鸡,最近想换个环境,面试了一些公司,然后总结了下被问道的基础技术问题,题目就不分公司写了,全写一起好了

  1. string和stringbuffer和stringbuilder的区别
  2. concurrenthashmap 了解多少,1.7和1.8区别
  3. 分段锁说一说
  4. CAS知道吗,介绍一下
  5. hashmap 底层数据结构,jdk1.8之前和jdk1.8
  6. hashmap为什么链表超过8转化为红黑树?
  7. 介绍一下线程池,如果自己创建一个线程池,线程池包括哪些参数
  8. 多线程start和run方法的区别
  9. 抽象类和接口的区别,为什么要有抽象类?
  10. arraylist和linkedlist区别,是不是线程安全
  11. jvm了解多少,重要!!【垃圾回收机制】【类加载机制】 追问:双亲委派、jvm 内存模型和内存结构、minor gc和full gc
  12. mysql创建索引的注意事项
  13. redis 怎么样、缓存类中间件用过哪些?kafka和rocketMQ了解多少
  14. 自动装箱int和integer比较
  15. try catch执行顺序中间插入return,执行顺序
  16. 多态的理解 三个条件,继承、重写、向上转型(父类引用指向子类对象)
  17. 手写单例模式, 懒汉式、饿汉式 追加:如何保证线程安全
  18. arraylist和linkedlist区别, 追问:两个都是不是线程安全的
  19. arraylist底层为啥线程不安全, 答:并发情况下size++不安全考虑并发要用vector
  20. 手写SQL查找成绩总和top3的学生
  21. 创建线程的几种方法,都介绍一下
  22. 三层的B+树可以存多少信息,页表自己定义,节点大小自己估算 上亿级别,按页表16KB 算,long占4 个字节,16KB/4B = 4K 4K × 4K × 4K = 6.4×10^1021.B树和B+树介绍一下,说说区别
  23. 死锁四大条件
  24. 如何避免死锁
  25. 银行家算法(预防死锁的方法)
  26. linux会哪些命令,介绍10个
  27. socket编程了解多少
  28. 聚簇索引和非聚簇索引
  29. linux文件系统
  30. 你知道哪些文件系统,说说结构
  31. http是有状态还是无状态?是有连接还是无连接? 无状态、无连接

七牛云 软件开发岗 社招面经

作者:AreUReady? 链接:https://www.nowcoder.com/discuss/672035?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

计算机网络

  1. TCP四次挥手
  2. OSI 5层,发送邮件属于哪一层,基于什么协议(传输层协议),为什么
  3. TCP与UDP区别
  4. 拥塞控制
  5. HTTP响应码
  6. 发生502,应该先查看什么,发生500应该先查看什么
  7. 顺着这个问题问我了解Linux操作吗(了解过一些常用命令)
  8. 说一下,给一个单词,查看一个文件的第一行有几个这个单词,怎么实现(不会shell......,说了下可能会用到的命令,以及大致思路)
  9. 然后问了下平时开发怎么测试的

数据结构

  1. 问了常用的数据结构,说了栈、队列、数组、树,
  2. 然后问了下链表和数组的区别
  3. 有了解过排序吗,说说哪些排序是稳定的,哪些是不稳定的,时间复杂度是多少,空间复杂度
  4. 手写快排,说说思路
  5. 刚刚说了树,说一下树的应用场景(说了索引)

数据库

  1. MySQL除了树,是什么树,还有哪些类型的索引
  2. 说说事务的隔离级别
  3. 什么是幻读
  4. 项目表结构
  5. 说说表的对应关系(一对多、多对一之类的)

Java

  1. HashMap,JDK 7与JDK 8做了哪些改进,解决了什么问题
  2. 如何解决多线程问题,你用过哪些锁
  3. sync与ReentrantLock区别
  4. 线程池用过吗,有哪几种
  5. 如何停止一个线程,会发生什么事情
  6. 碰到过哪些异常,OOM可以被捕获吗
  7. 反射了解吗
  8. 注解了解吗

Redis

  1. 用过Redis吗,用过缓存
  2. Redis底层数据结构了解过吗?说了字典和跳表
  3. 跳表和红黑树
  4. 问答环节问知道Redis分布式锁吗(说了setnx),问我看过什么开源框架吗,了解过

docker 、k8s吗

场景题:统计视频直播一天中哪个时间段人数最多

暑期实习面经

作者:断剑孤雪 链接:https://www.nowcoder.com/discuss/672060?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

暑期实习面经: 这是一篇迟到的面经,因为面完后比较忙一直没有时间整理,凭借自己脑中的印象回忆实习面试题用来回馈牛客

字节飞书后端

一面:

  1. 八大排序各自的复杂度,稳定性等
  2. 计算机的虚拟内存?

算法题部分:

  1. 打印1-100 的质数
  2. 寻找数组仅出现过一次的数,其他数都出现了两次
  3. 股票问题| || ||| (1,2 ,3 从easy 到hard)
  4. 场景题: 如何在10GB 的日志中找到一个出现两次的日志记录

二面:

计算机网络:

  1. DNS 污染,DNS 劫持 , 泛洪攻击
  2. 三次握手和四次挥手,timewait 状态
  3. Mac 的作用,NAT的作用

操作系统:

  1. 进程间通信方式
  2. 虚拟内存
  3. 切换进程的上下文

场景问题:

  1. 设计一个用户登录页面, 保证用户长时间保存登录状态需要做哪些
  2. 浏览器的cookie 问题

redis 和 内存的区别和联系

算法题:

已写在leetcode

https://leetcode-cn.com/circle/discuss/rRusa7/

阿里java :

一面:

  1. 问了问学科竞赛,建模竞赛的有关事宜,之后深挖项目

之后进入基础部分: 2. redis 的数据结构 3. redis 的跳表底层实现复杂度等等 4. redis为何用跳表而不用红黑树 这里因为我此前也疑惑过这个问题,所以专门去看了看作者的回答

  1. 各大排序算法以及复杂度和最坏以及最好的情况进行具体的栗子讲解
  2. Array.sort 的底层中,为何一部分用快排而不用堆排序,工业界中为啥用快排多于堆排

计算机网络部分:

  1. 三次握手,四次挥手 (四次挥手有可能三次嘛?还是一定要四次)

  2. 这里确实学到了当三次挥手已经进行数据传输完成后,就可以直接断开无需四次挥手

  3. ping 解释如何实现互通

最后: 最近有看什么书?

二面:

  1. 深挖项目一波,(感觉被打击到了)
  2. redis 集群部署情况?
  3. 简要叙述kafka 如何实现生产者和消费者
  4. 各大排序算法的最好最坏,稳定性以及原因
  5. redis 会出现因为多线程而造成数据读写错误嘛

这里我主要用说redis 用了单线程不会有这种情况,但是父线程会fork 一个子线程来进行操作备份

  1. redis为何快
  2. 你之前说redis6.0 采用了多线程,你觉得为何要这么改? 为了应对越来越复杂的qps 要求,redis作出了让步 但是redis6.0 默认是禁止多线程的,可以在配置中打开,选择权给了用户

计算机网络

  1. udp 和 tcp 部分

拼多多后台:

一面:

  1. 排序算法部分
  2. 项目部分(还是深挖了不少)
  3. 计算机网络,拥塞控制,三次握手,长短连接等
  4. redis部分 现场给场景,现在写redis 查询代码(这点不会)
  5. 用栈实现队列 用队列实现栈
  6. 算法题:
  7. 数组中取三个数积最大
  8. 合并括号(十分钟写完)

notes: 第4部分不会写原本认为挂了,过两天约二面

二面:

  1. 输入www.baidu.com 过程
  2. https 的具体过程,特别是加密
  3. 算法题部分 这一部分把我问懵了,一道接着一道(大概有4,5 道) 写出来了之后优化,优化之后分析时间复杂度 (当时早上10点,早饭没吃已经饿晕了)匆忙答一波

美团外卖后端: 算法题:

1:合并区间

基础部分:

2 : 线程池具体分析

3:redis 数据结构

4 :redis 和数据库 如何保证数据强一致性

5:java 的原子类,各种锁

6:java 并发编程的一套。。。

7:kafka 的设计和原理

(美团的八股文问的应该蛮多的)

面试官很好:一直在引导我, 应该是高P

最后介绍了一波美团外卖hhh

可惜被挂,面试中也确实不少问题没回答上来,心理坦然

快手国际化: 先怼了一波项目:

然后同样让我觉得我的项目一无是处2333

计算机网络: 三次握手,四次挥手,然后流量控制,拥塞控制,tcp 长短连接等等

数据库: 深入问了数据库的底层实现,比如redolog ,undo log, bin log

隔离级别等等, B+树

MVCC 机制的底层实现原理是什么?

java : hashmap

回答了hash map从1.7 到1.8 的各种改变如何避免的死循环(但是依旧无法线程安全,因为没有版本号和锁机制的存在无法保证线程安全), 以及比较惊艳的扰动函数

currentHashmap

回答了currentHashmap 的改进和演变

算法题:

间隔打印链表:

这点比较尴尬,写完核心代码后,面对官要完全实现这个程序,然后我写了链表类等,最后打印出了链表首地址233 场面一度比较尴尬

面试官人很好, 说我基础不错了,可以多看看一些场景类设计题

后来接受了阿里的意向,放弃快手的主管面

大家加油!

快手日常实习 效率工程 java后端

作者:coder_tq 链接:https://www.nowcoder.com/discuss/672139?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

6.3一面 40min

  1. 类加载过程
  2. 符号引用是什么
  3. 类和引用和对象分别位于JVM的什么位置
  4. 执行一个函数的过程
  5. 方法中对数据的操作过程
  6. 栈是线程共享还是私有
  7. JMM
  8. 没有volatile会发生什么
  9. volatile的作用是什么
  10. volatile是怎么实现的
  11. java中锁有什么
  12. 乐观锁与悲观锁的区别
  13. 乐观锁具体流程
  14. CAS怎么获取具体的数据
  15. 原子整型类底层是怎么实现的
  16. ABA问题是什么
  17. Lock的实现类
  18. synchronized说一说
  19. 和Lock的区别
  20. Lock的底层?
  21. synchronized底层
  22. synchronized是给谁上锁
  23. ArrayList底层
  24. MySQL事务隔离级别
  25. 四种隔离级别分别对应什么锁
  26. 间隙锁是什么
  27. MVCC是什么
  28. MVCC具体流程
  29. AOP原理
  30. JDK动态代理和cglib动态代理
  31. 反射是什么
  32. 反射具体原理

算法

  1. 二叉树前序遍历
  2. 判断链表是否有环

6.9 二面 70min

  1. HashMap底层原理
  2. hashcode是怎么计算出来的
  3. 阈值
  4. 多线程操作会发生什么 (JDK1.7链表成环)
  5. 如果使用自定义的类作为key要做什么,不重写会发生什么
  6. 如果保证多线程用什么
  7. hashTable?
  8. 项目
  9. SpringMVC与SpringBoot的区别
  10. 用过那些注解
  11. 如果使用service注解controller会怎么样
  12. bean的装配过程
  13. Autowire和Resource的区别(https://www.cnblogs.com/aspirant/p/10431029.html)
  14. SpringAOP是什么
  15. SpringMVC页面访问流程
  16. jdbc与iBatis区别
  17. iBatis是否可以有类似重载的操作
  18. try catch finally
  19. 线程的几种状态
  20. wait sleep join区别

SQL的题目

  1. 使用SQL语句实现自旋锁(version列)
  2. 查询重复数据
  3. 查询多列同时重复数据

算法

无序数列,取前K大数字

蘑菇街后台开发岗社招面筋

作者:六丸今天也要加油 链接:https://www.nowcoder.com/discuss/672253?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

1.自我介绍。

2.你熟悉哪些。答:java 语言,spring 系列框架运用,mysql,hbase,redis,kafka等。

4.说一说mysql两种存储引擎,谈了锁,存储结构,索引等区别。谈一下数据库事务,答了ACID,让我再详细说下这几个概念。追问mvcc,间隙锁。问了一个关于间隙锁的问题,

5.讲一下你对Redis的了解,谈了数据类型,使用场景,跳表,项目中咋用的。追问RDB,AOF区别,谈了RDB 保存一段时间内的数据,子进程完成操作。AOF记录操作命令。追问

6.说说你对java 集合的了解,JUC里面的类,讲了semaphore,cyclicBarrier,countDownLatch的使用场景与区别。追问底层怎么实现,讲了一下AQS,追问再细致点,

7.map 如何解决冲突,1.7,1.8区别,讲讲put源码。

8.tcp,拥塞控制,讲了一下慢开始,拥塞避免(乘法减小,加法增大),追问详细解释一下乘法减小,加法增大。

9.讲一下udp。追问怎么让udp像tcp一样可靠,尴尬地一批说了这个不了解,躺好了。

10.说一下kafka分区设置,怎么持久化的,怎么确定向哪一个分区写消息,为什么快(答零拷贝,只需一次用户态与内核态切换,扯了一点用户态和内核态的东西,追问再详细地说一

下)。

11.kafka 消息幂等性怎么做呢,offset批量提交如何做的。我说手动批量提交的,他说那万一有一个消息没有持久化成功怎么办。

12.讲一哈spring,谈了ioc,aop,jdk动态代理和cglib,反射,spring中用到的设计模式。

13.项目相关,自己讲了一堆项目场景,难点,如何解决。

14.反问环节,蘑菇街月活,和小红书区别,你觉得蘑菇街前景怎么样。

作业帮 后台开发岗 社招面试经验分享

作者:蓝的天白的云 链接:https://www.nowcoder.com/discuss/672269?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

  1. HashMap和HashTable的区别?
  2. HashMap和HashTable扩容有什么区别?
  3. HashMap中的链表和红黑树时间复杂度是多少?
  4. 红黑树相对于链表还有什么好处?
  5. 线程安全的HashMap一般用什么?
  6. ConcurrentHashMap和HashMap有什么区别?
  7. 1String a = "abc";
  8. 2String b = new String("abc");
  9. 程序是否堆空间配置参数设的越大越好?
  10. CMS回收算法的处理流程是什么?
  11. CMS会标记几次对象?
  12. G1的原理是什么样的?
  13. G1相对于其他回收算法有什么不同?
  14. 让Metaspace溢出有什么办法?
  15. 反复加载类会对Metaspace造成溢出吗?
  16. String会由自定义ClassLoader加载吗?
  17. 有什么办法造成栈溢出?
  18. 栈里面有什么东西?
  19. 如何让调用x.b()时让事务生效?
  20. CDN的处理逻辑?
  21. CDN的回源逻辑?
  22. 如何实现使用token进行身份验证?
  23. 如何保证token的安全?
  24. 当前数据库是单库单表吗?
  25. 如何减少数据库读压力?
  26. 多机主从数据库如何规划?分库分表为了解决什么问题?

二面

  1. 自我介绍
  2. 为什么用ASM?
  3. 如何判断一个类是否要修改?
  4. 类修改的流程是什么?
  5. ASM用了什么设计模式?
  6. 为什么用Gradle?
  7. CI的流程是什么?
  8. 为什么使用Spring Boot?
  9. AOP是如何实现的?
  10. 除了Spring Data JPA还有什么ORM框架?
  11. 这些ORM框架是如何实现的?
  12. 有没有关注内存调优?
  13. 如何判断字段区分度?
  14. 如何使用token进行的身份验证?
  15. token刷新周期有多长?
  16. token如何进行校验?
  17. token如何生成的?
  18. 如何根据UUID生成原理发现规律性?
  19. 如何解决UUID重复的问题?
  20. 为什么要用CDN?
  21. 静态文件有哪些文件?
  22. 如何设计一个线程池?
  23. Java的线程池如何实行拒绝策略吗?

编程题:100 块红包,6个人能抢到,每人抢到金额大于或者等于10 块,必须抢完

猫眼实习Java一面面经

作者:二本菜鸡求个大厂offer 链接:https://www.nowcoder.com/discuss/672545?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. 实习项目,尬聊
  2. ArrayList数据结构
  3. ArrayList扩容、删除元素方式
  4. subList返回什么(答曰没用过)
  5. 线程安全的List
  6. COWArrayList原理、适用场景、缺点
  7. 排序Map
  8. TreeMap排序正序还是倒序
  9. TreeMap倒序排序怎么做
  10. TreeMap按value排序怎么做(答曰重写比较器,返回value比较结果,面试官说可以回去看一下。。。)
  11. HashMap数据结构(答曰Node数组,面试官懵了)
  12. HashMap put流程、扩容、可否修改初始容量
  13. HashMap指定初始容量有什么好处(答曰减少扩容开销)
  14. 扩容开销很大吗(答曰涉及节点转移,懵了)
  15. ConcurrentHashMap原理
  16. 线程有多少种状态(懵了)
  17. AQS和synchronized区别、性能
  18. synchronized锁升级
  19. 线程池最主要的三个参数,流程
  20. 自己定义线程池好还是用jdk的好
  21. jdk提供的线程池(答曰没用过)
  22. 线程池里给线程命名的是什么
  23. MySQL默认隔离级别
  24. B+树
  25. 可重复读存在什么问题
  26. 幻读是什么(懵了)
  27. next-key lock
  28. MVCC
  29. undolog、redolog、binlog都用来干嘛的
  30. 为什么有了binlog还要redolog
  31. 出了几个场景判断走不走索引
  32. 索引abc select ... where a in (...) 走不走索引(懵了,走的吧)
  33. 算法:力扣第一道变种
  34. 循环依赖
  35. 最近看什么书
  36. 反问:业务(进去再分)
  37. 反问:转正(问hr)
  38. 反问:提升(这次问的很浅,没深入,问得不多。要多研究再深入)

蘑菇街软开岗社招面经分享

作者:SkyFiree 链接:https://www.nowcoder.com/discuss/673031?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

问题:

  1. 聊10分钟项目
  2. 让你实现生产者消费者,类似阻塞队列那种的,你怎么实现?object类的notify和 wait+while循环
  3. redis的常用数据结构以及使用场景。
  4. mysql的是底层什么数据结构?为什么要B+树?
  5. 线程池,为什么要用线程池?满了怎么办?如果我想换个方式,改为满了之后先扩充最大核心数呢?
  6. 双亲委派机制的过程?为什么要这个双亲委派机制?
  7. netty?
  8. 问到了分表分库,假设有好多订单,现在分表分库了,我如何迅速找到我要的一堆数据。
  9. Map接口有哪些实现类
  10. 讲一下LinkedHashMap?
  11. 如何得到一个线程安全的Map?
  12. Java中有哪些锁?讲一下synchronized和ReentrantLock 的区别?
  13. Spring AOP是怎么实现的?
  14. JDK动态代理和CGLIB有什么区别?既然有没有实现接口都可以用CGLIB,为什么Spring还要使用JDK动态代理?
  15. Spring AOP不能对哪些类进行增强?(没有被Spring管理的类,当时没想出来)
  16. Spring是怎么解决循环依赖的?多例对象之间的循环依赖?单例和多例之间的循环依赖?
  17. MyBatis 中$和#的区别?既然$不安全,为什么还需要$,什么时候会用到它
  18. MySQL的ACID特性分别是怎么实现的?
  19. MySQL的事务隔离级别是怎么实现的?
  20. 用过什么缓存框架?用过什么RPC框架?用过什么消息队列?
  21. 除了Java自带的序列化之外,你还了解哪些序列化框架?
  22. 差不多就是这样了,相比其他公司的面试,感觉问的问题还是多的。

斗鱼后台开发岗社招面经

作者:Bladefire 链接:https://www.nowcoder.com/discuss/673040?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

斗鱼

以下是除了项目之外的我记得的其他问题:

一面

  1. spring和springboot有什么不同,在启动方式上呢
  2. 实际项目中使用redis,用来做什么,为什么用redis做缓存不用mysql 持久化,redis为什么比mysql快
  3. jvm内存模型,垃圾回收的区域,年轻代比例,如何设置大小,垃圾回收算法
  4. 重要servlet的主类在哪里,
  5. countDownLanch实现案例,其他线程执行到该位置后,主线程再执行,主线程是如何实现等待的
  6. nio,bio,aio
  7. 不用redis,redison,zokeeper做单机的项目如何实现秒杀
  8. sql是如何做的优化
  9. mysql 的索引的数据结构,b树和b+树的区别,是平衡树吗

二面

  1. spring2.1版本有哪些新特点
  2. 项目的价值
  3. 单例模式的写法
  4. spring是如何管理bean的
  5. 项目中主要做的工作
  6. 项目为企业创造的价值
  7. 项目的主要功能

蘑菇街一面

  1. 上来扣项目,让我介绍,之后对我的某个逻辑设场景题,让我想办法解决,
  2. 问了redis并发相关的场景,还有提高响应速度,我说了些用消息队列解耦之类的。
  3. 之后引申到消息队列消息丢失之类的,因为我用的rabbitmq利用confirm 机制+磁盘持久化+消费应答。
  4. http内部字段,怎么保持长连接,如果客户端挂了,服务器怎么办(我答的就是保活计时器+探测报文),
  5. 浏览器输入www.baidu.com后发生的过程(包括域名解析过程)
  6. 项目缓存雪崩,缓存穿透,
  7. 慢sql 怎么处理(explain或者慢查询日志,加索引啥的),
  8. abcd四个字段,你如何建联合索引(使用频率最高优先),
  9. 还问了java基础,记不清了,挺简单
  10. spring加载过程(底层源码方法),如何处理循环引用bean(利用三级缓存),
  11. linux中发现cpu使用过高,你怎么办(我不太会linux,只说了ps查进程,之后top分析cpu使用率)
  12. 总的来说场景题还是多一些的,有两个想不起来了

蘑菇街二面(20分钟)

面试官是个leader,很严肃就是全程问了项目

滴滴秋储实习一面 (6.17 19:00~20:00)

作者:luluivy 链接:https://www.nowcoder.com/discuss/673071?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. java中锁使用的场景以及原理 面试官想要知道Lock, ReentrantLock, AQS 这些
  2. 线程池
  3. 事务以及特点
  4. 数据库如何根据索引查询数据
  5. 知道MySQL可以存储多少行吗
  6. SQL如何解析
  7. 了解脏读吗
  8. 了解幻读吗
  9. Java虚拟机内存模型
  10. 如何监控GC,能不能使用日志查询
  11. 有哪些对象可以作为GC Root
  12. new一个对象会触发哪些操作
  13. 内存回收算法
  14. 如何判断对象被回收
  15. TCP三次握手和四次挥手

三道算法题(只需讲思路)

  1. 如何判断一个链表是否有环
  2. 判断镜像二叉树
  3. 接雨水问题

可以展示一下你精通的地方,可以是项目中的难点,如何解决,可以是平时阅读的代码,心得感悟,也可以你平时写的博客

社招一年半经验分享:阿里一面、美团一面java岗

作者:第一次航海旅行 链接:https://www.nowcoder.com/discuss/673081?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

阿里

一面

  1. 线程安全的类有哪些,平时有使用么,用来解决什么问题
  2. mysql日志文件有哪些,分别介绍下作用
  3. 你们项目为什么用redis,快在哪,怎么保证高性能,高并发的
  4. redis 字典结构,hash 冲突怎么办,rehash,负载因子
  5. jvm了解哪些参数,用过哪些指令
  6. zookeeper 的基本原理,数据模型,znode类型,应用场景有哪些
  7. 一个热榜功能怎么设计,怎么设计缓存,如何保证缓存和数据库的一致性
  8. 容器化技术了解么,主要解决什么问题,原理是什么

算法:对于一个字符串,计算其中最长回文子串的长度

项目介绍

美团

因为之前的部门一面通过后,该部门没有hc了,就给我推荐到其他部门了,大厂hc还是挺紧张的

一面

  1. redis集群,为什么是16384,哨兵模式,选举过程,会有脑裂问题么,raft算法,优缺点
  2. jvm 类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制
  3. tomcat热部署,热加载了解么,怎么做到的
  4. cms 收集器过程,g1 收集器原理,怎么实现可预测停顿的,region的大小,结构
  5. 内存溢出,内存泄漏遇到过么,什么场景产生的,怎么解决的
  6. 锁升级过程,轻量锁可以变成偏向锁么,偏向锁可以变成无锁么,自旋锁,对象头结构, 锁状态变化过程
  7. kafka重平衡,重启服务怎么保证kafka不发生重平衡,有什么方案
  8. 怎么理解分布式和微服务,为什么要拆分服务,会产生什么问题,怎么解决这些问题

社招一年半经验分享:美团二面、三面

作者:第一次航海旅行 链接:https://www.nowcoder.com/discuss/673084?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

二面

  1. Innodb的结构了解么,磁盘页和缓存区是怎么配合,以及查找的,缓冲区和磁盘数据不一致怎么办,mysql突然宕机了会出现数据丢失么
  2. redis 字符串实现,sds和c区别,空间预分配
  3. redis有序集合怎么实现的,跳表是什么,往跳表添加一个元素的过程,添加和获取元素,获取分数的时间复杂度,为什么不用红黑树,红黑树有什么特点,左旋右旋操作
  4. io 模型了解么,多路复用,selete,poll,epoll,epoll 的结构,怎么注册事件,et和lt模 式
  5. 怎么理解高可用,如何保证高可用,有什么弊端,熔断机制,怎么实现
  6. 对于高并发怎么看,怎么算高并发,你们项目有么,如果有会产生什么问题,怎么解决
  7. 项目介绍
  8. 你们用的什么消息中间件,kafka,为什么用kafka,高吞吐量,怎么保证高吞吐量的,设计模型,零拷贝
  9. 算法1:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N
  10. 算法2:判断一个树是否是平衡二叉树
  11. 算法3:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少,这个路径的开 始节点和结束节点可以是二叉树中的任意节点

三面

项目介绍

算法:求一个float数的立方根,牛顿迭代法

什么时候能入职,你对岗位的期望是什么

你还在面其他公司么,目前是一个什么流程

1.3年工作经验双非裸辞搜狐java岗面经

作者:萨桑 链接:https://www.nowcoder.com/discuss/673429?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

搜狐1面64min过

  1. 自我介绍
  2. 有其他offer吗?
  3. tcp三次握手,四次挥手为什么是4次?
  4. http1.0 1.1 2.0?
  5. redis分布式锁的实现方式?
  6. redis 数据结构有哪些,zset底层数据结构是什么,讲一下?
  7. == equals区别,如果hashcode相等代表equals相等吗?
  8. hashmap 底层实现方式『tableSizeFor,hash』?
  9. 1.8相比1.7为什么头插变尾插?
  10. 线程安全的map有哪些?为什么用concurrenthashmap?底层实现是什么?
  11. 什么时候变成红黑树?双哈希表?「这些其实讲到了源码层面,initTable,resize,tryPresize,
  12. Thread.yield,ForwardingNode。」
  13. volatile 讲一下,MESI?
  14. Spring IOC,AOP你的理解讲一下?
  15. Spring注入方式知道哪些?
  16. bean是线程安全的吗?
  17. 缓存穿透,雪崩,击穿讲下你的理解。雪崩问题的解决方案?
  18. 实际场景提:活动页面,对于该页面数据有些用户本身没有缓存,有些用户有对应缓存。参加活动了的用户才有缓存,来了大量请求如何确保用户的请求正常返回。
  19. Innodb,memory 区别?聚簇索引,非聚簇索引区别?B 树,B+树区别?innodb还有什么索引?回表操作再走一遍主表吗?什么情况下不走?
  20. 4种事务隔离级别和分别的问题?
  21. Linux 命令用的多吗?awk用过吗?
  22. SQl调优你怎么做的?
  23. Java垃圾收集器知道哪些?高并发情况下用哪个?

算法:

  1. 二叉树中序遍历,递归非递归实现
  2. 写一下单例模式

有什么问我的?

哪里需要提高?

框架仅停留在使用层面-14,15,16题

业务上思考的少-16题

部门技术栈?

部门所做业务?

后续面试流程?-1 年多经验两轮技术面

去哪儿后台开发岗社招面经

作者:山鲁亚尔 链接:https://www.nowcoder.com/discuss/673434?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

  1. Java基本数据类型
  2. 装箱和拆箱
  3. Java的特点
  4. 怎么实现多态的
  5. 什么动态绑定,什么是动态代理(这个没答好)
  6. 熟悉哪些Java集合类
  7. ArrayList和LinkedList的区别和适用场景
  8. HashMap的底层实现,以及put 操作,hash函数,二次扰动,扩容机制
  9. LinkHashMap了解吗?(不了解)
  10. ConcurrentHashMap的底层实现,怎么做到线程安全的
  11. 比较了JDK 1.7和JDK 1.8中HashMap和ConcurrentHashMap的不同
  12. 写过多线程Java编程吗,都是怎么写的(答:Synchronized)
  13. Synchronized底层是怎么实现的,同步代码块和同步方法
  14. 扯到了Synchronized的锁优化,偏向锁、轻量级锁、重量级锁
  15. 说一下wait和sleep的区别
  16. 可不可以自己手动加锁,手动加锁你怎么实现,底层又是怎么实现的(不太明白,扯了lock和unlock指令)
  17. 上面扯到指令,然后又开始了类加载机制
  18. 对象何时初始化,初始化的顺序
  19. 类加载器以及双亲委派机制,以及破坏双亲委派机制的场景
  20. Java怎么去实现共享操作,多线程访问同一数据(不了解)
  21. 怎么创建线程,说一下线程池,自己手动构造线程池的核心参数,线程池的工作原理
  22. 说一说AQS,底层怎么实现的(没答好,当时已经有点蒙了,问题太多了,也有很多没答好)
  23. 然后CAS是什么(这个我知道)
  24. 说一下Future和FutureTask,以及他们之间的区别(说得七七八八)
  25. 怎么实现在一个线程中,把计算结果这个操作放在一边执行,然后线程继续别的操作(不了解)
  26. 怎么实现多个计算线程全部到达之后再进行下一步的操作(我说了CountDownLatch和join)
  27. 最后算法题:给一个数组和target值,找出长度最长的且和等于target的连续子数组的长度(写了个O(n^2)的,但是面试官说有O (n)的,我没想出来)放下算法题代码,O(n)复杂度。

民生银行软件开发岗面经(社招)

作者:食人鬼 链接:https://www.nowcoder.com/discuss/673460?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

  1. 自我介绍
  2. 项目介绍
  3. 项目中遇到的难题
  4. 项目中用到了线程池,用的什么线程池,怎么配置的参数?
  5. 项目中的并发临界资源是怎么处理的?
  6. AtomicInteger怎么实现的?
  7. CAS三大问题及解决方式
  8. 事务隔离级别,MySQL 默认级别,(可重复读),为啥使用可重复读?(可重复读+MVCC达到了序列化要求)
  9. 一个类里面有两个方法A和B,方法A 有@Transaction,B没有,但B调用了A,外界调用B会不会触发事务?
  10. OS 进程间通信的方式?Java使用的哪种方式?
  11. 介绍一下Java中的锁?可重入锁如何实现的可重入?
  12. 浏览器从输入URL到返回结果中间经历了什么?
  13. 分析一下快速排序的时间复杂度和算法复杂度?
  14. 你有什么要问的?

二面

  1. 项目中各个组件作用
  2. redis分布式锁:保证同一时刻多个请求只有一个可以操作业务,使用setnx+expire+getset
  3. 单点登录,多个应用系统中用户只需要登陆一次就可以访问所有应用系统(我说的是不同服务器,面试官说不对让我下去查资料),使用一个全局的token。
  4. 用户浏览器登录到返回过程(要包含数据库层)
  5. get和post区别,还问了一下幂等性是如何实现的,这就涉及到我的知识盲区了
  6. stringbuffer和stringbuilder
  7. concurrentHashMap来写写get和put的实现逻辑伪代码也行
  8. HashMap和HashTable的区别
  9. 给一串数据模拟HashMap的put过程
  10. hashtable,hashmap,concurrenthashma
  11. ioc和aop
  12. springmvc流程
  13. 数据表如何设计,不会,拜拜
  14. 各种树的区别,红黑树的优点
  15. collection 的实现类

端点科技面经

作者:二本渣渣求offer 链接:https://www.nowcoder.com/discuss/673530?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

没录音,只为了mysql,redis,spring 就记得那么多了

  1. redis和mysql不一致问题 解决方案
  2. redis的数据结构都介绍一遍
  3. 缓存穿透 布隆过滤器原理
  4. aof 和 rdb 哪个效率好 为什么
  5. redis是怎么处理过期建的
  6. redis内存淘汰机制
  7. mysql 索引有哪些结构
  8. hash结构什么情况下用
  9. 什么时候需要设索引
  10. 索引优化做过吗
  11. 隔离级别
  12. binglog redolog 为什么要两次提交
  13. mysql语句执行流程
  14. 分析器作用
  15. springbean生命周期
  16. ioc有哪些实现方式
  17. 怎么防止依赖注入
  18. aop项目里哪里用到了
  19. 设计模式

蘑菇街后台开发岗一年经验社招面筋

作者:已经跑路再也不见 链接:https://www.nowcoder.com/discuss/673923?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

  1. 自我介绍
  2. TCP连接处理,后台如何去做
  3. TCP握手和释放过程
  4. HTTP请求格式,请求头里都有哪些信息
  5. HTTP 常用请求方法,get和post区别
  6. 用post可以发get的请求吗,即在url后面跟着参数
  7. 常用响应码有哪些
  8. Java容器概括
  9. HashMap结构,为什么链表长度超过8才升级成红黑树,直接用红黑树合适吗?
  10. hash地址计算方法用md5()替换可以吗,并解释原因
  11. ArrayList和LinkedList分别应用场景,如果插入删除和随机访问操作次数都差不多,用哪一种,如何对比
  12. 以往一个项目询问,用户权限这一部分怎么设计
  13. 设计数据库,索引设计如何考虑
  14. 为什么优先考虑B+树索引,优点在哪
  15. 多请求访问后台,如何去做并保证并发性
  16. 平时线程池的使用,如果让自己设计一个线程池如何设计(设计哪些组件以及对应执行什么功能,每个组件分别用什么类或容器实现)
  17. 线程池阻塞队列用哪个Queue实现
  18. 线程数目如何设置,为什么IO较多情况下建议设置更多线程数目,如果允许内存足够大的
  19. 情况下设置超多线程数目会有什么问题
  20. JWT原理,加密过程
  21. 图片上传服务器,多个图片服务器如何去做,主图片服务器宕掉如何替换其它的

二面

  1. 二面主要在问项目
  2. 自我介绍
  3. 以往一个项目介绍
  4. 项目中技术点的询问,架构设计,数据库设计等
  5. Vue和EasyUI的对比考虑
  6. SpringBoot和传统SSM的不同处
  7. SpringBoot自动配置原理
  8. SpringMVC内部配置原理,有哪些Bean类
  9. 设计数据库考虑哪些方面
  10. B+树数据结构
  11. 聚簇索引使用场景,页分裂问题
  12. JWT的数据格式,为什么要设计这样的数据格式
  13. tomcat的accesslog日志的使用
  14. 如果内存使用率较高,如何监控到某个线程并具体到某一行代码
  15. Linux使用,命令
  16. IO多路复用
  17. 对于日志文件,查看前10的URL,用什么命令
  18. 平时在学的东西,学习方式,深度和广度,以最近在学的一个例子为例

反问三面(HR面)

  1. 自我介绍
  2. 一些hr 常规的问题

度小满金融Java一二面凉经

作者:小洪1617 链接:https://www.nowcoder.com/discuss/673974?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

二面完了就没有消息了,估计是凉透了,把面经发出来,希望能帮助到大家~

一面

  1. 如何设计Restful接口
  2. get和post的区别
  3. 常见的HTTP请求头有哪些,User-Agent的作用
  4. JDK1.8之后的新特性(不包括1.8)
  5. 说一下MySQL的事务隔离级别,RC和RR分别解决了什么问题
  6. 聚簇索引和非聚簇索引的区别
  7. 索引失效的原因可能是
  8. Redis有哪些数据结构,常用场景
  9. Redis除了做缓存,还能做什么
  10. JVM内存模型,1.7和1.8的区别
  11. 常见的GC算法,年轻代和老年代一般用哪种算法
  12. G1相比CMS的优势
  13. JUC包,CopyOnWriteArrayList是什么
  14. ConcurrentHashMap,1.7和1.8的区别
  15. synchronized是可重入锁吗(因为1.8的时候我提到了synchronized的锁升级)
  16. 给定一个字符串,形式是"00000011111",找到第一个1的位置

二面

  1. RPC和HTTP的区别
  2. Java的Map有哪些实现类,分别简要介绍一下
  3. 说一下HashMap的原理,为什么用链地址去解决冲突,为什么用红黑树
  4. kafka如何保证消息不丢失
  5. MySQL的事务隔离机制,如何实现的
  6. 什么是事务,事务的四大特性,一致性是如何实现的
  7. MVCC是什么,如何实现的
  8. 说一下常见的设计模式,实现一下单例模式
  9. 单例模式有哪几种,二者有什么区别,什么时候用哪种
  10. TopK算法
  11. 优先队列和堆的区别

总结:我简历上没有写消息队列跟RPC,没想到还是问了,所以这两题不会,其他都答得挺好的。面试官最后给我的评价是知识深度可以,但广度还需要加强。所以大家如果要准备该公司的Java面试的话,还是要去看一下RPC跟Kafka相关的知识,至少也要提前去看点面经。

小米社招Java开发一面面经

作者:小洪1617 链接:https://www.nowcoder.com/discuss/673975?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

写在前面:问了很多问题,目前还在等消息。。

  1. 说一下了解的Java数据结构有哪些(ArrayList,LinkedList,Queue,HashMap,ConcurrentHashMap,CopyOnWriteArrayList)
  2. HashMap的原理(用哈希数组)
  3. 数组存的是什么,为什么要转换成红黑树,为什么不能是其他树(链表转红黑树,红黑树相对平衡,调整效率快)
  4. HashMap是否线程安全,会导致什么问题(不是,会导致更新丢失,比如balabala)
  5. 除了更新丢失,HashMap还会造成什么问题,1.7和1.8的区别?(1.7头插入会导致死循环,1.8改用尾插法)
  6. 如果要线程安全,应该用什么类(ConcurrentHashMap)
  7. ConcurrentHashMap的实现?1.7和1.8都说一下。(分段锁,synchronized,CAS)
  8. synchronized和CAS有什么区别,synchronized的实现原理是什么,CAS呢,CAS如何解决ABA问题(有锁,无锁。monitor(Owner字段,EntryQ字段(互斥锁)),判断有无改变,版本号)
  9. synchronized和Lock有什么区别,Lock的实现原理是什么(AQS,使用CLH锁,维护一个双向队列,存储阻塞线程。每个线程一直监听前一个节点的状态,如果调用了unlock,则停止自旋。)
  10. 线程池的重要参数有哪些(poolSize,corePoolSize,maximumPoolSize,ThreadFactory,RejectionHandler)
  11. RejectionHandler有哪些,具体如何操作(4种还是5种来着,略)
  12. 线程池的线程在执行完任务会立刻回收吗?(保留corePoolSize个核心线程)
  13. Spring的IOC原理是什么,AOP原理是什么,默认是哪一种代理,两个代理的区别(反射,获取配置的类和属性,然后在运行时注入依赖。代理,JDK,CGLIB)
  14. Spring Bean初始化有哪几种方式(忘了)
  15. Spring如何解决循环依赖的(忘了,跟他说没有复习Spring,面试官说回去要巩固一下。答案的话应该是用三次缓存)
  16. Redis有哪些常用的数据结构,说说它们的常用场景(String,Hash,List,Sorted Set, Set)
  17. Sorted Set的数据结构是什么(ziplist+skiplist,细说了什么是skiplist)
  18. Redis如何删除过期键(定期+惰性)
  19. Redis如何持久化(RDB+AOF)
  20. Redis分片有了解过吗?(说成了高可用,不会)
  21. Redis高可用,那主从同步,如何更换主节点(哨兵,监控,投票。追问:细说投票算法?不记得了)
  22. MySQL有哪些事务隔离级别,分别解决了什么问题(RU,RC,RR,Serial。。。追问什么是间隙锁,就是锁住间隙避免了幻读)
  23. MVCC如何实现的?(日志,redo log,undo log,binlog)
  24. 索引有哪些类型(哈希索引,B树,B+树,说了一下有什么区别)
  25. 为什么不用范围搜索就用B树,为什么不能用哈希索引?(应该是树可以减少磁盘的IO消耗,但具体为什么说不出来)
  26. 什么是聚簇索引,什么是非聚簇索引?(InnoDB)
  27. 说一下MySQL的分库分表
  28. 遇到慢查询,如何解决?(explain,索引,覆盖索引,limit等)
  29. 如果已经用到了索引,但因为数据量太大,比如几个亿,如何解决?(分治。追问:细说?加redis缓存,分库分表)
  30. 说一下JVM的内存模型(堆,栈,Program Counter,元空间)
  31. 什么时候会触发GC(年轻代不足以分配对象,老年代不足以分配年轻代晋升的对象)
  32. 用过哪些RPC框架,有没有看过Spring Cloud的源码(SpringCloud,Netty。无)
  33. 算法题,二叉树的层序遍历(用了迭代解法)

总结:问了很多,而且我又说得比较多,所以整个面试下来,感觉都口干舌燥了。。

字节抖音Java一二面凉经

作者:小洪1617 链接:https://www.nowcoder.com/discuss/673976?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

写在前面:一面问得过于简单,二面过于困难。整体的体验不太好。。

一面

  1. Java如何实现线程安全(synchronized,ReentrantLock,AtomicInteger,ThreadLocal,CAS)
  2. CAS如何解决ABA问题(版本号)
  3. AtomicInteger的原理(UnSafe类,底层是一句CPU指令,避免了并发问题)
  4. 可重入锁是什么,非可重入锁又是什么(略
  5. 代码,实现生产者和消费者,一个长度100的buffer,10个生产者线程,10个消费者线程 (我用了ReentrantLock跟Condition,结果忘记了锁的包路径是啥了,我写成了java.util.concurrent.,后来才知道是java.util.concurrent.locks.。。。)
  6. 对着代码提问,判定条件的while能不能换成if,为什么?为什么用signalAll,可不可以换成signal,二者有什么区别?
  7. Spring,AOP是什么,IOC是什么
  8. 二叉树的概念?红黑树又是什么,红黑树和其他平衡树的区别在哪
  9. TCP三次握手的过程,重发报文的过程。
  10. TCP和UDP的区别
  11. 说一下哪个项目觉得最有挑战,有几个模块,介绍一下
  12. 代码,LeetCode76

二面

  1. MySQL的事务特性,事务隔离级别,分别解决了什么问题
  2. 间隙锁是什么,具体什么时候会加锁(具体什么时候加锁,这里要把所有情况都说清楚。。
  3. SQLite如何加锁
  4. Java里的锁,有哪几种(synchronized和Reentrantlock)
  5. ReentrantLock有哪些特性(可重入,公平锁),可重入是如何实现的(有一个引用数,非可重入只有01值)
  6. 当某个线程获取ReentrantLock失败时,是否会从内核态切换回用户态?ReentrantLock如何存储阻塞的线程的?(AQS,不断轮询前一个结点是否状态发生了变化)所以什么是自旋锁?
  7. JVM,说一下最熟悉的GC(我说了CMS,讲了并行回收,浮动垃圾,最短STW等等),然后追问我CMS的整个回收流程,标记,清理等等,年轻代怎么回收等等。(被问倒了。
  8. Redis的持久化如何做到的?(RDB+AOF)
  9. RDB具体是如何实现的,RDB生成快照的时候,Redis会阻塞掉吗?(使用BgSave,fork一个子进程去并行生成快照,不会阻塞)
  10. 既然生成快照的中途依然可以执行Redis,那么从节点获取到快照是不完整的,如何同步?(主从同步,先建立连接,然后命令传播,两个结点中的buffer队列里存储一个offset,差值就是需要同步的值)
  11. 设计题,设计一个扫码登陆(不会)那换成设计微信红包功能(MySQL的字段,Redis缓存一致性,发红包如何add字段,抢红包如何修改字段,通过一个唯一的版本号去保证CAS的ABA得到解决。但说了很久,面试官依然认为思路混乱)
  12. 算法题,n*n的矩阵,只能向右或向下移动,从最左上方移动到最右下方,把所有的路径输出(回溯,但剪枝忘了。前面的也答得不好,差不多就溜溜球了,也没有继续挣扎了。。)

碎碎念 一面的面试官爱理不理的,感觉就不是很想招人。但最后出了一题hard,也做出来了,感觉应该还是能过的,确实也通过了。

但二面真的太难了,每一个问题都会一直细问,追问。其实ReentrantLock,还有MySQL的锁,Redis的持久化过程,我都有认真去复习的,但真的追问得太细了。。其实当时他第一题问“MySQL具体什么时候加锁”,我就挺懵的了。因为这个题我确实研究过很久,要综合考虑隔离级别,是否用了主键索引,二级索引,是否 存在回表等等的。所以当时我也不知道怎么回答,然后冷静下来就定位到了间隙锁上也就是肯定为RR级别,接着把大概的select,insert,delete等等的都说了,但后面还要继续说更细节的情况。我也不知道是我对题目的理解有问题,还是面试官想要的答案跟我不一致。反正挫败感很强,因为我记得当时看“这条SQL语句加了什么锁”,真的看了很久,而且自己也动手去测试了,结果还是没能满足面试官。。

面试官看我对锁的理解“不够深入”,于是转向了Java里的锁。问完ReentrantLock的特性,又问什么是可重入锁,说完又问具体是怎么实现的。直到这里我还是完全OK的,但后面的“线程在用户态和内核态的切换”我就完全不懂了,面试官诱导了一下ReentrantLock如何实现,我大概说了一下AQS跟CLH锁,感觉又被挖坑了,跟前面说的“可能答案”自相矛盾。。

接着的Redis持久化,也追问得很厉害,从持久化问到主从同步。。中间追问的时候描述得也比较“模糊”,后来在提示下才知道是问主从同步了,然后把整个过程都说了一下。。

接着的设计题,没接触过。。说了很多,感觉还是不行。

算法题基本上已经是“垃圾时间”啦,确实也出了一题很简单的题,大概做出来之后就算了。面试官问我如何优化,我也深知已经没戏,就直接放弃说不会了。然后面试就到这里。

总的来说,其实二面的面试官挺温柔的,但问的题对于我来说太难了。。所以,第二天收到HR的感谢信。over。

大众工匠一二面面经(已offer)

作者:帅哥学java 链接:https://www.nowcoder.com/discuss/674152?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

写在前面:一面23min,二面35min,整体感觉回答的不错,已offer,还得继续努力!

一面

  1. 自我介绍
  2. 你有一些实战的项目经验吗?(说了自己的前后端分离项目)
  3. spring相关的东西你都了解过哪些?
  4. springcloud有用过吗?(学过,但是回答的我了解过,只是没做过类似的分布式项目)
  5. ArrayList和LinkedList区别?
  6. 往LinkedList里面放入元素的话,内部是如何决定它的位置的?
  7. 介绍一下HashMap(八股文)?
  8. 二叉树、b+树、红黑树的区别?
  9. 多线程这块儿你有用过吗?
  10. 平时哪些情况下会用多线程?
  11. 用两台电脑部署同样的服务,你觉得synchronized管用吗?
  12. 场景题:手机上和电脑上同时进行打款操作,怎么保证数据的安全性?就是扣款这个服务在部署在两个机器上,PC端进行扣款路由到第一个机器上,拿到了锁,但是手机端进行扣款路由到第二个机器节点上,两个锁是相互独立的,那么怎么保证数据的安全?
  13. 有用过redis做过锁吗?(说了说redis的分布式锁)
  14. spring的Bean的生命周期?(创建bean的时候大概都经过哪些重要的步骤,你知道它会经过哪些工厂吗?)
  15. 说一下spring ioc?
  16. 说一下spring aop?

你这边有什么问题需要了解的吗? 反问:

  1. 问了问总共有几面?
  2. 表现怎么样?(面试官说挺好,复试没问题)

二面

  1. 自我介绍
  2. 介绍项目,说了说功能的实现
  3. 说一下项目的亮点,我就说了说点赞模块的设计以及登录的token设计
  4. 说一下fastdfs的上传原理?
  5. 了解jvm调优吗?实际用到过吗?
  6. 线程池了解多少?说一说工作原理?(提到了常见的三种创建方式以及实际工作中创建线程池的方式)
  7. 说一说redis set的底层?
  8. 了解CAS吗,简单说说?
  9. AQS呢?
  10. 既然线程池提到了阻塞队列,说一说阻塞队列的实现原理?
  11. 有用过实例图吗(我答了UML图啥的,但是这块儿我平常不常用所以答的不是很好)
  12. 组合与聚合的区别?
  13. spring ioc aop?
  14. 垃圾回收算法以及垃圾回收器了解吗?说一说G1垃圾回收器使用的算法?

后面开始聊人生、聊职业规划巴拉巴拉 反问:

  1. 公司的技术栈?
  2. 去了自己主要负责什么业务?
  3. 有转正机会吗?

我感觉总体答的一般,但是二面后5分钟就接到了HR的电话,当时很激动哈哈,然后第二天就收到了offer,经过这两面感觉自己还是有很多不足,还得继续努力哇!

拼多多服务端社招面筋

作者:已经跑路再也不见 链接:https://www.nowcoder.com/discuss/674339?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面

项目聊了20***要问到用的技术栈、中间件

Java 知识:

  1. 异常体系设计
  2. GC 过程,调优过程、死锁处理
  3. 线程池设计,线程数量如何配置选择(高低并发、任务执行时间长以及短的各种场景)
  4. synchonized 和 lock 的实现,synchonized 底层实现、锁升级

操作系统:

  1. 基础知识八股文,进程、线程的区别,线程同步、进程通信
  2. 常用的 linux 命令 回答有用过ping、ssh,由此引发到计算机网络部分,ping、ssh 分别属于哪一层,实现方式

计算机网络:

  1. 三次握手和四次挥手
  2. 为什么握手是 3 次,两次可以吗,4 次呢 如果server 端没有收到第三次 ack,但是收到了 client 端发送的数据,server端会怎么处理
  3. 为什么挥手需要 4 次
  4. 介绍一下 tcp,如何保证可靠传输
  5. http 1/1.1/2 的区别 主要回答了连接复用、长连接等方面
  6. https 相关问题

算法:

  1. 手写单例模式
  2. 反转链表 leetcode 206

二面

项目经历聊了大概20min,比较关注项目经历中有难度、挑战的事情

算法:

  1. 手写无锁队列

  2. 遍历二叉树(非递归) leetcode 144

数据库:

  1. 索引的实现方式
  2. hash、B+、B 树实现的优劣对比(Mysql MongoDB 分别是怎么实现的)
  3. 数据库的事务、隔离级别、实现方式
  4. 开源社区: 日常工作中有没有参与经历过开源项目,看过什么源码,对该技术的理解
  5. 聊到了redis、kafka; redis 性能高效的原因(重新实现了数据结构、IO 多路复用、多路复现的底层实现epoll,单线程基于内存)
  6. 持久化方式rdb、aof

美团基础架构部实习1,2面(OC)

作者:最肯忘却故人诗 链接:https://www.nowcoder.com/discuss/675413?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

之前面了美团的优选实习,1 面和2面结束后一直没消息,后来告知hc没了,然后应该被美团基础架构部捞了,今天二面结束。面试官问我能实习几个月,我说了两个月,然后面试官让我和导师沟通下,看看能不能实习三个月。

一面:6.17 17:00-18:10

  1. 自我介绍
  2. 如何查找热帖
  3. 10亿个帖子怎么找到TOP 100
  4. 接口和抽象类的区别
  5. ArrayList和LinkedList的区别
  6. voliate关键字
  7. Lock锁和synchronized锁区别
  8. 线程池的工作模式
  9. 常用原子类
  10. CAS的原理及缺点
  11. ThreadLocal原理
  12. fianl关键字原理及被fianl关键字修改的变量是否能被重写(可以反射重写)
  13. JVM内存模型
  14. 常用的垃圾回收算法
  15. 什么时候FullGC
  16. IP,TCP,UDP,HTTP,Socket有什么区别
  17. 长连接和短链接的区别
  18. Http可以实现长连接吗
  19. 进程和线程的区别
  20. NIO模型和NIO常见的三种实现方式
  21. 输入URL发生的事情
  22. 三次握手
  23. 如何建立一个Socket连接
  24. 算法:两数之和

二面:6.24 15:00-16:00

  1. 自我介绍
  2. 项目介绍
  3. ES的架构
  4. 敏感词的过滤
  5. mysql的隔离级别
  6. mysql间隙锁
  7. mysql如何解决各种问题(共享锁和排他锁)
  8. MVCC版本控制
  9. B+树
  10. 输入URL发生的事情
  11. TCP四次挥手
  12. TCP中的定时器
  13. tcp长连接判断对方断开的方法
  14. 算法:动态规划 硬币数
  15. 自我评价,优点及缺点
  16. 自学中的困难

科大讯飞一面、贝壳面经一、二面

作者:offer——searching 链接:https://www.nowcoder.com/discuss/675492?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

科大讯飞一面:

自我介绍

网络协议:

  1. DNS域名服务器单次程耗时50ms,客户端到服务端耗时10ms,后端逻辑1s,共计耗时多少?(后端1s+IP获取100ms+TCP30ms+信息往返20ms,提到RST等知识点,不知正确与否)
  2. HTTPS过程(TCP三次握手后,客户端发送加密协议等信息通知服务端,服务端制造证书和公钥发送给客户端,客户端公钥加密私钥发送给服务端)
  3. HTTP1.0和2.0区别(长连接,多路复用,请求方法增加,请求头压缩等等,本来是问2.0和3.0,我说只知道1.0和2.0的,就问这个了)

JVM:

  1. 如何辨别内存泄漏和内存溢出(先说明概念,通过USS判断是否内存泄漏,引出CMS和G1,提到了CMS的清理过程、G1的分区结构和性价比列表)
  2. 分析进程CPU占用飙升的原因(谈了谈JAVA对象头的结构和虚拟机栈,判断可能是其他进程修改了引用信息,不知对错)

JUC:

只记得谈了线程池

Redis:

介绍了RedLock和8种数据结构

Mysql:

  1. 好像谈了索引,完全记不得了
  2. 写了两道SQL语句,主要是group by、count和子查询

你的职业规划

你要通过哪些方面的学习成为技术专家

期望薪资

贝壳一面:

  1. 自我介绍
  2. 谈谈hashmap
  3. 红黑树转换条件除了冲突元素超过8以外,还有什么条件?(当时不知道,条件是数组长度大于64)
  4. 为什么数组长度是2的幂次(回答了位运算和底层二进制,面试官补充说还有rehash)
  5. 又谈了谈concurrentHashMap,问了size方法的底层实现(就说了加锁)
  6. Mysql索引,三层索引最多的数据量(不知道,面试官说是1kw左右,根据缓存量2M除以索引长度11字节计算,但我算起来是20W)
  7. Redis为什么快(只答了内存操作,无并发,面试官补充数据结构和NIO)
  8. 惰性删除机制(忘了,问如果是自己如何设计,答fork线程维护,面试官纠正随机抽取)
  9. kafka为什么快(回答牺牲可靠性,纠正:顺序读写,批量文件和zeroCopy技术)
  10. kafka为什么不可靠(谈了kafka的发送策略和主从复制,补充:生产能力超过消费能力,producer消息只存缓存)
  11. 一道算法题,环链表识别和长度计算
  12. 快慢指针法(当时忘了怎么用双指针返回长度,强行用hashmap写出来了)
  13. 面完20分钟通知1小时后二面

二面:

  1. 自我介绍
  2. 谈谈hashmap,put和get方法的实现(简单说了说)
  3. 说说了hashmap的rehash(做原有元素的高低位判断,引申到了redis的渐进式rehash)
  4. jmm模型(CPU、高速缓存和内存;堆内存和直接内存)
  5. 你还知道哪些集合类(ArrayList,LinkedList,HashSet,HashTable)
  6. mysql索引类型(hash和B+树),绘画B+树的索引结构
  7. 口述索引查找过程,为什么不用B树(程序预读原理和叶子节点链表)
  8. 一道sql语句(用了group by,面试官补充了having)
  9. 两个有序数组的原地合并(双指针)
  10. offer和其他面试的情况

总结:

科大讯飞的面试官不问原理喜欢问实际案例,答的时候要尽量延申,就算不会也要说相关的原理知识,看重网络协议知识 贝壳一面面试官有些问题答得不全会帮你补充,问的很细,让我知道了以前面试的时候有多少加分点没答出来 二面面试官是团队负责人比较看重沟通能力和代码编程的性格,当时我今天第四面,人已经麻了,表现的不是很好,希望能过!

21届补招:字节电商化社区二面,知乎一面

作者:offer——searching 链接:https://www.nowcoder.com/discuss/675897?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

字节二面:

  1. 自我介绍和项目简介
  2. mysql索引(B+和hash)
  3. 网络请求的过程
  4. 说说NIO(select,poll,epoll)
  5. 八股方面还有一些但是记不清了

算法题:

  1. leetocede 40. 组合总和 II 当时开始想成三数和那题的解法了,用迭代写了20分钟也没写出来

当产品经理提出在你看来很琐碎的需求,你会怎么办(和产品经理沟通,要求说明需求应用价值,如果无法说服其修改需求,按正常流程开发)

手中offer情况

实习公司同事对你的评价

同学对你的评价

知乎一面:

  1. 自我介绍和项目简介
  2. mysql索引(B+和hash,这个知识点问的面试官太多了,我都懒得写回答了!这,就是八股!)
  3. 聚集索引和非聚集索引(同上)
  4. Mysql的主从复制(从数据库依据redolog完成一致性)
  5. binlog和redolog的差异,以及记录写入的先后性(,binlog二进制数据文件,redolog逻辑命令。先后顺序,当时回答binlog先,redolog后,不知对错,面试官没纠正,应该对了)
  6. mysql事务特性(泛谈了ACID,和MVCC)
  7. 谈谈锁(sync关键字和ReentrantLock)
  8. sync关键字和ReentrantLock的区别(层级,功能,重量级三个方面)
  9. 说说分布式锁(谈了Redis和Zookeeper的分布式锁实现原理,也说了自己用mysql做的分布式锁)
  10. 可重入锁在过期前续期失败会发生什么(说了事务回滚和yeid让出)
  11. 谈谈GC(说了CMS和G1,详细介绍完CMS流程,垃圾对象判断、三色标记和清理算法后面试官喊停了)
  12. 被重新标记后,垃圾对象就一定会被回收吗?(不一定,清理时仍会进行判断,如重新可达就不会清理)
  13. 说说引用计数器(忘了)
  14. 知道安全点和安全区域吗?(忘了)
  15. 根对象是什么(只说了虚拟机栈上对象、静态类变量,实际还有锁持有对象等等)
  16. 用过缓存操作吗?(Redis实现过存储)
  17. 缓存数据时遇到过什么问题吗?(没反应过来,好久没人问这些了,要求面试官描述详细情景,结果是缓存雪崩和缓存穿透,就说了些八股,随机过期、布隆过滤器、限流和在数据库操作上加分布式锁)
  18. 删除缓存数据时,是先删数据库还是先删缓存(答了先删缓存,面试官纠正:先数据库,否则缓存会在二次查询时恢复数据)
  19. 说说spring ioc(说了基本特性,一些bean对象实例化和存入容器的过程)
  20. 谈谈springmvc的事务(当时记不清了,就说和mysql事务差不多,又谈了事务传播策略,编程式事务和声明式事务)
  21. 说说Tranctional注解,注解加在save方法上,方法执行失败时会发生什么(不清楚,当时扯了段AOP的实现防止冷场)
  22. spring bean的生命周期(记不清了,就细说了下初始化流程,泛谈了存入容器等待调用和destory,提了下三级缓存和对象的提前暴露)

算法题:

  1. 环链表的逻辑判断(快慢指针法,写的时候有点急,细节没注意好)

总结:

  1. 字节二面的面试官技术八股问的比较少,反而比较关心我的个人经历和沟通能力,可能因为我之前的字节面试对表达能力评估较低,还特意问了我是否面试会紧张,影响逻辑表达
  2. 知乎一面面试官对八股问的较多,同时会描述场景追问实现思路,考验理论联系实际的能力

货拉拉实习java一二面面经

作者:追ぅ風 链接:https://www.nowcoder.com/discuss/676510?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

先介绍一下本人背景,双非大二小菜鸡一枚,五月开始海投简历,由于没有过硬的项目经历(没有微服务那套),学历也不行,大厂简历全挂了,中厂只有东方财富和货拉拉有反馈,东方财富因为实习时间太短,人家没要,只有货拉拉约了面试,许愿hr面

一面(大概45min)

介绍项目

数据库:

  1. mysql有哪些日志?binlog有哪几种格式?
  2. mysql隔离级别有几种?
  3. MVCC说一下
  4. mysql有哪些锁?
  5. 如何定位SQL执行慢
  6. count(1) , count(*), count(主键) 哪个执行快?
  7. 数据库表设计主要注意什么?

redis:

  1. 有哪些数据结构?
  2. rehash过程?提到了渐进式 rehash 和 rehash 时机

java:

  1. java有哪些map?
  2. HashMap源码有看过吗?
  3. ConcurrentHashMap如何保证线程安全的?
  4. java中有哪些锁?他们的区别是什么?
  5. JVM有哪些垃圾回收期?说了一下 G1 和 CMS的区别
  6. 内存泄露和内存溢出
  7. 如何停止一个线程?

框架:

  1. 说一下对 IOC 和 AOP的理解?
  2. AOP用来做什么的?
  3. SpringCloud有哪些组件?
  4. eureka 和 nacos 做注册中心的区别是什么?
  5. Springboot 全局异常如何处理?

问了一下了不了解kafka?我接触过,但是简历上没写

闲聊: 有看过那些书? 为什么想出来实习?

反问环节

二面(大概 30min)

  1. 介绍项目
  2. 线程池参数,拒绝策略,实际使用时线程池参数如何配置
  3. 常用排序算法
  4. tcp三次握手,四次挥手
  5. java的锁,说一下synchronized
  6. jvm知道哪些知识?说了一下运行时数据区,介绍一下G1,说一下G1回收的详细过程

反问环节

总结就是,货拉拉的面试挺常规的,基本都能答出来,只是答得好不好就不好说了,许愿hr面

美团实习面试(一面、二面)

作者:牛客114938609号 链接:https://www.nowcoder.com/discuss/676901?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网

一面:

  1. 谈项目,讨论项目的总体设计流程,其中简单提到redis的使用场景
  2. redis如何与数据库保持数据一致性
  3. 有用redis解决哪些场景
  4. mysql索引了解吗
  5. 为什么使用B+树而不是B树
  6. Innodb与MylSAM区别
  7. Java都有哪些创建线程的方式
  8. 线程池的参数说一下
  9. 线程池都有哪些拒绝策略,线程池的工作流程
  10. TCP三次握手与四次挥手
  11. 说一下TCP中的定时器(说了七种,从建立连接、发送数据、关闭连接都有哪些定时器)
  12. spring的事务传播
  13. springboot的启动流程

二面

  1. 先让我手写一个快排热热身
  2. CPU的调度策略
  3. TCP如何保证可靠传输
  4. ConcurrentHashMap如何保证线程安全性
  5. HashMap为何改为尾插法
  6. 公平锁如何保证公平性
  7. 接口类与抽象类的区别
  8. 悲观锁与乐观锁
  9. 什么情况下产生死锁
  10. MVCC用来解决哪些隔离级别
  11. 如何没有MVCC会如何
  12. ACID每个单独介绍,并且也说了一下都是靠什么才保证对应的特性的
  13. CMS与G1有什么区别
  14. CMS为什么不使用标记整理算法
  15. 什么时候执行Full GC
  16. 单线程的redis为什么这么快
  17. redis如何删除过期key
  18. redis内存淘汰策略
  19. 最后问了一些关于spring bean的问题,生命周期,作用域