字节跳动、滴滴java工程师社招面经

字节跳动:

一面:

1. 自我介绍

2. 做的项目价值,架构设计,给你一个集群你会怎么分布,考虑哪些因素,容灾、负载均衡

3. 让你来设计咸鱼,你会怎么设计?模型设计

4. linux常用指令


二面:

1. 算法在线编程

2. 项目,主要做了什么,项目中碰到的问题有哪些,都市怎么解决?你觉得那个项目是最有挑战的

3. java多线程,线程池选型,为什么要选这个,底层实现原理


三面:

1. 你最熟悉的项目,做了什么,为什么这么做,项目价值

2. 推广广告,你会怎么设计?

3. java基础,JVM内存模型G1和CMS垃圾回收器

4. 如何中断线程,await和sleep区别

5. 设计秒杀系统

6. spring生命周期,几种scope区别


四面:
跟上面差不多
五面:
主管面,问项目,然后说部门现在在做的内容
六面HR:
期望薪资,为什么要离职,现在的级别


滴滴

基本也是问java基础,线程池,跟二面面试官讨论了些设计模式,模型设计,接口设计的原则,分布式缓存、rpc原理、消息幂等怎么实现、redis、zookeeper原理,HSF和Dubbo区别,整体跟之前面试问的差不多。
前端写过一些,所以问了些react和nodejs
HR:离职原因,这么多公司offer你会考虑滴滴吗

总结

整体上面试总共就是考察这么几个部分:

1. java基础知识和源码

2. 线程池,这个每个面试都必问,结合使用场景和原理说一说

3. 分布式必要要去了解,每个面试基本都会问,redis、dubbo、kafka或者其他,集群管理zookeeper

4. 数据库性能调优,组合索引和原理也是必问

5. 业务设计能力和架构negligence考察

#字节跳动##滴滴##Java工程师##社招##面经#
全部评论
楼主滴滴2轮技术面试吗
点赞 回复 分享
发布于 2021-05-19 10:19
楼主几年经验?
点赞 回复 分享
发布于 2021-04-11 17:58
楼主几年经验?
点赞 回复 分享
发布于 2021-04-11 16:50
兄弟,你面的什么级别?P6?
点赞 回复 分享
发布于 2021-04-11 16:26

相关推荐

好伤心,面试官结束时候评价是整体还行,等视频挂了5分钟内收到感谢信这前后反差,我只好安慰面试官尊重自己,但是谁来安慰我呀面试上来开始问八股1,说说 url到浏览器页面显示整个过程2,http 缓存3,流式输出,你知道哪些可以实现的方式?AI生成到前端你觉得采用那种方式?3,css 设置的元素要不断旋转,怎么写(不到一分钟面试官问我是否会,不会可以换一题,那我还行想到用什么,那换一题吧)keyfram 里面设transform;animation 里面应用设定的spin;代码如下:(linear 匀速转,infinite 无限循环)@keyframes spin {    from {        transform: rotate(0deg);    }    to {        transform: rotate(360deg);    }}.spinner {    animation: spin 2s linear infinite; /*持续2秒 转一圈*/}4,输出解释题:function app() {    const [count, setCount] = useState(0)    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [])     return (        <div>            <h1>{count}</h1>        </div>     )}会输出打印什么?h1位置 count 显示什么那当然每隔1s 打印出0,页面显示也是05,好的,你分析他原来想要实现什么效果,然后现在这段代码怎么改能实现预期效果,你有几种方式?【用useRef 、手写update函数,设定count 动态依赖项,使用setTimeout 递归(但是容易爆栈)】我当时有点懵,当然是没考虑到function app() {    const [count, setCount] = useState(0)    const countRef = useRef(count);    useEffect(() => {        setInterval(() => {            console.log('count', count);            // setCount(count + 1)            setCount(countRef.current + 1)        }, 1000)    },[])    useEffect(() => {       const update = () => {        console.log('update')        setCount(count + 1)         setTimeout(update, 1000) // 递归调用, 会导致栈溢出       }        update(); // 初始调用    })    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [count]) // 动态依赖,但是频繁定时器创建和销毁    return (        <div>            <h1>{count}</h1>        </div>     )}7,输出顺序是什么?function app() {        promise.resolve().then(() => {        console.log('promise')    })    useEffect(() => {        console.log('useEffect')    }, [count])    useLayoutEffect(() => {        console.log('useLayoutEffect')    }, [count])    return (        <div>            <h1>{count}</h1>        </div>     )}输出:useLayoutEffect promiseuseEffectuseLayoutEffect(dom更新后,相当浏览器刷新渲染了,立即同步执行)、promise (微任务,在同步执行完清空微任务队列)useEffect(异步执行,事件循环后执行)期间问了useLayoutEffect 和 useEffect 区别8,看下面输出什么?(弱弱心想:不能出点其他的吗?)function Foo() {    getName = function () {        alert(1);    }    return this;}Foo.getName = function () {    alert(2);}Foo.prototype.getName = function () {    alert(3);}var getName = function () {    alert(4);}function getName() { alert(5); }Foo.getName(); // 2getName(); // 4Foo().getName(); // 1getName(); // 1new Foo.getName(); // 2new Foo().getName(); // 3new new Foo().getName(); // 3看这是金典js输出,但是解释起来费劲呀,解释不断问我:变量提升到哪,函数提升到哪,可以修改一下代码看看提升到的位置,new 关键字分析一下,作为普通函数调用还是.... (问下牛友,这种题目去那找能复习到呀)9,写个sum函数实现下面输出:console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10function sum(...args) {    let total = args.reduce((acc,cur) => acc + cur,0);    function innerSum(...newArgs) {        total += newArgs.reduce((acc,cur) => acc + cur,0);        return innerSum;    }    innerSum.sumOf = () => total;    return innerSum;}console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10
点赞 评论 收藏
分享
评论
3
58
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务