记中兴的一次技术面试

目录

  • 前言
  • 面试题
    • 左连接与右连接
    • java反射
    • 垃圾回收
    • 索引
    • 悲观锁与乐观锁
    • jvm的优化
    • 设计模式
  • 总结

前言

   作为渣硕一枚,今天是秋招以来的第一次面试(虽然投的也不多),说句实话还是挺紧张的,尤其是等待的时候,很紧张,一起的小伙伴给我讲她面试经历的时候,心想完了,她说的知识点我好像都很模糊,这也不会,那也不会,究其根本还是基础不扎实吧!毫不夸张的说直到快到我面试的最后一分钟,她还在跟我讲排序算法。所以平时学习还是要多总结,多思考,多看,才能游刃有余。好了,废话不多说,开始总结一下面试的流程跟问题,供自己后续的学习吧!
   首先,进去坐下来之后,查看了相关资料以及应聘的职位和地点,然后就进行自我介绍(主要介绍了一下自己姓甚名谁,来自哪,以及研究生期间的研究方向,我顺便提了一下自己自学了java基础知识以及在网上找了个项目学习了一下,然后特尴尬的是其中的一个面试官说,你这个项目前几天有一个人简历上写的也是这个,对此,我只能笑着说自己是在网上找的资料可能有所重合吧,当时内心特庆幸没有说是自己做的项目,所以项目经历啥的,个人觉得除非相当有把握不会与别人撞了,还是诚实的来吧!),接下来就问了一下专业知识。问题及答案如下
  了不了解Redis?我的回答: 我听说过Redis是与数据库有关的但还没学过,但是我知道MySql!那你说一下左连接和右连接吧,然后我就开始说左连接,右连接的概念了。这说明,当面试官问你的问题你没涉及到就直接说,但是不要只说不知道,要把话题往相关的你会的知识点引,不然天就被你自己聊死了,再说个我同学面试的例子吧,面试官问她有没有相关的项目经历,她说没有,然后面试官互相对视一眼,她当时敏锐的感觉到形势不妙,然后她立马就说但我了解java一些基础知识比如集合之类的,然后面试官说,那你讲讲吧,她就说了一堆,后来她又说数据结构也挺熟的,面试官说,那你讲讲排序算法吧,然后她又说了一堆,最后面试官说你学习能力还挺强的,比挺多男生都强。我不知道后续会怎样,因为结果还没出来,但是我想说,就那场面试来说,形势逆转了。所以说如果能有一些优秀的项目经历肯定是最好的,但是如果没有的话就把基础学扎实,这样的话,慢慢的工作也会有的(感觉在自我安慰),哎呀,又扯了很多废话,正题,正题!!!

面试题

左连接与右连接

左连接与右连接?
  左连接与右连接是数据库中进行多表查询用到的。
  左连接:是以左表为基准的,其查询结果是将左表的全部记录显示出来,右表只显示符合条件的记录,右表记录不足的地方均为null。
  右连接:与左连接相反,以右表为基准,其查询结果是将右表的全部记录显示出来,左表只显示符合条件的记录,左表记录不足的地方均为null。
   内连接(补充的):组合两个表中的记录,返回两个表中相同的部分即两个表的交集部分。
   MySql各种连接详解(转载)

java反射

java反射机制?
   java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能调用它的任意一个属性和方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。(此部分在当时回答的时候也是这个意思,但没有这么专业,故从别的博客上摘录下来,希望自己记忆住,以下附上链接)
   java反射相关知识(转载)

垃圾回收

GC(垃圾回收算法)?
   在java中垃圾回收主要是回收堆中的那些已经“死去的对象的内存空间”从而避免内存泄露的发生,节省内存资源,避免程序代码的崩溃。java的垃圾回收机制采用分代收集的方法,将java中的对象分为新生代和老生代(新生代是指生命周期短的对象,老生代是指生命周期长的对象),然后再新生代区域采取复制算法进行垃圾回收,在老生代采取标记-清除算法或标记-整理算法
   复制算法是将内存中的区域一分为2,每次只使用其中的一部分,当这部分的内存使用完后,就将还存活的对象复制到另一块空着的内存上,然后再把已使用过的内存空间一次清理掉。缺点:每次进行内存分配时,可使用的内存空间变少了,导致内存空间紧张
   标记-清除算法:该算法从根集合进行扫描,对存活的对象进行标记,标记完成后再扫描整个内存空间,将未标记的对象清除掉。缺点:标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。同时效率也不高。
   标记-整理算法:该算法的标记过程标与记清除算法类似,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。
  java垃圾回收机制详解(转载)

索引

了解过索引吗?索引的使用场景?
  数据库索引,是数据库管理系统中一个排序的数据结构,用于快速找出在某一列中有特定值的行。不使用锁引,数据库必须从第一条记录开始读完整个表直到找到相关的行,数据越大查询,查询数据所花费的时间就越多,若表中查询的列有一个索引,数据库能快速到达一个位置去搜索数据文件,而不必查看所有数据,可节省很大一部分时间。
   不使用索引的情况:表记录太少,经常增删改的表,表中包含许多重复的内容(索引建立与否效果无差别)
   实际上索引也是一张表,该表保存了主键与索引字段并指向实体表的记录,会占用内存空间,虽提高了查询效率,但会降低更新表的速度。
   数据库索引详解(转载)

悲观锁与乐观锁

悲观锁跟乐观锁?
   悲观锁:就是很悲观每次拿数据的时候都认为别人会修改,所以每次在拿数据时都会上锁,这样别人想拿这个数据就会block直到它拿锁。
   乐观锁:就是很乐观,每次拿数据时都认为别人不会修改,所以不会上锁,但在更新的时候会判断一下别人在这个期间有没有去更新这个数据。(突然想起来昨天回答这个问题的时候好像把它跟java里面的一个什么知识点弄混了,回答成那个了,无比尴尬。。。。。。)
   masql锁的各种概念(转载)

jvm的优化

jvm的优化机制能说上一两点吗?
  今天整理的时候发现jvm的优化机制之前在看某篇博客的时候看到过,但昨天给忘了。。。附上链接,供自己后续复习的时候参考。
   垃圾回收和调优(转载)

设计模式

设计模式
   设计模式这一块儿之前看过,但是有点忘了,附上23种设计模式链接后续复习的时候进行参考。
   设计模式(转载)

总结

   中兴的专业面试时间其实不长才15分钟,我所遇到的面试问题也比较常规,问的大部分问题也都能答上来,虽然说面试是个玄学看运气,毕竟有的考场问的都是java基础里的知识,但是还是要提高自己的知识储备量,这样不管运气好坏都不会慌。
   这是我第一次写博客,排版啥的有问题请大家谅解,另外本人技术方面知识若有错误请大家指出,会努力改进的,文中的参考链接都有备注,如有侵权,请联系本人

你可能感兴趣的:(面经)