简历+面试

简历模板

在这里插入图片描述

面试

算法准备

作为一个后台开发人员,算法白板编程是必备的。算法积累是一个长期的过程,需要不断地去刷题保持手感。

学习算法的前提是数据结构要足够地熟悉,我大学的时候数据结构和算法都很差,经过数十场面试才慢慢将算法重视起来,通过阅读《算法 第4版》搭建个人基础,然后通过刷牛客网leetcode来积累经验。

因为刷算法题更多地是针对面试,所以可以按照分类去刷一定数量的题目,有相应的解题思路和模版就好。

我是按照数组、链表、树、队列、栈、哈希表、并查集、动态规划这些分类去刷的。因为很多面试都是在牛客网进行编程的,因此需要到牛客网手写一定数量的题目,懂得输入输出控制

因为面试题目很多都是出自剑指offer的,可以在牛客网多刷几遍,然后看下标准答案,记住解题思路。
在这里插入图片描述
像头条这种公司,题目基本都是出自leetcode,因此面试之前可以准备几个月时间去刷题,不好的一点的是leetcode中的头条专项题目是收费的,并不建议大家去购买。

我的刷题策略是先做探索里面的专项,然后刷leetcode前两百道题目(热门面试题),最后根据标签刷对应的题目(比如动态规划),medium大概刷200道就好。
在这里插入图片描述
在这里插入图片描述
多线程sql语句编写也是面试中的热点,sql语句刷个20道题目就够了,多线程就几道题目,比较少。
在这里插入图片描述
视频学习
我个人认为看视频复习是非常高效的,而且会有很深刻的记忆,我一般会到bilibili网站上搜索复习视频,比如算法导论、leetcode刷题、java面试等等,挑取其中播放量高的进行学习。

我个人非常喜欢马士兵老师的视频,质量高,而且内容非常的有深度,适合求职者看。

阿里、头条、拼多多等面经总结

java基础

1.为什么String定义为final。
2.描述下java集合,项目中用到哪些。
3.StringBuilder和StringBuffer的区别。
4.HashMap中常用的方法有哪些,什么时候会触发树化,jdk1.7和1.8实现的差异,1.7的实现为什么会出现死锁,画图说明下。5.HashMap和TreeMap的区别。
6.说下枚举类型,底层实现原理,项目中是如何使用的。
7.详细描述Error和Exception(运行期和编译期)的区别。
8.创建线程的方式,线程的生命周期。
9.ThrealLocal实现原理,为什么会出现内存泄漏。
10.volatile关键字原理,项目中是如何使用的。
12.synchronized和lock的区别,底层实现原理。AQS队列实现原理,用了哪些设计模式。公平锁和非公平锁、独占锁和共享锁、读写锁分别是如何实现的,为什么说非公平锁比公平锁性能高。
13.序列化和反序列化。
14.深拷贝和浅拷贝区别。
15.java内部类的区别(成员内部类、静态嵌套类、方法内部类、匿名内部类 )。
16.java线程池参数描述,线程池工作原理,线程池如何调优。
17.主线程到达一个条件,需要多个子线程去执行任务,等子任务都执行完后再往下走,如何编写代码(CountDownLatch)。
18.写个程序,两个线程交叉打印1到100的数字,需要多种实现方式。

JVM
1.JVM运行时数据区域和内存模型描述,jdk8为什么移除方法区。
2.垃圾回收算法和垃圾回收器描述,在工作中,新生代和老年代分别用的什么垃圾回收器。
3.新生代和老年代什么时候会触发GC。
4.四种引用区别。
5.CMS垃圾回收过程描述,CMS有哪些缺点,对比G1。
6.GC调优步骤,有实操过吗。
7.描述下JVM类加载过程,如何自定义类加载器。
8.描述下双亲委派模型,为什么需要双亲委派模型。
9.泛型是如何实现的,逃逸分析知道吗,说下。
10.OOM、内存泄漏如何排查,用到哪些工具,如果不用工具如何进行定位。
11.机器负载变高如何排查,如果发现是jvm进程引起的,如何定位到代码行。

Spring框架
1.Spring框架用到了哪些设计模式。
2.Spring生命周期详细描述。
3.Spring是如何解决循环依赖的。
4.Spring扩展点有哪些,项目中是如何应用的。
5.Spring IOC、AOP描述。
6.Spring事务和MySQL事务的区别,Spring事务传播机制介绍,Spring事务失效和解决方案。
7.Spring全局异常捕获如何编写。
8.AOP动态代理实现:jdk动态代理和cglib实现差异,cglib性能为什么比jdk动态代理性能高,Fastclass机制描述下,哪些方法不能被动态代理。
9.AOP失效举例,为什么会失效,如何解决。
10BeanFactory和FactoryBean的区别。
11.Spring创建了单例对象,如果多线程并发对属性赋值,造成相互覆盖的情况,如何处理。
12.SpringMVC和SpringBoot的区别。

MySQL
1.事务描述,ACID讲解。
2.事务隔离级别描述,脏读、不可重复读、幻读区别,MVCC机制讲解。
3.Innodb如何解决幻读,间隙锁实现详细描述。
4.left join和inner join的区别,嵌套子查询如何优化。
5.如果线上出现慢sql,如何定位和解决,有实际动手优化过慢sql吗。
6.binlog机制描述,binlog日志格式有哪些。
7.MySQL主从架构(读写分离),主从数据复制过程,数据复制过程丢失如何处理。
8.分库分表如何实现,用过哪些分库分表插件,底层原理是怎样的。
9.索引有哪些种类,建立索引的原则,聚簇索引和非聚簇索引实现区别,联合索引如何使用。
10.mysql写入数据的时候,是先把数据写到缓冲区,然后再flush到磁盘的,如何在flush过程中发生了宕机,数据如何恢复。

Redis
1.redis数据类型,说下跳跃表是如何实现的,可以用什么数据结构替换。
2.删除过期key策略有哪些,内存淘汰策略有哪些,分别什么时候触发。
3.redis线程模型和内存模型。
4.redis持久化机制。
5.redis集群方案。
6.让你设计一个redis,你会怎么做,有看过redis源码吗。
7.了解一致性hash算法吗,描述下。
8.用redis实现一个分布式锁。
9.缓存穿透、缓存击穿、缓存雪崩区别和解决方案。
10.布隆过滤器知道吗,说下原理。

Dubbo
1.描述一下rpc调用过程。
2.让你实现一个rpc框架,你会怎么做。
3.链路跟踪和熔断机制了解吗,框架层如何实现的。
4.了解哪些序列化协议,有什么区别,项目中用的是什么协议。
5.说下Netty,bio、nio、aio区别,select、poll、epoll区别,什么是零拷贝机制。

Kafka
1.Kafka、RabbitMQ、RocketMQ区别,为什么RabbitMQ时延最低,知道事务消息吗。
2.Kafka生产者、消费者、协调者、服务端工作机制,描述数据从生产端到消费端到过程。
3.如果出现数据丢失或者数据重复消费如何处理。
4.Kafka为什么高吞吐量。
5.Kafka是如何实现exactly once语义的。
6.让你设计一个消息队列,你会怎么设计。

Zookeeper
1.zookeeper节点类型、服务器角色,watch机制。
2.描述下ZAB协议。
3.应用场景。
4.使用zookeeper实现分布式锁和读写锁。

算法编程
1.无重复字符的最长子串
2.二叉树的直径
3.二叉树最大宽度
4.寻找旋转排序数组中的最小值
5.旋转链表
6.LRU缓存机制
7.数据流的中位数
8.搜索旋转排序数组

设计模式
1.单例模式:多种实现方式,double check实现原理,枚举类实现(枚举类为什么不能被反射)
2.模版方法设计模式:工程中的应用
3.静态代理和动态代理设计模式
4.装饰器模式
5.适配器模式
6.工程方法模式
7.责任链模式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值