顺丰科技面试-java开发
顺丰科技的面试官感觉人都挺随和,总共经历三面,两轮技术面,一轮hr面。
一、专业面一
主要是对着我的简历上的东西问,我的一个项目经历,两个实习上面以及自己提到会的技能展开的提问。
(1)自我简介
(2)对实习一(招商银行基于工作流的资金审批系统开发)内容的提问,前后端分离原则简单叙述,基于后端写前端页面时,如何对于登录人的权限进行管理,比如在rest接口写什么,实现不同登陆人的访问权限控制。这个我没回答上来,因为之前在写这个系统时,只是简单写了一些前端页面,来测试后端的所有功能有没有实现。对这个问题没有解决
(3)实习一中使用的数据数据量有多少,有没有考虑过在高并发访问环境下你们的这个系统承载力?我的回答是no。
(4)假如你的系统现在突然cpu的占有率非常高,你有没有考虑过怎么分析这个问题,以及处理方法。我就回答垃圾回收。文有没有使用什么工具可以观测这个进程的堆情况,我回答了可以使用一个插件,能够实时图形化观测堆的情况(Eden,Suvival,老年代等),但名字记不起来了。
查了一下,在命令行中输入jvisualvam,这是jdk自带的观测java进程运行情况的工具。
(5)UML的几种类型?
(6)实习二(中国移动风控项目,数据挖掘),看见有使用linux系统的经历,问常见的命令,这个我真不会只回答了,会使用常见的查看,执行命令。好像问了一个,如何查看某个时间序列命名的文件,如何查看某个时间范围内的。这些文件的文件内存(是不是内存,还是其他的我记不清楚了,因为确实不太会linux系统)?
开始问简历上写的技能了,主要三个,jvm、锁、hsahmap
(7)jvm会不会?里面包含哪些部分,你把你知道了的写一下。然后我就画了一个jvm的栈,堆,方法区,程序计数器的大概图。然后,写了一个语句,问执行这个语句,jvm的这些部分会发生什么变化。
public class B{ public A classA=new A();
}
我解释了一遍,栈,堆,方法区、程序计数器的联系和变化
这部分面试前一天晚上才复习过一遍之前看的视频,所以回答的表较好,
(8)hashmap是不是线程安全的,与hashtable有什么区别。如果多个线程下,同时对一个hashmap共享变量正向put()操作,并且么个线程的key都不一样,那么,这个hashmap共享变量会不会线程不安全?
(9)有一个共享变量i初始值为0,现有10个线程各自执行一遍++i;那么最后输出的值会怎样?我回答小于100,那么最小值会是多少。我一开始回答是1,后来画图后考虑了一下极端情况,改为10。我问面试官对不对,并解释了一遍,面试官说那就对呗。哈哈
(10)假设一个类存在很多方法。现在只要有调用这个类的这些方法时,系统能够打印出调用了这个方法的日志,该怎么实现?我回答动态代理
拿到通过卡等二面
二,专业面二
把一面问过的问题就跳过不再问了,面试官人很好,对于我不是很会的问题,都说没事
(1)集合框架包含哪些?collection包含哪些,队列,listl和set。问list的实现类哪些?arraylist的底层实现方法?我回答,数组实现。数组的初始长度多少?我回答10。arraylist和linkedlist的区别?后者线程安全,底层是双向链表实现。
(2)使用过什么框架,spring、springboot?我回答,springboot,但是只是使用了,对于底层不是太了解,就是使用注解方法,使编程更方便。
(3)使用过什么数据库?关系型数据库和非关系型数据库的定义、区别?我回答使用过mysql,关系和非关系的却别简单描述了一下,因为自己也不是特别清楚。初一到sql的题目给我。
表T
T(name,score,time),表中存着学生一学期内,各科目的成绩
问:学生在t1-t2时间段内,所有成绩总<=20的人,打印出他的名字,总分数,并且按照总分数成金降序排序
我:说不用太拘谨,里面时间戳和其他格式问题,能解决问题大概方法写出来就行了
select name,sum(score) from table where t1<time<t2 group by name having sum(score)<=20 order by sum(score) desc;
后来问了面试官,这对不对啊,他说,你回去写一下测试测试
(4)给个场景,spring中,接口interface A 存在很多实现类(B,C,D,E,F...)都实现了接口的方法,现在,要每个子类调用了接口中的某个方法时,要求向数据库中执行插入语句,表明调用了这个方法的记录。
额,这和上一个面试官问的问题一样。我说在spring中的话用AOP就行了,或者动态代理。面试官让我用动态代理写一遍,我说我动态代理好久没写了,他说你试试,写不出来没事,我就大概写了一下,最后实在记不清楚了,就和面试官说了写一下想法。面试官很nice
(5)泛型的作用,为什么要有泛型?
(6)最近都是怎么学习的?我就说看书,博客和教学视频课程。
然后结束,让我都等hr面。
三、hr面
(1)自我介绍
(2)对于顺丰科技的认识。(答的不好)
(3)自己的职业规划
(4)自己有什么优点,哪些还存在不足。觉得自己的学习们能够力怎么样
(5)目前有没有拿到offer或者等结果的企业
(6)预期薪资
(7)有什么想问的
总结:一二面的专业面官人很nice,态度很柔和,主要围绕你简历上提到的东西提问,没有问题太多尖锐的问题。hr面感觉自己表现的有点差,希望能拿到个offer。
顺丰科技面试-java开发的更多相关文章
- 2017年11月23日**科技面试java工程师面试总结
从整个面试看了,表现并不理想,有很多不足. 1.关于手机页面闪现问题的处理.从原理上观察,页面闪现是因为异步请求导致的.在进入页面中首先会加载默认的东西,此时也会访问数据库端,会用ajax判断是否满足 ...
- 2019最新最全Java开发面试常见问题答案总结
2019最新最全Java开发面试常见问题答案总结 马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结. 1.JAVA面向对象的特 ...
- Java开发笔记(六十六)映射:HashMap和TreeMap
前面介绍了两种集合的用法,它们的共性为每个元素都是唯一的,区别在于一个无序一个有序.虽说往集合里面保存数据还算容易,但要从集合中取出数据就没那么方便了,因为集合居然不提供get方法,没有get方法怎么 ...
- Java开发面试总结
Java开发面试总结.. ----------------------- java 基础知识点这一块: 1.面向对象的三大特征.(继承,封装,多态) 1.1 在什么样的场合下面会使用到继承 1.2 什 ...
- 知名互联网公司校招 Java 开发岗面试知识点解析
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
- Java开发岗面试知识点解析
本文作者参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编 ...
- 最近面试 Java 后端开发的感受!
阅读本文大概需要 4.3 分钟. 首发:cnblogs.com/JavaArchitect/p/10011253.html 上周,密集面试了若干位Java后端候选人,工作经验在3到5年间.我的标准其实 ...
- 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备
在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...
- JAVA开发工程师面试(1)
我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和大家分享.以后我需要更加努力,改掉自己的惰性.本人文采不怎么样,只能是把自己所想的说出来,想和大 ...
随机推荐
- github pages + hexo 搭建 blog 遇到的问题
一. ERROR Deployer not found: git $ hexo d ERROR Deployer not found: git npm install --save hexo-depl ...
- 前端HTML介绍,标签介绍,基础选择器,CSS引入方法
1. HTML 1.1 前端: 所有用户能看到的界面网页.pc端的应用exe.移动端应用app.微信小程序.手环的时间界面html5为基础的前端:网页.app.微信小程序 1.2 前端三剑客: 1.h ...
- 亿级mongodb数据迁移
1. 预先准备有效数据单号池,通过单号拉取数据处理 单号表默认为1 01 使用findAndModify 更新单号表状态为 2 读取单号 循环读取100 条 02 通过运单号批量查询 Aladin_W ...
- [TCP/IP] 滑动窗口
什么是滑动窗口? 滑动窗口机制是TCP协议的一种流量控制和防拥塞的机制. 滑动窗口的工作原理? 简单来讲,就是接收方和发送方分别保留一块缓冲区,作为接收和发送数据来使用,发送数据过程中,如果发送方发的 ...
- 数据库连接池——C3P0&Druid(快速入门)
数据库连接池--C3P0&Druid (一) 数据库连接池 每一个事物都有其存在的意义,在初学jdbc的时候,我们建立数据库连接对象后,会对其进行释放,但是数据库连接的建立和关闭是非常消耗资源 ...
- 关于keepalived执行后日志狂刷IPVS: Can't initialize ipvs: Protocol not available的问题
安装了keepalived+lvs,达到了高可用的负载均衡,但是今天再启用的时候发现keepalived不正常,通过 /var/log/messages 查看系统日志发现狂刷 IPVS: Can't ...
- 在django中进行后台管理时插入外键数据时不显示值的问题
在django的后台管理站点插入数据时,发现需要添加外键时,下拉框中不显示值 按照显示内容中的object,考虑这里应该是调用的模型类的objects对象方法,那么去models.py中对模型类添加一 ...
- COGS 2633. [HZOI 2016] 数列操作e
[题目描述] 一个长度为n的序列,一开始序列数的权值都是0,有m次操作 支持两种操作, 1 L R x,给区间[L,R]内,第一个数加x,第二个数加2^2⋅x,第三个数加3^2⋅x...第R-L+1个 ...
- Python基础 第三章 使用字符串(1)精简版
所有标准序列操作(索引,切片,乘法,成员资格检查,长度,最小值,最大值)都适于字符串. 但,字符串是不可变得,故所有得元素赋值和切片赋值都是非法的. 1. %s 转换说明符 设置字符串格式 %左边指定 ...
- STM32 USB Virtual COM
STM32 USB Virtual COM USB转串口的功能实现 这次讲的是如何实现USB转串口功能的实现.首先看看工程的布局吧: 我们主要要介绍的文件的在USB_User这个组文件.从上面的截 ...