校招实习面试实战,顺丰科技Java工程师面试复盘总结

您所在的位置:网站首页 顺丰快递面试要求有哪些 校招实习面试实战,顺丰科技Java工程师面试复盘总结

校招实习面试实战,顺丰科技Java工程师面试复盘总结

2024-07-12 13:46:50| 来源: 网络整理| 查看: 265

备战春招,校招实习面经分享,拿Java开发工程师offer~~

本系列文章包括Java、算法、计算机网络、数据库、操作系统等等,本篇介绍面试顺丰科技【Java工程师】岗位的题目,复盘解析及心路历程。

传送门:

【亲身面经分享,校招实习面试系列】每日10题,快速学习(Java基础篇)【校招实习面试系列,每日10题,快速学习】Java高级篇【校招实习面试系列】你知道网络中4类IO模型是什么吗?我的朋友如此优秀回答【校招实习面试实战,身临其境】华为软件开发工程师面试复盘总结

顺丰科技的校招实习面试,一般都是直接通过邮件通知具体的面试时间和具体操作的,邮件也是比较详细,因为没有提前约时间这一操作,所以收到邮件后就要安排自己的时间。

我当时是在赛码网上面试,系统还是比较简洁,提前登录上去等面试官呼叫就行。

自我介绍

老熟悉了,这个环节。基本上每次面试的开门红就是自我介绍了,讲的好就是开门红(0 - 0)哈哈哈

别小看开头的自我介绍,逻辑思路表达清晰很重要,都说“万事开头难”,如果开头做得好,后续回答过程会轻松许多。因为从自己的说出来的感受,加上面试官的反应,可以增强自己的信心。

1、讲一下Java里面常用的数据结构?

ArrayList、LinkedList的底层和区别,HashMap底层数据结构。

ArrayList:基于数组这种数据结构实现,而且这个数组是动态的,可以自动扩容,数组的结构是随机访问的,也就是可以通过下标获取,时间复杂度O(1)。

LinkedList:基于链表的结构实现的,都知道链表对于插入删除的操作效率高,直接修改结点指针指向即可,但是对于获取数据,需要通过遍历得到,时间复杂度O(n)。

HashMap:这个数据结构再熟悉不过了,在面试中都被讲过无数遍。网上资料无数,详细可见:https://blog.csdn.net/lkforce/article/details/89521318

遇到这个问题,算是比较友好的面试官了,可以让你讲出自己熟悉的内容,而我们这时也需要将功夫全部展现出来,回答当然要适可而止,避免给自己挖了个坑。

2、讲讲B+树索引,为什么B+树的高度一般不高?

B+树索引是MySQL中最常见的,InnoDB存储引擎的一种索引,它按照顺序存储数据,在MySQL中可以用作order by和group by的操作实现。

B+ Tree中,非叶子结点的结构包括:

本结点所含关键字的个数。指向父节点的指针。关键字。指向子结点的指针。

所有叶子节点(存放数据)之间是一种链式环结构。

非叶子节点只存储键值信息。所有叶子节点之间都有一个链指针。数据记录都存放在叶子节点中。

B+树存储数据的结构如图:

到这里,回答了问题中的第一问。

那为什么B+树的高度一般不高?

答:因为…树高度3到4层存储的数据量就很大了,达到千万级别!

数据量具体计算方法看这篇,非常详细!https://zhuanlan.zhihu.com/p/86137284

另外,MySQL数据库还有其他几种索引:哈希索引、覆盖索引、聚簇索引,以前我写过一篇更详细全面的,欢迎查看:《今天我们来聊聊MySQL索引,详细!》

3、多线程了解吗?假如一个场景:最小核心线程数10,最大线程数15,有界阻塞队列为100,现在请求110个,再请求一个怎么处理?

Java线程池的7个主要参数:

corePoolSize:池核心线程大小

maximunPoolSize: 线程池最大线程数量

keepAliveTime: 空闲线程存活时间

unit:空闲线程存活时间的单位

workQueue: 工作队列(4种)

(1)ArrayBlockingQueue:基于数组的有界阻塞队列,FIFO (2)LinkedBlockingQueue:基于链表的无界阻塞队列(最大容量Integer.MAX_VALUE)FIFO (3)SynchronousQueue:不缓存任务的阻塞队列 (4)PriorityBlockingQueue:基于优先级无界阻塞队列

threadFactory: 线程工厂

handler: 拒绝策略

策略1:ThreadPoolExecutor.AbortPolicy(默认,拒绝执行任务)

策略2:ThreadPoolExecutor.CallerRunsPolicy(运行被拒绝的任务,若执行程序已关闭,则会丢弃该任务)

策略3:ThreadPoolExecutor.DiscardOldestPolicy(丢弃等待队列中的队头任务)

策略4:ThreadPoolExecutor.DiscardPolicy(通过源码可以看出,该策略不会执行任务操作)

然后Java通过Executors提供以下4种线程池。

newSingleThreadExecutornewFixedThreadPoolnewScheduledThreadPoolnewCachedThreadPool

之前我也写过专门讲Java线程池的,这里不在赘述,有兴趣继续探索的伙伴可以看看:《Java面试:Java线程池七大参数详解》、《每日10题,快速学习(Java基础篇)》

或许到这里,你已经知道这个问题的答案了:假如一个场景:最小核心线程数10,最大线程数15,有界阻塞队列为100,现在请求110个,再请求一个怎么处理?

首先,10(corePoolSize)+100(workQueue)=110,意思就是这100个请求任务可以有10个任务给10个线程处理,另外100个任务暂时存在工作队列中等待。

那么,这时再请求一个任务,且其他任务还没有处理完成的,达到111个。因此,再看maximunPoolSize=15,还有空间可以再创建一个线程,因为111



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭