中科创达面试知识总结

前言:这是我正式面试经历最差的一次,状态不好而且准备不足,好多知识点都没答上来,并且方向不是特别对口,特此总结记录

 

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收集器大概分四个步骤:

  1. 初始标记,标记了GCroot开始直接关联可达的对象,STW;
  2. 并发标记,和用户线程并发执行,从GCroot开发可达性分析,找到要回收的对象;
  3. 最终标记,STW,标记在上一阶段产生的垃圾,
  4. 筛选回收,制定回收计划,回收多个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)

优缺点:优点:增加程序灵活性;缺点:很影响性能,会暴露内部信息破坏抽象性

posted @   天启A  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示