2018北京3月份java面试题(3~5年工作经验)

仅提供面试知识点,详细内容后续补充

一、java基础

     1.final修饰方法、类、成员变量的特点

     2.集合框架 ArrayList,HashMap,ConcurrentHashMap(这三个问到的频率最高)

      知识点:底层数据结构,知道哪些是线程安全的,线程不安全的,最好阅读一下源码,构造方法有几个,默认参数。(jdk1.8和之前的版本区别)

      ConcurrentHashMap 为什么是安全的?看一下put方法;能说出来细节,锁加在什么位置,hash冲突怎么 处理;扩容以后存储顺序位置会发生什么变化。

     3.多线程 Lock和Synchronized,join和yield

知识点:两者之间的区别(进阶版:lock的底层实现原理AbstractOwnableSynchronizer,synchronized底层monitor对象)公平锁和非公平锁, Synchronized加在静态方法上和非静态方法上用的锁是什么,补充CAS知识点

     4.atomic包下面的AtomicInteger等(保证原子性),volatile保证可见性(指令重排序、内存屏障),ThreadLocal

     5.线程池有几种,区别,详细了解一下构造方法的各个参数。进阶:实现线程池的思路

     6.java IO和NIO的区别

     7.java反射机制,在哪儿用到了

     8.深克隆和浅克隆

二、数据结构

   1.算法:冒泡排序(至少掌握一种排序算法)、二分法查找

   2.手写一个栈 先进后出

   3.二叉树、红黑树

三、框架

   1.Spring:AOP,IOC 最好能翻阅spring源码,用到的设计模式,隔离级别,传播属性

   2.Mybatis中的$和#的区别

   3.dubbo:工作原理,集群容错,负载均衡

四、数据库

   1.mysql innodb引擎特点;索引B+tree,sql优化,sql分析方法;

   2.redis 数据类型,主从原理,持久化方式,事务;

五、jvm

   1.gc算法:标记整理、复制、压缩

   2.堆、栈、方法区

六、调优

   1.tomcat NIO,线程池。

七、线上问题分析方法

   1.top命令,jstat,jmap等

八、计算机网络

  1.三次握手、四次挥手能画出图,以及各个状态代表的意义

  2.http和https

  3.TCP和UDP



     


   

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值