zoukankan      html  css  js  c++  java
  • 面试基础知识整理

    1 JVM
    这个大公司基本都会问,内存模型,GC,jvm都有哪些区域?栈桢存了什么?
    常用垃圾回收器哪些,特点?jvm性能调优,这些从周志明的jvm特性那本书基本都有答案,一个高级程序员必读,出去面试,至少得读两遍,理解,不是死记硬背,面试官会问的很细,你如果死记硬背,人家随便一问,你就跪。
    2 线程池
    这个基本必考,高级程序员不会问你启动线程哪几种方式,都是高并发场景。比如四种线程池,都在那哪几种场景使用的多。线程池的几个重要参数哪些,这些重要参数,在不同线程池下比较。高并发下阻塞队列用哪个,我记得是大众点评问我的,用linkblockqueue还是arrayblockqueue,我当时候说,后者吧,队列添加任务快,基于列表,人家说错了,前者,array是连续的,回收的快,这些都是细节。剩下的就是阻塞队列拒绝策略。默认都是拒绝,有个面试官问我,假如阻塞队列满了,请求拒绝,但是这些请求是重要的,怎么办?这种情况实际开发中会遇到,每个系统总有个峰值,达到峰值,系统可能处理不了,他说,这个时候先把所有请求落数据库,或者mq,后面处理,真实场景会遇到,可能之前你没遇到,但是面试官会问这些,觉得你有没有思考的能力。线程池,tomcat默认就有线程池,会问到调优,所有系统基本离不开吧。
    3 锁
    这个也是必考,虽然开发中有时候不用,基本会问,syncnizched关键字,作用,类锁,对象锁,方法锁区别?
    静态方法加锁,两线程会互斥吗,非静态方法,加锁,会互斥吗?这个比较简单。这个关键字,内置对象锁,jvm创建对象后,会在对象的对象头,存着。然后和lock锁区别,这个如果你去背,可能不理解,我是这么理解的,假如有个厕所,很多人想去上,假如是sync锁,所有人会不定时去敲门,厕所有人吗,非常耗性能,CPU切换,但是lock锁,相当于加了个管理员,举着个牌子,进去一个人,排着写着有人,剩下的看到,就不会去敲门了,人走了,把牌子改下,Java,是基于volitale关键字,通过aqs保证,还有sync阻塞的,比如有个人在厕所玩手机,sync只能等。释放锁,但是lock,可以中断,或其他操作。问的深的会问锁优化之类的,虽然。开发基本用不到,但是你想拿高薪,必须要会。另外,数据库的锁会问。表锁。lock的读锁,写锁,怎么用。原理。这块必须深入理解。不然只能被虐。
    4 缓存
    这个基本必考,redis,问的问题挺多,es可能会问,分布式系统,redis的唯一ID能做什么?新数据来了,是先存数据库还是redis,过期策略,什么时候用redis做缓存,什么时候用做数据库,和es,mongo,区别。这个只是个缓存,稍微看下,不会问的很深。
    5 MQ
     消息中间价,分布式系统基本使用,原理,哪几个组成部分,kafka和rabbitmq,区别?
    如何保证消息不丢失。基于哪种协议?他的好处?你的项目怎么使用它的。点对点,订阅发布,区别,你的理解。
    6 分布式
    分布式是啥。一个服务器问题造成血崩怎么办,四层负载均衡和七层区别,说下用过哪些RPC框架。dubbo基于哪些协议,服务如何注册,如何被发现?这个基本都考些,当然,也不要求你都精通,大致原理懂就好。
    7 spring
    bean的生命周期,spring得核心,spring的代理模式,动态代理,第三方cglib代理哪些场景使用,spring用了哪些设计模式。
    spring的事务,传播行为。哪些常用注解?
    8 springmvc
    原理,常用注解。和struts区别,这个也要花点时间准备。
    9 集合
    这个必考,重要重要重要,说三遍。哪些常用集合,几种集合,区别,比如ArrayList和linklist区别,性能,这个是基础,问的最多,最多,最多,hashmap,concurrentHashmap,JDK7和JDK8concurrentHashmap区别,实现,原理,两种JDK的size() 方法怎么实现?这个最好把源码看几遍,什么初始化,扩容,底层为什么要用数组加链表加红黑树,什么是红黑树,这个大部分公司必考,看你能力。
    10 数据库
    索引,必考,基于b+树,唯一索引,普通索引,联合索引,join是否让索引失效,联合索引的最左原则,两个字段加了联合索引,两个一起用,或者第一个字段,查询,都不会实现,用右边的字段,失效,等等。有的会让你手写SQL,数据库引擎,myisam和innoDB区别,基本不会问别的。
    11 同步io阻塞io
    nio bio aio 区别,用法,b阿里和爱奇艺都问了。
    12 springmvc和struts2

    13 hibernate 和 mybatis

    rpc相关框架了解  zookeeper选举

  • 相关阅读:
    Java中的阻塞队列
    大数据笔记
    物联网小笔记
    shell 笔记
    Redis笔记
    rabbitMQ笔记
    java.lang.NoClassDefFoundError: freemarker/template/Template
    分布式系列学习-事务处理
    免费无需破解xshell xftp下载
    idea maven模块变灰或者java文件夹非 Sources文件夹
  • 原文地址:https://www.cnblogs.com/junge/p/7646931.html
Copyright © 2011-2022 走看看