问题记录

数据库

1.索引覆盖 查询结果只在索引中
2.分页优化,先查询id范围
3. 行列转换,case when,pivot
4.索引失效,不等于时
5. mysql oracle差别(分页)
6. 使用的数据结构:什么树,原理
7. 索引类型:普通索引、唯一索引、全文索引、多列索引
8. innodb优势:b+tree,支持事务,支持外键,高并发(MVCC)
9. 范围查询,先查询出id,再用id关联有什么好处
10. 子查询为什么效率低
11. explain各列的含义

java

1.反射的几种方式,getClass,Class.ForName,ClazzA.class,class.newInstance()创建
2. hashmap和hashtable:

  • 新旧差别
    -是否线程安全,hashtable安全,hashmap不安全
    -hashmap使用了红黑树
  • hashtable全表锁,
  • concurrenthashmap jdk1.7分段,1.8使用乐观锁
  1. hashmap遍历: keyset entryset iterator
  2. object方法: equal hashCode wait notify getClass toString
  3. equals和hashcode: equal相同,对于map结构则hashCode相同
  4. concurrent包,及实现
  5. java中的锁
  6. 线程池有几种
    • 参数:core大小,最大大小,过期时间,队列,阻塞方式
  7. syncronized和object锁区别
    • 偏向锁、自旋锁(轻量)、互斥锁(重量),头部存储mark,或者指针
    • syn:monitor类,CAS
      10。 jvm内存分类,计数器,本地方法,堆栈,全局方法,堆
  8. 内存回收算法:mark sweep/copy/mark compact/generation collection/
    • cms: young(eden,survivor*2) old 初始标记,并发标记,重新标记,清理 减小回收时间
    • g1 内存分块,提高利用率 部分清理。可预计的回收时间
    • stop the world
  9. 申请对象是否可以直接进入old区?可以。超过-XX:PretenureSizeThreshold大小可直接进入
  10. 使用线程池碰到的问题
  11. jdk1.8 新特性:lambda,默认接口,stream,LocalDateTime
  12. 内存模型JMM。工作内存,主内存。8个指令。valotile,
  • happens-before:同一线程,加锁,volatile,线程的发生、中断
  1. StringBuffer,StringBuilder区别,前者线程安全,后者不安全但速度快
  2. 并发锁:CountDownLatch,CyclicBarrier,Semepher
  3. 原子操作类

程序设计

  1. 常用设计模式:单例、工厂、代理、装饰、发布订阅
  2. 单例模式懒汉、饿汉、枚举模式(反序列化防止注入)
  3. spring使用的设计模式:DI:工厂模式 AOP:代理模式
  4. 设计原则:单一职责,里氏代换,高内聚低耦合,对修改封闭、对扩展开放
  5. 排序算法:归并
  6. 红黑树原理

spring

  1. aop:
    • jdk: 基于接口,invocationHandler invoke 创建proxy
    • cglib,字节码编制
  2. 通知类型? before after around afterThrow afterComplete
  3. 隔离级别: 默认 RUC RC RR Serializable. 默认与数据库相同
  4. bean的生命周期
  5. spring启动过程
  6. interceptor

redis

  1. 失效机制
  • 默认no eviction不失效
  • volatile-lru ttl random
  • allKeys-lru random
  1. 数据库同步
  • Cache Aside
  • Read/Write Through
  • Write Behind Caching
    三方组件:mysql binlog
  1. 数据结构:string list map set zset
  2. 集群模式下,master失败怎么办

其他

  1. TCP三次握手
    sync =2 SYN-SENT
    sync = y ack = x+1 SYN-RCVD
    sync = x+1 ack = y+1 ESTABLISHED
  2. TCP四次挥手
    FIN FIN-WAIT-1
    ACK CLOSE-WAIT
    FIN+ACK FIN-WAIT-2
    ACK

算法

posted @ 2020-07-17 07:30  mosakashaka  阅读(112)  评论(0编辑  收藏  举报