记CVTE第一次面试

前言

首先说明一下博主是一个大三的学生,专业计算机科学与技术,主学的方向是Web后台开发,主语言是Java。前几天看到CVTE有校园招聘实习生,就报名参加了,做了CVTE的笔试题,前面的选择题不难,后面的编程题稍微难一些,而且切换出去调试,做完之后,本来想着没报希望了,就没理了,后来周四晚上短信通知我说过了笔试,让我周六过去面试。
面试地点是在一个酒店里面,当时也是蛮多人的,CVTE招的岗位也很多,嵌入式开发,前端,Android/IOS等都有,排了没一会队就到我了。总结一下面试的题目吧。

问题一:项目

面试官:最近有没有做过什么项目?
我:最近做过一个关于充电电车的电桩管理的项目。
面试官:个系统主要是干什么的,有什么功能?
我就跟面试官描述了一些这个系统的大致功能和流程,这里就先省略了。
面试官:假设有一天,这个电车非常好用,很多人都在使用,数据变得很大的时候,你的数据库要怎么设计?
我:尽量单表查询,建数据库索引,使用缓存。
面试官:那索引有哪几种索引?
因为我对数据库这方面比较薄弱,不过自己以前看过一些文章,只能努力回忆,
我:有主键索引、普通索引……剩下的想不太起来了。
面试官:那我如何知道一张表是不是有索引,或者说我用什么查询语句可以知道我的数据库表中是否有索引?
我:

这里比较尴尬,因为我对于数据库建立索引,优化这方面了解的并不是很多,平时用数据库只用考虑了增删查改,并没有考虑到优化问题。
后面自己恶补了索引的知识,我平时MySQL用的比较多,就以MySQL为例:

  • MySQL的索引有普通索引,唯一索引,全文索引,单列索引,多列索引,组合索引。
  • 索引算法有b-tree,hash。
  • 创建索引可以建表时创建还有通过修改表的方式增加索引。
  • 使用explain语句可以查询查询记录和是否使用到索引
  • 尽量单表查询可以使用一些反范式,也就是增加一些冗余字段,减少多表查询
  • 缓存的话要熟悉Redis和Memcached

问题二:语言

面试官:你的主学语言是什么?
我:Java。
面试官:在Java中有哪些异常?
我:异常分可检查的异常和非检查的异常,可检查的异常有IO异常,非检查的异常有空指针异常,数组越界异常……等
面试官:那我们平时怎么防止空指针异常?
我:使用if条件判断该对象是否为空?
面试官:好的,这个是可以的,在Java8中有一种更优雅的实现方式,你有了解过吗?
我:
面试官:java8中optional实现了这个功能。
面试官:了解过Java中的集合接口吗?
我:Collection接口,List,Set,Map接口
面试官:ArrayList和LinkedList有什么区别
我:ArrayList的是用基于数组的数据结构实现的,LinkedList是基于链表实现的
面试官:这两个的add()方法有什么区别?
我:ArrayList的add方法,将对象插入到数组当中,并且将数组当前位置的索引+1,LinkedList的add方法将上一个结点的指针指向要加入的对象。
面试官:了解过序列化和反序列化吗?Java中是怎么实现的
我:通过实现Serializable接口
面试官:拿出一张纸,写了一个类A,里面有一些属性,int a=1;String b = “123”
让我写出将这个类序列化到文件的代码。
我:回忆了一下,用了FileInputStream和ObjectOutStream,写了出来。
面试官:如果我将这个对象序列化到了硬盘,现在我将这个类增加了一个属性,然后再将这个对象反序列出来,会发生什么情况?
我:会报错。
面试官:如果我删除这个属性呢?
我:也会。
面试官:如果我在这个类里面,对serialVersionUID进行了初始化呢,还会报错吗?
我:不会。
面试官:为什么?

  • 我后面也将Java8的新特性重新学习了一遍,包括lambda表达式,函数式接口,方法引用,更好的类型推断,stream,base64编码,javascript引擎,更好的时间格式,jvm移除永久区增加metaspace等。Java9页快出了,也要去学习一下。
  • 还有就是集合类中的各种数据结构都要过一遍,最好全部源码都看一遍,包括List,Set,Map接口下的几个实现类比如ArrrayList,HashSet,HashMap,重点是HashMap,HashMap的实现原理,这里面试官可能会问到是否是线程安全的,如果不是,有什么解决方法,又可以引申到其他方面,比如CopyOnWriteArrayList,ConcurrentHashMap,又可以深入问下去了。
  • 关于序列化这一方面,的确自己当时没有复习好,现在很多项目都是分布式的,分布式的话就会有RPC,也就要求对象在网络中传输,所以序列化也是很重要的一部分,serialVersionUID是用来保证序列化版本的序号,如果不指定,就会随机生成一个序列号,改动类的任意一个地方,都会改变这个序号,将对象重新反序列化回来后就会报错。这次面试也只问了JDK自带的序列化,实际上还有其他序列化协议,比如xml,json也是一种序列化的方式,还有protobuff和protostuff。

3. 问题三:网络协议

面试官:说下TCP和UDP的区别
我:TCP面向连接,UDP无连接,TCP提供可靠的连接,UDP是尽最大努力交付
面试官:说下TCP建立连接三次握手过程
我:
面试官:断开连接时的四次握手,为什么需要四次而不是三次?
我:
面试官:两个不同局域网内的主机要通讯需要使用到什么协议
我:NAT协议
面试官:如果一个局域网内的主机要向另一个局域网内的主机发送消息,传输的报文是怎么样的?
我:
面试官:HTTP协议有哪些状态码?
我:200 302 404 500
面试官:302代表什么意思
我:重定向
面试官:浏览器是怎么处理重定向的,客户端访问服务器,服务器通过response响应,重定向的url放在response的什么地方?
我:
实际上,如果做web开发的话,对计算机网络也要非常的熟悉,OSI 7层协议,TCP 5层协议,TCP/UDP的区别,TCP如何实现可靠传输,三次握手四次挥手,拥塞机制。HTTP的各种头,状态码,HTTPS和HTTP2.0都要去了解。
302重定向的rul是放在Header的Location属性中

4. 问题四:其他

面试官:除了Java,你有了解过其他技术吗?
我:学过一些JavaScript
面试官:是前端还是node.js?
我:前端
面试官:js如何过滤一些敏感字符
我:正则表达式。
面试官:原生JS发送ajax的四个步骤有哪些?
我:
面试官:了解什么是XSS漏洞吗?
我:
面试官:如何防止表单重复提交
我:表单提交后将提交按钮disable掉
提交表单后重定向到另一个页面
服务器端使用token技术
做后端开发的对于前端的技术,了解就好了,会前端加分项,不会也不扣分,一般大公司的分工都是比较明确的,每个岗位都有自己负责的工作,如果一家公司让你前后端通吃,那可能是外包公司,分工不明确,可能什么都要你来的那种。这个看个人吧,不过对于后端的话,可以学一下现在前端热门的三个框架Angular/React/Vue中的一个。

5.总结:

首先面试官第一个问的就是你有没有做过什么项目,说明项目是很重要的,出去找工作一定要有项目经验。然后面试官问的问题都是有一些规律的,从你的回答中去引申,比如一开始的项目,项目中遇到了什么,如果使用这个项目的人变得很多了,需要怎么设计表。然后再根据你的回答继续深入问你,所以,如果对某些方面一直半解,就不要胡乱说,直接说这个方面我还暂时还没有了解。我们知道面试官会一层一层地深入追问,那么我们也可以引导面试官往往我们擅长的地方去询问,回答的时候尽量答得周全一些,可以突出一些你知道别人不知道的点,这样可以给自己加分。

整个面试过程中,没有问到任何框架的问题,其实想想也可以明白,框架这个东西,会用其实很简答,你学个几天,照着文档写demo,很容易就学会了的,所以一些大的公司往往更加注重基础。除了自己所学的主要语言方面,还可以掌握一些其他的技能,也是给自己加分的项。还有计算机网络,网络层,传输层,应用层的熟悉一定要非常的熟悉,web开发肯定要对这些协议掌握的非常透彻,TCP/UDP、Http。现在语言有很多种,不单单只是Java,Python、Node.js、Ruby这些都可以用来开发Web,只不过每个语言有自己的优点和特色。

最后在当天晚上得出了结果,也在自己的意料之中,自己的回答的确也是挺差的。这次面试也让我学到了很多东西,感谢这位面试官。机会总是留给有准备的人的,Java基础也还需要再进一步巩,重点关注IO/NIO,线程,并发包,集合,Java8新特性,计算机网络相关知识。对学过的知识要进行分类整理,形成自己的知识体系,这样你的逻辑才会清晰。路还长,坑还很多,剩下的时间好好把握,努力学习,充实自己!

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

推荐阅读更多精彩内容

  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,063评论 0 62
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,169评论 11 349
  • 今天,我和妈妈、阿姨、表妹、两个表弟和昌华叔叔去水上乐园玩 我们的第一站是山洪海啸区。有很多人在那玩耍、冲浪,我们...
    范诗琪阅读 830评论 0 2
  • 我叫董小烁,现在11周岁,其实我觉得应该叫董小强,哈哈 我更像一只打不死的小强!我坚强所以我骄傲!一年前我确诊得S...
    浪漫_大草原阅读 297评论 5 3
  • 某篇祷文说:上帝若想赐恩于祂的某个仆人,就会将他心底的无益之言彻底抹去。 多久没有歌唱了? 你喉咙暗哑 声...
    郑小红阅读 234评论 0 0