前言

第一篇博客,呵呵,写下最近一次的面试经历吧。

2019.3月末,像我这种年轻浮躁的程序员心里的魔鬼被放了出来。跳槽!跳槽!
实际上我也有了offer,可能是offer不够吸引我吧,或者说我还有梦想。最近去了一家外企面试,公司规模不大,但是通过看简介以及跟HR沟通,觉得公司是难得遇见的优秀的公司,可能会遇到很nice很open的人。
废话多了,接入正题。

面试经历

优秀的公司HR之前跟我沟通了下午4点半去面试,多么善解人意的时间。

4点半我准时到达门口,一个女孩子坐在进门的小圆桌上抱着一个笔记本在奋笔疾书。我摁下门铃,她帮我开门,我说面试,接着她抱着电脑叫了一声赛瑞(Sarry)? 应该是这个发音。一个小巧玲珑的HR出来了,跟我稍微谈论了一下说要拿张笔试题给我做一下。拿到笔试题之后大致看了一下,5道题,非常简单
1、&与&&的区别
2、继承和实现的区别
3、多态是什么,简单解释
4、线程的实现方式
5、单例模式实现
我看到这么简单瞬间觉得有了自信,当我写完的时候看了下时间4:38,感觉一两分钟就造完了。

接下来第一轮面试,一个Java相关的技术人员,面容很老了,听说大概十多年工作经验。觉得很强。
面试官问了下面试题部分,我简单讲解了下。面试官对我写的单例模式提出了个疑问(我写的恶汉,因为代码比较简单),这个代码是否线程安全? 我心里笑了一下,这点小问题…
这个是我当时写的代码:

public class Singleton {private static Singleton s = new Singleton();   private Singleton(){    }public static Singleton getSin(){        return s ;}
}

这个代码肯定是最简单的,我是懒得写,我就把线程安全的单例给口述了一遍
一种是这个,加synchronized关键字,可以保证线程安全性。

public class Singleton {  private static Singleton s;  private Singleton (){}   public static synchronized Singleton getInstance(){   if (s == null)     s = new Singleton(); return s;}}

但这种颗粒度比较大,直接在方法上面加了synchronized关键字,稍微会影响点效率吧。还有一种叫双重同步锁的实现方式:

public class Singleton {  private static Singleton s;  private Singleton (){}   public static Singleton getInstance(){    if (s == null){synchronized(Singleton.class){if (s == null)s = new Singleton(); }}return s;}  }

这种方式在进入方法的时候不会加锁,进入方法后判断是否已经存在实例,不存在再创建的时候加锁,加锁之后再判断是否存在实例(有可能在加锁的过程中别的线程刚释放锁并且生成了实例,这个时候实例不为null),这种双重判断的方式对效率会有一点增益,也保证了线程安全,名曰双重同步锁的单例模式。

之后又讲了讲代理模式、策略模式。讲完之后看着面试官觉得自己有点膨胀...

面试官又问了Java8的一些新特性是否了解,我对Java8也是了解了一点点,Java8推崇函数式编程。之前看了@FunctionalInterface这个注解,该注解标注的接口只能有一个抽象方法,此接口被称为函数式接口。通过阅读这个注解的源码注释可以知道:
1、该注解只能标记在"有且仅有一个抽象方法"的接口上。
2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。
3、接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。
4、该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@FunctionInterface,那么编译器会报错。
讲了下lambda表达式,stream流操作。我因为之前看过一篇文章,地址:http://www.importnew.com/17262.html
我对面试官说stream流其实效率不高,看着大佬的表情泛起了疑问,哈哈哈哈。

接着面试官又问了我一些线程方面的。
1、造成死锁的原因
2、Lock与synchronized,wait与sleep
3、java并发包的了解

问了一些微服务中间件相关的,我简单讲解了一下dubbo的结构,表示理解可能不是很深刻,讲了讲redis注册服务,讲了讲做过得项目架构,以及RPC调用的几种方式。讲了讲MQ,以及延时队列的实现。讲了讲MongoDB的使用体验。大概好像也就这些,有的可能记忆不太清楚了。

第二轮面试,过一会又来一个面试官,CTO级别的。性格很open,来了就开始说你也看过flutter,我说简单涉猎一点,就开始问我一些dart的语法。

接着出了一个简单的问题:
A说B说谎,B说C说谎,C说AB都说谎,至少有一个人说谎。问谁说谎?(考离散数学命题)
试推理:
1、假设A说B说谎是真,那B说C说谎是假,C说AB都说谎是真,与原命题假设矛盾 ✖
2、假设A说B说谎是假,那B说C说谎是真,C说AB都说谎是假,AB有可能只有一个人说谎 ✔
即推理2为正确答案:A说谎,B没有说谎,C说谎。

再接下来考计算机网络相关的七层协议:
这个概念性的,我计算机网络学的一般,概念也没记全,所以当时没答完,羞愧了。

又问了下数据库ACID
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。
持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

大概这些吧也问了一些操作系统软件工程相关的,概念性的东西。

我比较懒的记,这可能就是此次面试吃亏的原因吧。面试的时候二面觉得自己面的不够好。基础不够扎实,面试准备不够充分。慢慢积累吧,前方道路还很长。

一家小而美的外企公司面试体验相关推荐

  1. 2015年校园招聘12家IT公司面试体验

    背景 2015年注定是一个不平凡的年头,作为一个应届毕业生,我也算是经历了工作上的大起大落.下面我先简单讲述一下自己的遭遇,然后根据自己亲身的面试经历,从一个学生的角度去谈谈自己对面试过的公司的一些看 ...

  2. 在外企上班是一种什么体验?附国内热门外企公司名单!

    大家好 我是最可爱的知了小姐姐 (不接受反驳) 今天咱们不聊Bug 来跟大家聊聊知乎上43万人关注的话题 "在外企上班是一种什么样的体验?" [先说说好的吧] √ 不卷 √ 除法定 ...

  3. 我经历的IT公司面试及离职感受(转)

    毕业后几年一直待在广州,觉得这是一个比较生活化及务实的城市,其互联网公司和相应的投融资环境都不如北深上活跃,大大小小的面试也有几十个,有点规模的公司应该都面试过了,面试一般会见到主力技术人员,技术主管 ...

  4. 我经历的IT公司面试及离职感受

    毕业后几年一直待在广州,觉得这是一个比较生活化及务实的城市,其互联网公司和相应的投融资环境都不如北深上活跃,大大小小的面试也有几十个,有点 规模的公司应该都面试过了,面试一般会见到主力技术人员,技术主 ...

  5. 工作6年,我经历的BAT等IT公司面试及离职感受

    毕业后几年一直待在广州,觉得这是一个比较生活化及务实的城市,其互联网公司和相应的投融资环境都不如北深上活跃,大大小小的面试也有几十个,有点规模的公司应该都面试过了,面试一般会见到主力技术人员,技术主管 ...

  6. 外企就很舒服?聊聊我在外企的工作体验

    点击上方关注我,选择"置顶或者星标" 作者:hsm_computer 来源:https://www.cnblogs.com/JavaArchitect/ 本文来自于:hsm_com ...

  7. 工作6年,我经历的IT公司面试及离职感受

    历经8年双11流量洗礼,淘宝开放平台架构和技术难点解密 毕业后几年一直待在广州,觉得这是一个比较生活化及务实的城市,其互联网公司和相应的投融资环境都不如北深上活跃,大大小小的面试也有几十个,有点规模的 ...

  8. 我的深圳面试体验--艾默生/西门子/华为/中兴/索尼/富士施乐/长城国际/ 马士基/SGS/宜家/

    我的深圳面试体验--艾默生/西门子/华为/中兴/索尼/富士施乐/长城国际/ 马士基/SGS/宜家/ 首先,坦白的讲,如果我现在不是找到了一份还合适的工作,我是根本不愿意再去回想那七个月的事情的. 失业 ...

  9. 在某游戏公司面试游戏运营的感受

    本人不才在一家知名游戏公司面试过,首先介绍下这家公司,是一家小游戏,网页游戏,手游都做的一家公司,由于我面试的是页游运营,这边主要介绍下当下他们家的产品,arpg类型游戏,竞技类,FPS类型,还有其他 ...

最新文章

  1. python代码大全p-Python5种代码维护工具
  2. 深度对比三种主流微服务配置中心
  3. 【Python基础】Python基础语法14个知识点大串讲
  4. opengl 如何加阴影_动漫嘴唇厚涂如何绘制?厚涂嘴唇正确画法
  5. 如果你女朋友不让你看她卸妆......
  6. 七、PHP框架Laravel学习笔记——资源控制器
  7. 强烈谴责中国红十字会
  8. 细胞增殖曲线_两种月龄近交系五指山小型猪脂肪间充质干细胞生物学特性的比较...
  9. java 字符串截取_java截取字符串,截串,substring和split,分割字母和数字,正则缝隙...
  10. 如果有什么想不开或者放不下的话,看看这里吧!(摘于网络)
  11. 在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度转
  12. 数据结构十大经典排序算法--Python
  13. Java AJAX开发系列 - 5,ZK参考资料
  14. java 次方_Java入门笔记0/3(基本数据结构)
  15. RGB与CMYK这两大色彩模式的区别
  16. win10系统崩溃怎么修复_系统崩溃!win10系统修复和数据恢复方法总结
  17. 十大Web压力测试工具
  18. Java算法七:骑士走棋盘
  19. xlrd python读取excel 编码错误_python读取excel数据报xlrd.biffh.XLRDError错误原因
  20. mysql find in set 函数在pgsql中的函数写法

热门文章

  1. Quantities
  2. 【电路设计】共模电感的作用
  3. nfc读取卡片内容apk_加密门禁卡装入NFC手机
  4. 骑兵变步兵?10 分钟搞明白如何在直播中去马赛克
  5. 电视机计算机无法退出,【自助服务】在家遇到电视故障不用烦,『自助排障手册』帮你解忧愁!...
  6. android ios安裝,麻花影视最全安装途径 — 支持Android和iOS
  7. 郭台铭要鱼也要熊掌!富士康来势汹汹 华硕严阵以待
  8. 关于IP SLA及与EEM联动的探讨(转)
  9. 国外建模大师精心总结:10个对精通建模用帮助的技巧 用过后觉得真的很实用!
  10. 目标检测YOLO实战应用案例100讲-基于卷积神经网络的可见光遥感影像船只目标检测研究