面试题

 
  • 说一下spring security框架里面常用的几个组件。
  • 新建一个mysql组合索引a+b+c,判断什么情况下索引可以使用,什么情况下索引不可以被使用
  • hashmap与ConcurrentHashMap性能比较,为什么ConcurrentHashMap是线程安全的。内部的结构是什么?
  • 你们的应用是通过什么访问的?(之前描述说前面有4层,nginx),这里是vip
  • JVM内存溢出发生在哪个区,新生代,老生代,是堆还是栈?
  • 如何在线上定位一个类的问题? 说说思路
  • HashMap死锁是如何产生的?
  • 应用使用了什么日志框架? (没有使用门面,直接使用log4j & System.out.println)
  • 说说常用的线程安全的集合类
  • 如何解决缓存雪崩,缓存穿透?
  • redis集群中,如果有1千万的用户信息,如何做分片?
  • 当mysql读写分离后,如何解决业务层的数据一致性,即一段代码中既有写操作,又有读操作。从应用侧如何做?从数据库层面如何做(软件侧依赖数据库的事务传播,库侧可以使用MysqlFabric)
  • redis cluster集群中,如何保证数据的一致性,当节点恢复启动,后要保证数据不丢失,怎么配置(有两种,忘了,都要使用)
  • 线上应用的日志是怎么处理的?(直接存本地文件)
  • 平时怎么使用多线程的?

当多个线程同时访问method1和2时哪个方法会阻塞
class A{
    public void synchronized method1(){}
    public void method2(){}
}

当多个线程同时访问method1和2时哪个方法会阻塞
class A{
    public static void synchronized method1(){}
    public static void method2(){}
}