2018-03-16 记一次面试----java

这是我毕业以来第一次面试,是一家初创公司,也是一个做saas的公司,起初在BOSS上聊了几句,职位是java主力开发(大概就是那种使劲干活不要命那种),然后就电聊了45分钟,接下来就约定第二天面试。
刚到公司,说实话公司环境比较拥挤(可能是因为现在的公司太大了哈哈哈),然后就从人群中站出来三个人,后来才知道一个前端架构师,一个后端架构师,一个经理,这阵容我也是慌了一下,第一个问题wait和sleep的区别,可能是还没缓过神来,从前特别清楚的问题一瞬间不知道怎么表达-_-,估计还是不够扎实,然后就看架构师翻着手机的面试题,一个一个问,从以下几个部分来整理这些问题吧,也算是给大家一个方向:


宝儿姐镇楼

java基础部分(从java基础、面向对象,到GC、jvm,这些知识还算清晰,也可能是进入了状态hhh)

  • Long l1=124L;Long l2=124L; l1==l2?
    这个lz没有思考就说了true,并且说如果大于127就是false,他也没继续问原因,我也就没继续说下去。

  • 说一下String,StringBuffer,StringBuilder,为什么String加法运算费性能
    StringBuffer线程安全,StringBuilder不是线程安全的,String 内部包含final的char[] ,所以每次操作都会生成个新的数组,但是在java8以后String加法操作进行了重载,底层StringBuilder实现,比原来省性能。

  • 刚刚你说到java8,java8有哪些新特性?
    我常用的是stream,balabala(说了些函数式编程),还有Optional类,balala(其实还有很多新特性,只不过平时没用过没底气说)

  • 重写重载区别(这个太基础),那你说返回值类型不同算不算重载
    当然不算,因为我们并不是所有时候都去关心返回值,所以当执行a()你也不知道是要int的返回值还是void的,所以也不能作为依据来确定用哪个方法。

  • 重写中子类和父类的异常关系是这么个约束
    子类中可以不抛出异常,或抛出更详细的异常

  • 说一下GC过程
    首先,需要判断对象的存活性,主要有两种方式,第一是引用计数,但是会造成abba问题,第二个方法是可达性分析算法,当创建对象时候就像根节点或某个子节点挂载,当某个对象到根节点无可达路径则判定对象死亡,HotSpot用的是这种算法,当对象被标记两次才有可能被回收,回收算法有有很多,标记清除,标记整理,复制算法(说了下不同算法的优点和适用场景),不同的GC使用的算法不同,一般来说会根据不同的代来进行不同的回收机制,java8中默认是G1回收器。(回答这部分问题的时候面试官在中间会时不时的冒出问题···)

  • jvm问的就比较少了,还是我自己主动提的,比如在java8中永久代被元空间取代,内存模型啊,对象创建过程,分配内存的CAS算法等等等,但面试官好像不是很感兴趣···

框架(Spring,SpringMVC,SpringBoot)

  • 你用过Boot吧,说说你了解哪些?
    (黑人脸,我不知道从哪说起啊,太多可说的了)我就从IOC AOP 动态代理两种实现方式(后来想想,其实回答的不对,这都不是Boot的优点,常挂在嘴边的习惯大于配置竟然没说···)

  • 刚刚你提到动态代理,你说一下动态代理的默认机制
    spring4中优先是动态代理,若代理的对象无接口,则用CGlib的方式来进行动态字节码的代理。

  • Mybatis接触过么
    我们持久层用的hibernate,但是我写过一些demo,相比于hibernate的全自动,mybatis的半自动化更灵活和轻快吧,sql基础好学这个应该不难,之前解决过其他项目组的bug(balala叙事)

  • 了解Dubbo么
    我们服务发现治理用的是Eureka,一直也没什么机会接触,但好像阿里最近推崇的是HSF(面试官表情很耐人琢磨)

  • 开启定时任务怎么开启
    需要加@EnableSchduling注解

  • 框架的事基本就聊到了这

数据库

  • 说说事务的隔离级别
    串行、重复读、已提交、未提交(balalalalala)

  • 幻读和脏读区别是啥
    幻读:一个事务修改了全部列,这时另一个事务插入了一行,这时候就好像之前的修改没生效,发生了幻觉
    脏读:就是一个事务修改某个数据未提交,另一个事务读取这个数据造成脏读

  • mysql存储引擎知道哪些?有啥特点?
    我只知道Innodb,这个问题过了(说到这我已经口干舌燥不想说话了····也不给杯水),这部分在我学习计划靠后的地方,毕竟我才转型java不到一年,还有很多要学。

  • 查询如何优化
    一般建立索引就可以,再有就是对null 尽量设置初始值(balala这个问题网上一大堆只记得这些了)

  • 事物有什么意义
    保证了一些操作的“原子性”,保证数据的准确(举转账例子balala)

  • 分布式事务怎么解决
    这部分我只是了解一点JTA,它是通过分段提交保证了事务ACID。阿里有个GTS好像对分布式事务有较优的实现,但是做成了产品没开源。

  • ACID你知道都是啥么
    (我自己提的hhhh)原子性,一致性,隔离性,持久性(看来又不想继续深问···)

  • 我看你用过redis?redis有哪些数据类型
    我用过codis,是go实现的redis的集群化(这样形容并不准确)(数据类型我没回答,我知道有字符串、哈希表、List、Set、有序列表),我只是负责搭建这样个环境,修改原有的脚本,适用于实际的开发环境。

  • redis存json有什么弊端?
    我犹豫了一下,我本想说转对象时费性能,但是我觉得问的是redis本身的弊端,然后也pass了,现在想想好像就是性能问题···

设计模式

  • 谈谈你知道的设计模式
    设计模式太多了,我们也不会说用其中一种,在使用的时候这些模式经常需要变种,模式本身就是给开发者提供一个开发思路,主要思想就是抽离不变的,封装变化的,多用组合少用继承,针对接口编程,不针对实现,然后遵守下开闭原则。(balalala)

  • 观察者模式知道么?项目中有哪些场景?
    (说实话我对记名字真的是····)发布通知?项目中···难以具体举例啊,现在想想其实reactor就是一个较为合适的例子,异步通知····

  • 那你举一个生活中的场景吧
    报纸?天气预报?(都不恰当)

前端

  • 看你以前做过web架构,说说负责哪部分?你对前端架构有什么理解
    balabala叙事,架构就是骨架,抽离出脱离业务不变的部分,进行一个业务的统一默认实现,前端的架构还包括一些插件的整合。

  • 估计因为我是面试java开发,所以web基本没问太多 ,angularjs的指令双向绑定 vue的钩子函数,生命周期这些都没问(失望脸装逼失败)

shell

  • shell基本没问什么实际问题,我就是说我自学写过几个脚本,公司一直在用,三剑客(awk、grep、sed)都没问,但估计其他的公司还是会问的。

其他

  • 谈谈你对rest的理解,和rpc的区别
    rest我个人理解就是一种风格规范,对于前后端分离这种,我实际感受到的最大的好处就是定义规约就容易形成“默契”,根据接口就能判断他的业务含义,然后前端独立开发的时候如果遵守这样的规则,那联调的时候基本不需要太大的改动(balala乱扯),rpc适合服务器间通讯,以方法名来作为驱动(后面还说什么了记不住了)

  • nginx你会配么,怎么设置https
    会啊,首先要获取证书,然后在配置项里配置证书位置就好了,具体的配置项的key叫什么记不清了,我们项目目前都是http

  • http?那怎么保证网络安全?
    我们项目特殊,都是政府项目,访问都在内网,相对安全点···

  • http你了解么?和http2有什么区别
    它处于应用层(然后就是tcp/ip那一套握手挥手),http2快吧(其实应该答多路复用),支持长连接吧(其实应该说支持推送···)

  • 协议和计算机原理一直是lz的薄弱项,因为很少接触,不过最近准备开始系统学习了。。。

  • 剩下的就是项目的问题了,然后担任的角色,看哪些书,用哪些搜索引擎,看哪些国外网站(这个很尴尬,lz从来不记名字···,用手语比划回想起来还是很尴尬的,拿个笔我能给stackoverflow画出来)

  • 然后公司介绍了一下自己的情况,问我有什么问题,其实这是每个面试者都应该提前准备好的,当时一是没面试经验,二是没有面试准备,就随便聊了聊考勤问题、公司战略、架构师的经历(这个很尴尬,仿佛一副“你们凭什么降伏老子”的既视感···,其实我只是好奇架构师的成长之路),这一问题还是要去公司前提前准备好,针对于不同的公司有不同的问题。
    一些较为开放的问题一定要捋清思路,语言描述一定要有逻辑结构,毕竟程序员逻辑思维很重要。
    然后就让我等通知(好莱坞原则)

总结

这篇文章写给像我一样的面试小白,不要紧张,真实面对,也不要想蒙混过关,技术这东西编不出来的。唯有脚踏实地的去学习和思考,与君共勉。

宝儿姐进化

文章纯手打,如有不对或不准确请指出更正 谢谢!

对齐填充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容