当前位置: 首页 > 面试经验 >

中兴java面经

优质
小牛编辑
105浏览
2023-04-18

中兴java面经

论文交了没事分享一下去年的面经

参加了中兴捧月免笔试

一面凉经:

1、出示身份证

2、自我介绍

3、本科成绩排名、硕士成绩排名

4、java的代码量

5、抽象类和接口的差别,使用场景

  抽象类要被子类继承,接口要被类实现。

  接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。

  接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

  接口是设计的结果,抽象类是重构的结果。

  抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。

  抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。

  抽象类主要用来抽象类别,接口主要用来抽象功能。

6、扩展都是用父类来做吗

7、为了避免类太臃肿,用聚合和组合,这两个方式怎么用?

  聚合(整体和部分可以分开)

  组合(整体和部分不能分开)

  聚合是一种弱关联关系;组合是一种强关联关系。

  在聚合关系中的两个类(或实体)的生命周期是不同步;但,在组合关系中的两个类(或实体)的生命周期是同步的。

8、wait和sleep的差异

  两者都可以暂停线程的执行。

  sleep() 方法没有释放锁,而 wait() 方法释放了锁 。

  wait() 通常被用于线程间交互/通信,sleep()通常被用于暂停执行。

  sleep() 是 Thread 类的静态本地方法,wait() 则是 Object 类的本地方法。

  wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的 notify()或者 notifyAll() 方法。sleep()方法执行完成后,线程会自动苏醒,或者也可以使用 wait(long timeout) 超时后线程会自动苏醒。

9、线程自己写过线程池吗

  使用线程池的好处:

  降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。

  提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。

  提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

  execute()方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;

  submit()方法用于提交需要返回值的任务。线程池会返回一个 Future 类型的对象,通过这个 Future 对象可以判断任务是否执行成功。

10、final和abstract能一起用吗

  abstract与final不能同时使用,因为abstract的作用是定义抽象方法让子类继承重写的,而final修饰的方法是可以被子类继承但是不能重写。

11、这俩关键字都是啥

12、初始化字符串用字面量还是new String()

13、差异在哪

  String 类中使用 final 关键字修饰字符数组来保存字符串

14、字面量的String存在什么问题?

15、字面量String存在哪个空间?

16、里式替换、依赖倒置

  里式替换:派生类(子类)对象可以在程式中代替其基类(超类)对象

  依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

17、框架为什么要设置ioc?目的是什么

18、框架是怎么实现ioc?

19、框架的底层实现依赖的是什么?

20、高度是k的二叉树最多有多少节点?最少k,最多 2^(k-1)

21、数组和链表的区别?

22、这俩在内存开销上的差异?

  链表存储了指针,开销更大

23、普通的线性搜索和二分查找的优势?

  线性查找可以针对任何数组,将数组中的每项依次遍历出来之后,与所要查找项对比。消耗时间也是不规律的,可能查找项处于数组的第一位,也可能处于数组的最后一位。还有可能数组中完全不存在需要查找的项目。O(n)

  二分查找法,针对有序数组使用。因为数组已经有序排列,可以通过将数组从中间分割,将中间项与所需查找项对比;然后再根据对比结果,再次向上或者向下,寻找中间项对比,直至完成查找。O(logN)

24、有什么offer?

25、找工作看重什么?

26、有对象没?对象工作定了吗?同一级吗?

27、获取稳定和开发的工作会优先考虑吗?

28、目标薪资?

29、反问

(20分钟 结束)

#中兴#
 类似资料: