知乎热议:刚毕业就上岸是一种什么样的体验?

147 篇文章 0 订阅
140 篇文章 0 订阅

前言

卑微本科上岸小总结!目前只拿到字节跳动的offer,但是我自我感觉还能接受,下面是我总结的一些面试题和经验,希望对在找工作的你有些帮助!

项目:

项目难点
定时任务的技术点
单机部署的项目,如果部署两个节点会有什么问题(他就想问多节点执行同步任务用什么框架)
网页上两个账号同时登录,怎么做到第二个账号把第一个顶下去?

基础:

多线程
线程池参数
FixedThreadpool有什么问题,用了linkedBlockingQueue,会oom?(问我拒绝策略是什么,我说抛出异常,源码确实是这样,但是他是linked Blocking Queue,根本不能执行拒绝策略)
Mysql
查询慢是什么原因
怎么知道索引哪里慢,怎么知道哪里索引没用上(explain)

Redis

redis和MySQL数据一致性
redis用过吗,我说知道某些场景怎么解决,他直接猜出来我要说缓存雪崩,击穿什么的了,直接跳过

Spring

动态代理
循环依赖怎么办

Java

ArrayList和LinkedList介绍
Hashmap介绍
Concurrentmap介绍
线程安全用哪个?

cas问题?

CAS的缺点有如ABA问题,自旋锁消耗问题、多变量共享一致性问题.
1.ABA:
问题描述:线程t1将它的值从A变为B,再从B变为A。同时有线程t2要将值从A变为C。但CAS检查的时候会发现没有改变,但是实质上它已经发生了改变 。可能会造成数据的缺失。
解决方法:CAS还是类似于乐观锁,同数据乐观锁的方式给它加一个版本号或者时间戳,如AtomicStampedReference
2.自旋消耗资源:
问题描述:多个线程争夺同一个资源时,如果自旋一直不成功,将会一直占用CPU。
解决方法:破坏掉for死循环,当超过一定时间或者一定次数时,return退出。JDK8新增的LongAddr,和ConcurrentHashMap类似的方法。当多个线程竞争时,将粒度变小,将一个变量拆分为多个变量,达到多个线程访问多个资源的效果,最后再调用sum把它合起来。
虽然base和cells都是volatile修饰的,但感觉这个sum操作没有加锁,可能sum的结果不是那么精确。
2.多变量共享一致性问题:
解决方法: CAS操作是针对一个变量的,如果对多个变量操作,
1)可以加锁来解决。
2)封装成对象类解决。

我的面试经验汇总

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!
有需要的朋友点击这里自取就好了,希望资料对你有帮助!

SpringCloud

Redis

JVM

MySQL

Zookeeper

Kafka

Dubbo

spring

Rabbitmq

springboot

最后

由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累…所以需要阅读阅读学习的,大家“一件三连后:“查看下方””即可拿到手之后自己学习吧,博主真的打字打累了。

有需要的朋友点击这里自取就好了,希望资料对你有帮助!
预祝大家前程似锦,工作顺利!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值