mybatis|百度智能业务部java实习一面

  • 自我介绍
  • Q:做过的项目主要用什么语言?
    A:java
  • Q:讲解一下Java内存和GC
    A:讲下JVM,GC程序计数法、可达性分析、标记清除、复制算法(被打断,可能八股文背起来别人也听够了~)
  • Q:老年代保证良好性能、STP时间短的前提下,应该采用哪个垃圾收集算法(垃圾收集器)
    A:serial-old比较关注STP的时间
    Q:Serial-old不是单线程吗?
    A:可以选择Parral-old,这是一个多线程垃圾收集器
  • Q:程序运行卡顿,我怀疑是Full GC的问题,应该怎样排查问题呢?
    A:java自带一个指令工具可以查看minor gc和full gc的次数(忘了是啥指令了),然后可以使用相关的JVM调参指令来改变老年代和年轻代大小,减少full gc次数(忘了啥指令了,尴尬)
  • Q:minor gc、full gc、major gc分别指什么,有什么区别?
    A:minor gc在年轻代eden区满后触发,对年轻代进行垃圾回收,full gc在老年代空间满后触发,对整个heap进行回收,major gc的说法不一,有的说法将其与full gc等同,也有单指老年代的垃圾回收
  • Q:对Linux熟悉吗?从一个linux主机复制文件到另一个linux主机的命令是什么?
    A:用过,但是忘了
  • Q:一个主机想要连接另一个主机的命令呢?
    A:SSH
  • Q:我有一个日志文件,想要查找某些内容,应该用什么命令?
    A:grep pattern target
  • Q:我想从一个文件夹下面所有的文件中查找某个内容,应该怎么操作?
    A:使用管道操作符,前面接find指令,找出所有的文件,输入到管道后面的grep命令中
  • Q:用过Git吗?可以讲一下你的merge操作都是用的什么命令吗?
    A:用过,但我的merge操作一个都是在Github网站上进行合并的,没用相关的命令操作
  • Q:那你可以讲一下,git中的状态切换用什么命令吗?比如我处在commit的状态,我应该怎么退出呢?
    A:忘了,这个命令用过,但也用的比较少,我一般都是直接关掉重启一个git窗口(尴尬)
  • Q:你用过redis吗?我想要保证一个高性能的redis,讲一下我可以怎么对它进行配置?
    A:首先要分配足够的空间,其次对于一些hot key可以考虑启用二级缓存,然后对于key存储时的过期时间可以考虑加一些随机项,避免缓存雪崩的问题(其实真不知道,有点半编半蒙了)
  • Q:你了解过设计模式,比如工厂模式等等?
    A:了解过一些,例如单例模式,监听者模式,等等,但是了解的也不多
  • Q:可以讲一下这个监听者模式吗?它主要解决什么问题?
    A:主要解决一个阻塞的问题。他指的是使用一个监听者,类似于Android里的listener,当被监听对象发生相应的事件的时候,会触发listener,回调相应的函数,监听期间主线程可以做别的事情
  • Java类的加载过程可以讲一下吗?
    A:(1)编译(2)加载:classloader(3)链接:a. 校验 b.准备 c.解析(4)初始化
  • Q:可以讲一下Spring bean的创建过程吗?
    A:balabala
  • Q:spring默认的bean的请求模式是单例模式,我想他变成其他模式,应该怎么配置?
    A:在XML文件里,可以把这个bean模式的属性变成prototype,这样针对每个bean请求都会返回一个bean实例(确实没有实操过,被面试官提醒spring没有xml文件)
  • Q:给一个IP地址的String数组,将ip转为整数,如“0.0.1.0”被转为256
    A:核心问题是整数转二进制,使用移位操作,实现的时候发现split(".")无法处理,考虑到了可能是转义的问题。尝试使用"\."、"/."都失败了,这里忘了windows转义可以用"\\",其实直接把.换成其他字符,先跑出结果就好了,结果我怕面试官等久了,直接问他着急不,不着急我再改改,着急我就先讲讲代码,结果他让我讲代码了==。(面完发现想的复杂了,可以直接不需要转二进制)
  • Q:如何查看一个进程的cpu占用率?
  • A:不知道
  • 补充:还问过一些有没有用过redis集群的这种问题,回答没有用过,就揭过去了
  • 总结:发现了许多短板,例如JVM调优、Linux命令、Git命令、Redis相关、设计模式等等
mybatis|百度智能业务部java实习一面
文章图片


【mybatis|百度智能业务部java实习一面】学习更多JAVA知识与技巧,关注与私信博主(888)!
热爱学习和渴望进阶的小伙伴,各种JAVA学习路线、笔记、面试题,免费分享!

    推荐阅读