简测科技后端面经

今天下午刚刚联系就约了5点的电话面试,一首凉凉……

1. java中的finally一般在什么场景使用,我回答了一般用在资源清理,确保无论是否发生异常一定会执行finally

    然后又问,如果只有try{}catch{}不行吗?资源清理的代码放在try{} catch{}之后不是也一样能确保清理吗?

    我只能说如果catch里面有return,就必须要用finally了

2. 静态内部类如何访问外部类的成员变量

3. 静态内部类能独立实例化吗?

    可以,静态内部类就是一个静态类,可以用Outer.Inner inner = new Outer.Inner()实例化

4. stack和queue的区别

5. 如何用stack实现queue

6. 有实际在项目中用到数据结构吗?

    回答使用敏感词过滤的时候使用过前缀树数据结构

7. 如何用非递归实现二叉树的后续遍历

    用一个栈实现(话说这里感觉回答的没问题啊,当时考研的时候这一块看了好久,代码全背下来了,面试官一直问我有没有什么     错误。。。)

8. 堆排序,问了可以使用什么数据结构,回答数组。问数组的第一个元素放在树的什么位置。

8. 接口和抽象类的区别

9. equals() 和 hashcode()的作用、区别,String中如何实现equals()

10. sleep(),wait()的区别

11. oop的特征

    封装,继承,多态(面试官说还有一个。。。我是真不知道)

12. 多态和继承的本质区别


总结:其实都是基础题,很多是忽视了,也很多是忘记了,还是自己的水平不够吧,这次面试肯定是一首凉凉。但还是很感谢给了面试机会,每一次的面试都是一次锻炼,继续加油吧

Java后端开发的面试经验与准备资料通常围绕几个核心方向展开:基础知识、框架应用、项目实战、算法能力以及实际问题解决能力。以下内容基于相关参考信息整理而成。 在技术基础方面,Java语言的核心知识点如集合类、多线程与并发编程、JVM原理、IO/NIO等是必考内容。例如,理解HashMap的实现机制、ConcurrentHashMap如何保证线程安全、线程池的工作原理及其参数设置策略等都是高频考点[^1]。同时,对于异常处理体系、泛型、注解等特性也需要有深入的理解和实践经历。 关于框架的学习和掌握,Spring系列框架(包括Spring Boot, Spring Cloud)、MyBatis等主流框架的应用场景及内部工作原理尤为重要。比如,在使用Spring时,需要了解依赖注入和控制反转的概念;熟悉AOP的设计思想及其应用场景;能够解释Bean的作用域以及生命周期管理过程[^1]。 数据库相关技能也是考察重点之一,这不仅限于SQL语句编写能力,还包括对事务隔离级别的认识、索引优化技巧、锁机制等方面的知识。此外,分布式系统中常见的数据一致性问题解决方案如两阶段提交协议(2PC)、TCC补偿事务模式等也可能是讨论的话题[^3]。 针对性能调优的经验分享,候选人应该准备好讲述自己参与过的项目中遇到的具体挑战,并说明是如何通过分析定位瓶颈并采取相应措施来解决问题的过程。这类故事可以展示出应聘者面对复杂情况时的实际操作能力和逻辑思维水平[^2]。 最后但同样重要的是软实力部分——沟通表达能力、团队协作态度以及学习成长意愿。很多公司在选拔人才时也会非常重视这些非技术因素的表现。 ### 准备建议 - **复习巩固**:定期回顾所学知识,特别是那些容易遗忘但又十分重要的概念。 - **动手实践**:尽可能多地进行编码练习,尤其是针对LeetCode或类似平台上挑选出来的题目。 - **模拟面试**:找朋友帮忙做模拟面试或者录下自己的回答视频,以此提高临场发挥的能力。 - **案例积累**:整理过往工作中遇到的问题及解决方案,形成一套清晰的故事叙述方式。 ```java // 示例代码:单的快速排序实现 public class QuickSort { public static void main(String[] args) { int[] arr = {5, 3, 8, 4, 2}; quickSort(arr, 0, arr.length - 1); for (int num : arr) { System.out.print(num + " "); } } private static void quickSort(int[] arr, int low, int high) { if (low < high) { int pivotIndex = partition(arr, low, high); quickSort(arr, low, pivotIndex - 1); quickSort(arr, pivotIndex + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] <= pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值