深圳强时科技有限公司(一面)

招聘简章技术栈要求:
  • 熟练掌握Spring、Spring Cloud、MyBatis、Mongodb、RabbitMQ、Redis、ElasticSearch等常用组件。
  • Java基础扎实,具备JVM诊断性能优化技巧,对JVM运行原理比较熟悉。
  • 了解常见设计模式,熟悉微服务的架构模式,熟悉敏捷开发的开发模式
  • 熟悉linux操作系统基本原理、熟练掌握基础命令
  • 了解DevOps相关知识,对Docker有一定项目实践者优先
  • 熟练掌握MySql以及NOSQL、熟悉SQL基本规范、索引等基本概念
  1. 自我介绍----------------略,毕竟先参考了招聘简章要求的简历……心里有个底。
  2. 聊项目,项目技术栈---------考察的是项目经验……略
  3. JVM的了解?----------运行时的那几个数据区(画图阐述)内存模型……每次面试都是类似的发问,所以轻车熟路了。
  4. JVM对象分代划分--------(画图阐述)Eden Space用于存放新创建的对象,From区和To区都是准备空间;当Eden区满时,JVM执行垃圾回收GC,垃圾收集器暂停应用程序,并会将Eden Space还存活的对象复制到当前的From空间,一旦当前的From救助空间充满,此区的存活对象将被复制到另外一个To区,当To区也满了的时候,从From区复制过来并且依然存活的对象复制到Old区,从而From和To救助空间互换角色,维持活动的对象将在救助空间不断复制,直到最终转入Old域。
  5. 你所了解的垃圾收集器有哪些?----------Serial收集器单线程收集器,在垃圾收集时会暂停其他工作线程。ParNew收集器属于serial的多线程版本。CMS收集器,G1收集器……(不知道问这些有什么用?感觉现在一些企业招聘都是为了面试而面试,不算是真正的招聘)
  6. jvm性能调优?------------------一些调优参数,-XX:    ……,……(性能调优的一些参数规定,其实我也不太了解更深入的概念,有时间再看看相关资料)
  7. 你了解的JVM性能监测工具?-----------------jps虚拟机进程状态工具,jstack虚拟机栈空间的查看工具……,……
  8. synchronized关键字的了解?-------并发中,对于共享资源的修改进行的同步操作,必须配合锁来使用,synchronized修饰的内部代码具有原子性,CPU必须执行完代码块里所有的操作才能进行线程的切换……
  9. synchronized的用法?---------手写伪代码表述:synchronized修饰方法,方法内部的变量操作是同步的;修饰静态方法;同步代码块(参数为监视器对象);静态方法中的同步代码块;……
  10. synchronized不同的修饰用法?-------是对上一个问题的延伸发问。假设按照上面的不同修饰分下类:staic+synchronized方法、synchronized(*.class)称为类锁;synchronized方法、synchronized(this)称为对象锁;通过一个私有属性作为synchronized的参数称为私有锁。
  11. 同步方法和同步代码块的优劣怎么理解?-------实际开发中使用同步代码块更好。同步代码块更具有针对性,对需要的操作原子性进行操控,而同步方法有时会被无关的方法也当作了原子性的同步操作。而且同步代码块可以灵活选择锁……
  12. 线程之间的通信方法,wait/notify/nitifyAll等方法?---------说白了就是在一个线程中可以对另一个线程的停/行做出通知。以上三个方法属于Object类中的,一旦一个线程调用了wait方法,则线程转为停止状态,直到另一个线程调用了同一个对象的notify进行唤醒方可继续执行,前提是synchronized代码块参数为同一个对象……
  13. 聊项目,主要是项目架构的设计和应用的技术栈?------前端的过滤、拦截,并发请求消息中间件,数据库方面的一些(包括内存数据库),没有侧重某个技术栈知识点,主要是项目的业务需求架构……

总结:上午的面试偏重于JVM的了解以及JVM的调优,多线程并发同步的理解……







#社招##面经##Java工程师#
全部评论
感谢分享面经!欢迎参加过社招的牛友发社招面经拿京东卡!~ -------------------- 活动:社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡
点赞 回复
分享
发布于 2019-11-23 14:31

相关推荐

3 9 评论
分享
牛客网
牛客企业服务