CS-Notes/interview/question.md
2018-08-24 14:37:08 +08:00

192 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- TOC -->
- [java 基础](#java-基础)
- [java 语言基础](#java-语言基础)
- [IO](#io)
- [jvm](#jvm)
- [java 多线程](#java-多线程)
- [操作系统](#操作系统)
- [计算机网络](#计算机网络)
- [运输层](#运输层)
- [算法和数结构](#算法和数结构)
- [HTTP](#http)
- [设计模式](#设计模式)
- [分布式](#分布式)
- [数据库](#数据库)
- [Linux](#linux)
- [安全](#安全)
- [简历里面的项目](#简历里面的项目)
- [Storm](#storm)
- [Zookeeper](#zookeeper)
- [kafka](#kafka)
- [hbase](#hbase)
- [hadoop](#hadoop)
- [开放问题](#开放问题)
- [Others](#others)
- [memcache](#memcache)
<!-- /TOC -->
# java 基础
## java 语言基础
- java Object 类的常见方法
- java Set Map List 接口和底层实现类的原理
- 抽象类和接口的区别注意jdk8 接口的新特性
- HashMap 和 ConcurrentHashMap的区别
- String,StringBuffer和StringBuilder的区别
- wait 和 sleep方法的区别
- 动态代理的两种方式,以及区别
- Java序列化的方式
- 传值和传引用的区别Java是怎么样的有没有传值引用。
- @transactional注解在什么情况下会失效,为什么。
- java 基本类型的自动拆装箱的过程
- 内部类与静态内部类的区别
- foreach与正常for循环效率对比
- java 8 的新特性
- AOP和OOP的区别
- java 枚举
- Java的四种引用强弱软虚用到的场景
- foreach与正常for循环效率对比
- java反射的作用于原理
## IO
- java IO 、NIO 、AIO的区别
- nio框架dubbo的实现原理(了解)
-
# jvm
- happens before 原理
- Synchronized 在jvm内部是如何实现的
- 类加载过程
- jvm 内存模型
- 强引用、软引用和弱引用的区别
- volatile 关键字问题
- jvm 内存结构
- jvm GC机制什么情况下触发GCGC算法有哪些GC过程如何等等
- 逃逸分析技术
- 标记清除和标记整理算法的理解以及优缺点。
- eden survivor区的比例为什么是这个比例eden survivor的工作过程。
- JVM如何判断一个对象是否该被GC可以视为root的都有哪几种类型。
- Java是否可以GC直接内存
- 双亲委派模型的过程以及优势
- 常见JVM调优参数
- dump 文件的分析
# java 多线程
- 线程间如何通信
- Synchronized 和 ReentrantLock的区别
- 死锁的产生条件是什么?如何预防死锁?
- 请设计一个死锁例子
- 阻塞队列的实现
- Excutors 线程池的使用方法
- Callable和Future的了解
- notify和notifyall的区别
- Lock接口有哪些实现类使用场景是什么。
- 线程池的参数有哪些,在线程池创建一个线程的过程
- 悲观锁乐观锁优缺点CAS有什么缺陷该如何解决。
- 可重入锁的用处及实现原理写时复制的过程读写锁分段锁ConcurrentHashMap中的segment
- ABC三个线程如何保证顺序执行。
- 线程状态以及状态之间的切换
- ThreadLocal的了解实现原理
# 操作系统
- 进程通讯的方式
-
# 计算机网络
## 运输层
- TCP三次握手四次挥手
- TCP流量控制拥塞控制
- TCP 洪泛攻击
- OSI 五层网络协议
- TCP和UDP的区别
- 长连接和短连接。 连接池适合长连接还是短连接。
# 算法和数结构
- TreeMap如何插入数据二叉树的左旋右旋双旋
- 平衡二叉树的时间复杂度
- Hash算法和二叉树算法分别什么时候用
- 图的广度优先算法和深度优先算法详见jvm中垃圾回收实现
- B-树和B+树的原理和应用场景
- 十大排序算法的原理和复杂度,最好能够手撕出来。(尤其是快排序和堆排序)
## HTTP
- cookie和session的区别分布式环境怎么保存用户状态
- http 和 https 的区别ssl加密过程
# 设计模式
- 观察者模式 代理模式 单例模式
# 分布式
- 分布式事务
- 分布式锁的设计
- 分布式session
# 数据库
- mysql 的索引分类
- truncate与 delete区别
- B+树索引和哈希索引的区别
- 数据库事务
- 四大基本特性?什么是隔离性?数据库并发有几个隔离级别?
- MySQL默认级别
- mysql 分库分表
-
# Linux
- top命令查看系统的参数
# 安全
- 用过哪些加密算法:对称加密,非对称加密算法;
# 简历里面的项目
## Storm
- storm 的 ACK机制
- storm 的tuple分组机制
## Zookeeper
- ZAB算法的原理
- zookeeper如何实现分布式锁
- zookeeper的选主过程
- zookeeper集群之间如何通讯
- zookeeper的应用场景
## kafka
## hbase
## hadoop
# 开放问题
- 一千万的用户实时排名如何实现
- 五万人并发抢票怎么实现
# Others
## memcache
- 一致性hash算法的实现原理