开篇
说一下我大概的情况。渣本毕业,工作已经有快3年了,从高中就开始玩小破站。无论是学习还是日常放松都是在b站。大学主学的软件技术专业,所以,入职bilibili是我大学时期给自己定的小目标。
在学校,专业学的算中上的水平,课本知识和老师讲的东西基本消化的八九不离十,也自己动手写过属于自己APP,参与过一些社团协会共同开发的项目。
刚毕业时候,b站也有校招,满腔热血的参加了,准备了好久,结果还是没有被录用。当时,挺失落的吧,但是也并没有放弃我进B站工作的梦想。
7月份的时候一位学长知道我非常想进bilibili,特意告诉我B站有内推名额,问我要不要来试一下,我一口直接答应,然后把手里的工作辞掉了,破釜沉舟一把,宅家里半个月复习。将学校所学知识点,以及工作3年的积累经验都系统的归纳整理了起来。再过一篇,然后就是刷面经,面试场景练习等等等。
世间所有的付出终是有回报的,努力的耕耘,也没有被辜负。从离职到入职,一个月时间,顺利的入职了哔哩哔哩,也是要感谢网友们提供的宝贵经验,所以整理了一下,把我的面经整理一下也分享出来给大家。
Java相关
1.重载函数的签名(区别是否是重载函数)
答:方法名+参数类型+参数顺序(返回值不是)
2.finalize的工作原理
答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。
3.一个对象的创建过程
答:例如有一个Dog类:
1.即使没有static,构造器其实也是静态方法,所以当首次创建Dog时或者Dog的静态域或者静态方法被访问的时候,Dog的class对象会被加载。
2.在加载Dog的class的时候可能会发现其有基类,此时先暂停Dog的加载,转而去加载其基类。所以基类的static域比子类先初始化。
3.载入class文件之后,会创建一个该该类的class对象,所有关于静态初始化的动作会被执行,所以静态初始化只在Class对象首次加载时进行一次。
4.当使用new的时候,首先为Dog对象在堆上分配足够内存空间。这块内存控件会被清零,所有实例都被初始化成了默认值,包括基类。
5.执行所有字段定义处的初始化,从基类开始。
6.执行构造器。(在第一行会执行基类的构造器)
4.对象的销毁是按照创建的逆序来进行的。
5.final的方法和类都不允许覆盖和继承。private默认实现了final。
6.简述内部类的特点
7.形式参数可被视为local variable,也就是说形式参数相当于在方法中定义了一个局部变量a,当传入c时,只是将c指向的对象给a
8.finally 语句块是在 try 或者 catch 中的 return 语句之前执行的
9.简述jvm中默认的classLoader与功能
10.switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持
11.重写的特性
12.!=和==,当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同,比较内存地址
13.null可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法
14.如何终止一个线程
15.静态属性和静态方法是否可以被继承
16.列出各种List,Set,Map,Queue并说出他们的同与不同。
17.列出几种线程池
18.解释一下java内存模型
19.解释一下java代码的原子性
20.解释一下volatile字段
21.解释一下synchronized字段
22.Lock的使用
23.wait()和sleep()区别
24.死锁产生的条件
题外话
不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~
这里我为大家准备了一些我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,点击这里免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~
最后如果马化腾把腾讯给你一天,你会来做什么?欢迎评论区讨论。
希望可以帮助到大家~
[外链图片转存中…(img-uKej2k17-1620610141189)]
最后如果马化腾把腾讯给你一天,你会来做什么?欢迎评论区讨论。
如果觉得《字节跳动+京东+美团面试总结!内含福利》对你有帮助,请点赞、收藏,并留下你的观点哦!