非科班水硕的春招实习总结- Java 后台开发

这篇文章主要是记录我春招实习的经历(碎碎念),只是希望能对别人起到一点点的帮助吧。没拿到什么大厂的 offer,不敢在各位大佬面前献丑。

背景介绍

lz 本科通信,硕士电子,读研以来先后搞过一段时间的嵌入式和机器学习,后来由于一些原因都没继续搞下去了,直到去年暑假开始接触 Java,接着又阴差阳错的去了南京一家外企打了 2 个多月的杂(Python 数据清洗),直到部门 leader 离职创业,我便也辞职了。在这实习期间,跟着视频学完了 Java 的基础知识和部分 servlet 知识,回到学校后又摸鱼了一段时间,直到 12 月份开始准备春招实习,lz 先是看了下之前的实习面经,发现重复的考点确实挺多的,遂开始了面向的面经复习策略,复习了操作系统,计网,Java 集合类,虚拟机等方面常考的知识。事实证明这样还是不足以抵挡住面试官的攻势,还需要根据知识点更深层次的学习,完善自己的知识体系。就这样搞完基础知识的复习,过完年上来就到了 2 月中下旬,然后跟着视频做了牛客网的中级项目课,以填充简历。接着就在 3 月中旬开始投递简历,各个平台(牛客网,实习僧,拉钩网,boss 直聘,高校论坛)估计加起来有 100 多家吧,最终艰难上岸,收获了厦门一个小公司的 offer。

资料分享

由于 lz 的学习路线不是很合理以及学习成效并不好,就不瞎指导了,再加上之前逛牛客比较多,便收藏了一波好帖子,为方便牛油查找,遂将链接放在下面自取(侵删)。

Java 面经

这可能不只是一篇面经

如果感觉自己能力不强,又想去BATJ,我的经验对你将很有用!

2018 这一年

【Java面经】非科班渣硕面经,大佬请忽略

非科班的渣渣总结

你不是一个人啦(算是春招总结吧,另含面经资料啥的)

非科班本科菜鸡投的337家(Java后台)

Java 书单

Java开发好书推荐-校招帮我找到好工作

面试复习资料汇总

Java 学习资料

CyC2018/CS-Notes

Snailclimb/JavaGuide

crossoverJie/JCSprout

【最全】Java 高阶知识总结

Java 最常见面试题 200  汇总

建议贴

给正在备战春招/暑期实习的同学一些小建议

双非硕士的春招秋招经验总结——对校招,复习以及面试心态的理解

老铁,掏心窝子写的求职经验

如何优雅的介绍自己的项目经历

面试情况

阿里新商场(模拟面试)

个人情况

个人情况

自我介绍

你为什么学 Java ?

你的计算机专业基础课是怎么学习的?和计算机科班的比较,你觉得你学的比他们更深还是说差不多?

Java 基础

Java 的八种基本数据类型,每个占多少个字节?

Java 中抽象类和接口的区别?

Java 的三大特性

排序算法

讲一下快排的思想

在最好的情况下快排的时间复杂度是多少呢?

快排是如何选择切分元素的?

操作系统

说一下线程和进程,它们之间的区别

线程同步的机制

同步和异步的区别

阻塞和非阻塞的区别

操作系统中死锁的四个必要条件

Java 集合类

ArrayList 初始化时数组的默认长度是多少?

ArrayList 扩容是扩容多少倍?扩容后是用原来的数组还是新的数组?

ArrayList 是一个线程安全的集合类吗?

判断一个集合类是否为线程安全的机制是什么?

说一下 Fail-Fast 机制,结合源码说一下(如果可以的话)

ArrayList 和 LinkedList 的使用场景

说一下 HashMap 的底层数据结构

说一下 HashMap 的存储逻辑(put() 函数)

HashMap 存储元素时 key 完全一样该怎么处理?

HashMap 的默认长度是多少?扩容是扩成几倍?

若两个 key 的 hashcode 值相同但 equals 不同,也就是说它们会插入到同一个桶里,新添加的节点是插入到已有元素的前面还是后面?

为什么 JDK 1.7 是头插法,JDK 1.8 是尾插法?

JDK 1.8 的 HashMap 是否线程安全?

既然 HashMap 不是线程安全的类,有啥办法解决这个问题?

ConcurrentHashMap 和 HashMap 的区别?为什么 ConcurrentHashMap 会线程安全?

ConcurrentHashMap 虽然是线程安全的,但它也存在什么问题?

了解 TreeMap 吗?TreeMap 最大的特点是什么?为什么已经有了 HashMap 了还要有 TreeMap 类?

说一下红黑树的特点

你知道 Http 状态码?302 是代表啥意思?502 是代表啥意思?

线程池

Java 中多线程有哪几种实现方式?

线程池了解吗?说一下为什么要有线程池?

说一下线程池核心的几个参数

JVM

说一下 JVM 的垃圾回收器  CMS G1

说一下 CMS 的优缺点

回收的机制是什么?凭什么判断一个对象会被回收?

说一下 GC Roots 包含哪些内容?

什么情况下会发生新生代 gc?

Eden 区满了之后会怎么样呢?说一下这个处理流程

Eden 区 和 From Survivor 区中经过 gc 后还能存活的对象移动到 To Survivor 区后,那第二次 GC 时是取 Eden 区和 From Survivor 进行 gc 还是说取 Eden 区和 To Survivor 区?

项目

Redis 和 数据库是怎么保持一致性的?

Spring 和 SpringBoot 的区别?

说一下 Spring IOC 和 AOP

说一下 bean 的四个注解,可以让对象注入的注解

说一下你这个项目是根据什么来做的

看你项目中用 Redis 中的 List 来实现异步队列,说一下具体是怎么做的?是如何基于 Redis 来实现异步的?有没有一个拉取消息的过程?还是说基于 Redis 你就把它放到队列里,然后有人来处理还是说订阅处理

腾讯

一面(PCG)

ThreadLocal 类的底层实现是怎么实现的?使用场景

保存用户信息是一个线程保存一份还是说一个数据结构保存一份?

那这个线程的生命周期?什么时候启动线程,什么时候结束线程?

一旦登录了这个线程一直会存在,退出了之后线程才会销毁吗?

你这个服务是分布式还是单机的?

在单机环境下一个进程可以开启多少个线程?同时能支持多少个用户登录?

进程和线程之间的关系?

Java 是单线程的还是单进程的?

Redis 有哪些数据结构?

list 如何实现的异步消息队列?

Redis 在单线程下实现高并发的?核心的机制是什么?

IO 多路复用模型有哪些?

select 和 epoll 有什么区别?

QQ 看点部门

自我介绍

介绍一下头条资讯项目

你刚才说内容是你自己添加的内容,那你添加的内容有多少?

登陆注册功能的话是可以通过 QQ/微信 登陆,还是说自己实现的登陆方式?

这个刷图片的时候有一些推荐算法在里面吗?

新闻是按什么排序的?

站内信具体是一个什么功能呢?

站内信的消息的收发,展示完全是你自己写的是吧?

一次请求多久时间可以返回?

feed 流中刷新一次会出来几篇文章?这几篇文章是动态出来的吗?这几篇文章出来的耗时是多少?

介绍下 Kaggle 比赛的这个项目

这个项目的训练数据哪里来的?

介绍一下逻辑回归模型吧

了解线性回归吗?

说一下这个 Scikit-Learn 库吧

介绍下 Redis 的基本数据结构

说一下这 5 种数据结构的底层实现

说一下你看过的 Redis 源码

Redis 的哪种数据类型用到了跳表结构?

滴滴

滴滴网约车Java后端开发凉经

京东数科

自我介绍

说一下 Java 里面的数据结构

说一下 ArrayList 和 LinkedList 的区别

说一下 ArrayList 的底层

ArrayList 是线程安全的吗? 怎么解决 ArrayList 线程不安全的问题

在 Java 中如何实现一个线程?

设计模式了解吗?

说一下什么是设计模式

说一下单例模式及其应用场景

了解哪些数据库?

说一下 Redis

Redis 是数据库吗?

如何优化查询性能?

如果是全表扫描,如何优化?

一般看哪些博客或者逛哪些网站?

追一科技

自我介绍

头条资讯项目有没有前端和后端,前后端是怎么交互的,交互时有没有做权限的管控?

网关, http    前后端交互的加密的协议,数据层面的协议有没有了解过?

Spring Boot 和 Spring MVC 有什么区别?

说一下 SpringMVC 的执行流程

SpringMVC 中用到了哪个核心的 Servlet ?

Spring 里面有哪些核心的特性?

Spring 注入的方式有哪些?

Spring 的 scope 里面有哪几个属性?

说一下 HashMap,Hastable ,ConcurrentHashMap

给定一个字符串,统计每一个字符出现的次数

说一下 hashmap 的插入过程

设计一下权限,比如说后台的不同管理员需要看到不同的菜单

Java 的一些设计模式了解吗?

Java 的线程池有哪些?

线程池的作用

了解 dubbo 微服务 SpringCloud 吗?

中间件有用过吗?

说一下冒泡排序

学习 Java 的时长

还有其他的项目吗?

小红书

自我介绍

介绍下头条资讯的项目

站内信功能是如何实现的?是实时通讯吗?就不是像一对一聊天的那种对吧?

评论的话是不是我发布一条资讯,别人可以评论我,然后我可以指定他某条评论去回复?还是说大家都在他发布的资讯下面去评论?

Redis 了解吗?项目中为什么要用到 Redis ?

为什么 Redis 会这么快吗?

说一下 SpringBoot 的 IOC 概念

JVM 内存管理是看过书还是说在实际项目中做过调优?

说一下堆(新生代,老年代)里的 GC 收集算法

如何判断一个对象是否可回收?

一个对象在堆里的流转是什么样的?

TCP 和 UDP 的区别

你的这个项目的规范是 Restful 规范吗?

基本的 get 和 post 的区别

进程间的通信方式

算法:实现一个最小栈,它有正常栈的 push 和 pop 功能,还有一个 getMin 的方法可以获取当前栈中最小的值,不需要取出来最小值,是一个 Integer 的栈。

Momenta

对 Go 语言了解吗?

Python 熟吗?

C 语言用过吗?用 C 语言开发过小程序吗?

对容器和 K8S 熟悉吗?

Restful 了解吗?

说一下 Http 的 5 个 Methods

如果在项目中你没有用 Restful 的 http  方式的话,那你是用什么方式去做隐层调用?

自我介绍

说一下你做的这两个项目,这两个项目是什么时候做的?

问头条资讯项目,你用了 Redis 的哪些功能?

为什么要用 Redis 把所有点赞的人放在一个队列里?是怎样一个业务呢?

为什么不放在 MySQL 里面,直接用两张表就好了?

那 Redis 与 MySQL 是怎样一个关系呢?

MySQL 是怎样搭建的?有几个副本?只有一个库对吗?

有没有用到 MySQL 的 binlog ? 对这个了解吗?

主从复制

如果某一个人对一个新闻点过赞但后来取消了,你是怎么做的?你是能追踪到某个人吗?

如何统计所有对一个新闻点赞过的人,包括曾经点赞过后来取消了的那一部分人?

当点赞取消的时候,你的人数会减 1 吗?

提一个业务需求:我要快速找到点过赞但后来又取消的人,这个如何实现?

如果说我点了赞取消了然后又点赞了,这样的话你的表是不是又要再添加一列?

当你的数据库非常大的时候,比如 2 T 的数据,我要往某一个表里加一行数据这个事情负载就会非常的大,那这该如何处理,有啥更好的办法吗?

登陆系统怎么做的?

登陆了以后服务端会给客户端返回一个 Session , token  还是一个 cookie ?

token 是什么类型?是 Java Web Token (Jession web token) 吗 ?

token 是做什么用的?

客户端是怎么带上 token 的?是在哪里带上的?你发送的是什么请求,它是怎么带上的?

http 请求分为 header 和 body ?它是放在哪里?

华为

一面

自我介绍

算法题:给定任意一个字符串,求出现次数最多的字符。

ArrayList 和 LinkedList 的区别及它们的使用场景

重载和重写的区别

数据库有哪几种搜索引擎,它们的区别是什么?最大区别是什么?

行级锁和表级锁的区别

MySQL 除了 DML 之外,还有哪几种语言?

MySQL 有哪几种连接方式,分别解释一下

当使用左连接时,左边存在而右边不存在的行该怎么处理?

简单说一下主键,索引,外键

二面

成绩和奖学金

团支书的职责和感受

最成功的事是什么?

当遇到压力的时候是怎么调节的?

遇到的最大挫折是什么?

意向工作城市

网宿科技

一面

自我介绍

JDK 1.8 有哪些好用的特性? JDK 1.7 和 JDK 1.8 的区别

你用 Python 做过什么东西?

Java 集合类

你阅读过哪部分源码 ?

说一下 ConcurrentHashMap 的原理

Hash 会有什么问题 ?

怎么避免或者减少哈希碰撞 ?

HashMap 和 HashSet 的区别

JVM

Java 是怎么管理内存的 ?

Eden 区和 Survivor 区的容量是怎么分配的 ?

什么情况下会触发 Minor GC ?

类的 Class 对象是放在哪个区域 ?

StackOverflowError 是什么情况 ?哪一块内部不足会引起栈溢出,什么情况下会引起栈内存不足?

说一下类加载过程,类的生命周期

MySQL

说一下你对 MySQL 的理解

MySQL 有哪些引擎吗 ?

简单说一下对索引的认识

MySQL 中 B  树叶子节点中存放的是什么?

说一下 MySQL 的三范式,或者说在开发中有没有遇到三范式方面的问题

Redis

Redis 有什么优点 ?

你刚说到 Redis 是内存数据库,那 Redis 宕机时数据还会存在吗 ?

内存和硬盘的区别

假设在电脑硬盘上存放了一个 word 文件,当点开此文件时,这个文件是否要加载到内存中 ?

假如说 Word 文件有 4 M ,内存只有 2 M,怎么处理这种情况 ?

需要排序的数据很大,比内存还大,这种情况该怎么处理?

框架

SpringMVC 的请求过程,从一个请求过来,到返回请求,SpringMVC 是怎么处理的 ?

Spring 有哪些特性 ?

MyBatis 中 # 和 $ 有什么区别 ?

网络

TCP 有哪几层 ?

TCP 是属于哪一层?

IP 是属于哪一层?

10.8.123.121 是一个内网地址还是外网地址?是一个合法地址吗?那 10.8.256.121 呢?

HTTP 是在哪一层?

传输层一般有哪几个协议?

说一下 TCP 和 UDP 的优缺点

UDP 的使用场景

HTTP 是基于 TCP 和 UDP 还是说和这两者没关系?

谈一下你对 HTTP 的理解

既然说 HTTP 是无状态的,那服务器怎么记住上次请求的用户?

Session 和 Cookie 有什么关系?

请求两个不同的网站,比如 Google 和 baidu.com ,那请求 Goole 网站的时候会把请求百度时的 Cookie 带过去吗?

项目

头条资讯项目中的内容是怎么产生的?

MD5 加密算法有什么特点?

为什么不用 hhd,3des 等其他加密算法?有没有考虑过这个问题。

如何做到简化后续开发成本?

有没有遇到过 A 用户获取自己的信息时是获取的 B 用户的情况?

说一下 ThreadLocal 的理解,或者说你对它的理解

多线程

对多线程编程了解吗?

AQS 了解吗?

二面

项目中有涉及到界面这一块吗?登陆入口界面

数据是加密完才传输到后台吗?

你做的功能可能只考虑到了密码校验这一块,有考虑到密码存储这一块吗?就是说账号密码有存到数据库吗?

数据库里面存放的密码是明文还是密文?

你是用 MyBatis 来通过写 SQL 语句还是用 XML 映射的方式来配置 ?

使用 MyBatis 这种数据库框架相比之前写 JDBC 语句去调用的方式有哪些优点?

有了解数据库连接池吗?

关于 Java 虚拟机,平时是只看了理论还是说平时实践过,比如说自己产生了一些数据,然后看它是如何回收的?

什么时候会触发内存回收?

怎么判定一个对象不存活,需要被回收?

了解 SpringCloud 等微服务的概念吗?

对于前端的 CSS,前后端的交互 Ajax 等了解吗?

搜狐畅游

个人基本情况

详细介绍下你的项目

站内信是怎么实现的,具体说下,比如当我编辑一条消息点提交发送后,是怎么上传给服务器的,需要带些什么参数吗?结合 CDN 说下,它是怎么发送过去的?然后另外一个用户是怎么收到这条消息的。

项目的邮件功能是怎么实现的?

具体说一下是怎么加密的,或者加密算法的核心几行代码

说一下异步队列是如何实现的

缩短了用户的平均请求等待时间是指哪里的时间?

Redis 除了用到了它的 List 结构,还用到 Redis 的其他结构没?

为什么要用 Redis 的 set 结构?

这个网站有评论功能没?是像知乎那种嵌套的评论吗?比如其他人可以在你的评论里面再评论。如果要你设计这种评论,你该怎么设计?

阅读过 JDK 哪些源码?说一下。

这些技能清单里面还有哪个是你比较熟悉的,说一下

怎么学习源码的?

同城艺龙

你对集合了解多少

讲一下 HashMap

HashSet 是如何 set 的

线程的状态转换

Thread.wait() 和 Thread.sleep() 的区别

你了解 JUC 吗

static 代码块顺序问题

你了解数据库的底层吗

你觉得你还有什么擅长的?

堆糖

自我介绍

说一下 Java 的 Object 类

说一下 Thread.sleep(),它会空出 CPU 吗?

阅读过哪些源码?挑一个熟悉的说一下

说一下 HashMap

HashMap 中链表转成红黑树的阈值是 8,为什么是 8?

一个实例 Instance 在 JVM 中是怎么表示的?它的数据结构是什么样子的?

说一下 Redis 的数据结构

算法题:用两个栈实现一个队列

说一下对 Spring 的了解

亿联网络

自我介绍

说一下 JVM 内存分区

说一下 Java 发射,它的使用场景,在项目中有用到吗?

设计模式了解哪些?

Java 多线程了解吗?

说一下线程互斥的方法

说一下线程同步的方法

Java 的锁了解吗?

MySQL 存储引擎有哪几种?

事务的四大特性

说一下索引

说一下复合索引

说一下幻读

介绍一下头条资讯项目

说一下项目中的难点

用户的点赞点踩全都放在 Redis 还是 MySQL 里面吗?

当用户量很大时,比如今日头条的用户量,数据还放在数据库里面吗?或者说怎么处理这种情况?

说一下 Spring AOP

抛开 Spring 来说,如何自己实现 Spring AOP ?

网络通信了解吗?

深信服(测试岗)

一面

讲一下 JVM 垃圾回收处理

有过 JVM 调试经验吗?

Python 的垃圾回收和 Java 的垃圾回收有什么区别?

说一下 JDK 1.8 之后的 hashmap 的底层原理,使用什么实现的?

对算法了解吗?

介绍下头条资讯的项目

有看过 Redis 源码吗?

异步队列是如何实现的?

对网络熟悉吗?网络协议,路由协议(静态路由,策略路由)等

TCP 和 UDP 的区别

TCP 的滑动窗口了解吗?

怎么最大化的利用滑动窗口来使传输速度最快以及可靠传输?

了解 Java 多线程吗?

线程池和自己创建线程的区别

Linux 熟悉吗?

对虚拟化了解吗?

二面

介绍一下项目

闲聊

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券