中科创达面试知识总结
前言:这是我正式面试经历最差的一次,状态不好而且准备不足,好多知识点都没答上来,并且方向不是特别对口,特此总结记录
1.java有几种基本数据类型
答:int,double,float,char然后不记得了...
正解:还有long,byte,boolean。其实都比较常用,long用来解决相对比较大的长度的问题;byte用于传输流;boolean判断,不得不说太久不实际敲代码了,开门回答相当不好
2.引用数据类型可以用==吗
答:不可以(其实我都忘了什么叫引用数据类型)
正解:java分为基本数据类型和引用数据类型;引用数据类型分为三类:
Object:例如String,还有我们自定义的javaBean
Inferface:常见的有List和Map
Arrays:举例int[] num这个就是数组引用类型
引用数据类型的==是用于判断他们的地址是否相等(是否是同一个对象)而不是判断他们的具体内容是否相等
3.重载和重写
答:具体怎么答记不清楚了,很乱
正解:重写即override,把子类在父类中对应的方法在方法名,参数列表与返回参数相同的情况下重新写一遍。他是发生在父类与子类之间的,是编译时多态的一种表现
重载即overload,同名方法,参数列表必须不同,(参数的类型、个数甚至顺序不同即可)返回参数没有要求。他是运行时多态的一种表现
4.线程的生命周期
答:不知道,(我完全不记得有这个知识点,不过我面完知道人家是做安卓端的,安卓端有那个什么activity方法,线程在安卓开发使用频率非常高
正解:创建new,就绪runnable,运行running,阻塞blocked,死亡dead五个阶段,类似于线程的状态
5.接口和类的区别?共同点又有什么
答:...胡言乱语,我是一点都想不到他们俩有什么共同点,感觉问题很弱智
正解:
- 不同点——接口是一种抽象的类型,而类一般是用来定义对象的;接口通过implement来实现,类可以通过extends来继承;类具有构造器,接口没有构造器;类的成员变量是多样的,但是接口的只能是常量
- 相同点——都可以实现多态,都有支持泛型,抽象类和接口都包含了抽象方法与抽象性
6.讲讲常用的垃圾回收机制
答:G1,然后讲的乱七八糟很没条理东一句西一句
正解:G1最大的特点就是把堆划分成了多个独立的region,取消了固定的eden,survivor,older区,每一个region都可以视为这三种形态之一。
因为多个独立的区域,使G1有更精细的控制粒度,并且G1可以预测STW,通过指针碰撞来保证内存的碎片化控制,内部会优先处理内存更大的区域。
G1收集器大概分四个步骤:
- 初始标记,标记了GCroot开始直接关联可达的对象,STW;
- 并发标记,和用户线程并发执行,从GCroot开发可达性分析,找到要回收的对象;
- 最终标记,STW,标记在上一阶段产生的垃圾,
- 筛选回收,制定回收计划,回收多个region,把回收的region的存活对象复制到空的region中,再清空整个旧的region,需要STW
和CMS相比,在最终步骤G1会筛选回收价值高的对象,并且由于G1使用的是复制算法,而CMS使用的是标记-清理算法,G1会移动存活的对象,需要STW
并且G1还包括
- 年轻代的垃圾回收:在eden区满时,会将eden区和survivor区合并为新的survivor区
- 混合模式垃圾回收:survivor区、old区会一起回收合并为新的old区
7.反射
答:不会捏
正解:反射是在运行时才知道要操作的类,并且在运行时才会获取类的完整构造和方法。
应用:Spring的IOC、SpringMVC框架的请求都调用了反射。在使用mybatis自动填充一些公共日期字段可以使用反射(create_time与update_time)
优缺点:优点:增加程序灵活性;缺点:很影响性能,会暴露内部信息破坏抽象性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署