java工程师
约 1004 字大约 3 分钟
java工程师
公司名称:因朔桔(上海)智能科技有限公司
**岗位年限:**2年
**面试时间:**2024.7.12
**面试方式:**线上面试(腾讯会议)
面试问题:
序号 | 问题 | 解答 | 备注 |
---|---|---|---|
1 | 谈下最近你做的项目 | 最近做的项目鼎盛物业管理系统,系统为智能管理园区,提高管理人员的工作效率和优化管理策略。项目中主要模块有:系统管理、园区管理、客户管理、合同管理、保修管理、投诉管理等。其中我负责的客户管理和合同管理模块的开发。其中合同模块中使用了事务,因为合同模块的crud功能包含多表关联。合同模块中还有审批流程,根据合同的状态不同的用户进行操作,比如合同状态是草稿、点击提交后状态改为待审批,此时操作的用户没有审批权限无法审批,有审批权限的用户进入可以看到待审批的合同,可以进行合同的审批操作。 | |
2 | 问一下你做的模块有权限吗 | 模块中有权限的添加,但是是我同事负责的。 | |
3 | SpringBoot的常用注解 | @SpringBootApplication,@RestController, @ComponentScan(这块我说错了,说成该注解的功能为注入bean,应该是扫描相关包下的注入类)。 | |
4 | 重载和重写 | 重载和重写的作用位置不同,重载作用于同一个类下,方法名相同,参数列表不同。重写是作用子类重新编写父类的方法方法的名相同,参数列表相同,访问权限大于父类,返回值和抛出的异常要小于父类 | |
5 | 抽象类可以用final修饰吗 | 不可以,抽象类使用final修饰没有意义。 | |
6 | final、finally和finalize的区别 | 三者本质上使用位置就不同,final是修饰类、方法、变量的,修饰类,类不能被继承;修饰方法,方法不能重写;修饰变量,变量不能被修改。finally 用于 捕获异常时,与 try{}catch{}finally{}一同使用,无论是否捕获异常,程序都会执行finally中的代码。finalize是适用于垃圾回收前的要执行的代码。 | |
7 | StringBuffer和StringBuilder的区别 | StringBuffer 线程安全 ,tringBuilder 性能高。 | |
8 | String类是否可以被继承 | 不能被继承,String类被final修饰。 | |
9 | StringBuffer是如何保证线程安全的 | StringBuffer中的api都是被synchronized的修饰。 | |
10 | 谈谈并发和并行的区别 | 一核中多个线程在执行,是逻辑上一同执行,实际上时核心分发的时间片依次根据时间片进行执行该形式为并发;多核有多个线称执行,真正物理上同一时间执行程序,这就是并行。(整理后) | |
11 | 线程死锁问题 | 回答:使用lock锁吗,没有使用unlock进行解锁,线程没有释放资源,别的线程调用不了,因此线程死锁。 整理后:2个及以上线程发生资源争抢的情况会发生线程死锁问题。 | |
12 | 知道幂等性吗 | 回答:遗忘。 整理后:多次访问同一接口,对返回的数据结果没有差别。 | |
13 | 索引失效的场景 | 回答:模糊查询时 比如like ”% 李 “ 当%位于查询数据前时索引失效; | |
14 | LEFT JOIN 和 INNER JOIN 的不同 | LEFT JOIN 以左表为主表,左表的数据全查询,没数据添加null,INNER JOIN 以查询到的数据为主 | |
15 | == 和 equals 的区别 | == 比较的是基本类型数据,比较的是值; equals未重写时比较的是引用类型数据的地址,重写后比较值。 | |
16 | 说说你用过的集合 | 用过List,ArrayList, LinkedList,Map, Set, HashMap,说下常用的HashMap原理: 存储数据的结构由数组和链表和红黑二叉树的组合。 |