前言
在茫茫的互联网陆地中寻寻觅觅,我珍藏了近千道 Java 经典面试题,分享给你们。倡议大家珍藏起来,在茶余饭后拿进去读一读,以备防患未然之需。7 心愿大家都能找到本人现实的 offer 呀。
Java 根底
- equals 与 == 的区别
- final, finally, finalize 的区别
- 重载和重写的区别
- 两个对象的 hashCode()雷同,则 equals()是否也肯定为 true?
- 抽象类和接口有什么区别
- BIO、NIO、AIO 有什么区别?
- String,Stringbuffer,StringBuilder 的区别
- JAVA 中的几种根本数据类型是什么,各自占用多少字节呢
- Comparator 与 Comparable 有什么区别?
- String 类能被继承吗,为什么。
- 说说 Java 中多态的实现原理
- Java 泛型和类型擦除
- int 和 Integer 有什么区别,还有 Integer 缓存的实现
- 说说反射的用处及实现原理,Java 获取反射的三种办法
- 面向对象的特色
- & 和 && 的区别
- Java 中 IO 流分为几种?
- 讲讲类的实例化程序,比方父类静态数据,构造函数,子类静态数据,构造函数。
- Java 创建对象有几种形式
- 如何将 GB2312 编码的字符串转换为 ISO-8859- 1 编码的字符串呢?
- 守护线程是什么?用什么办法实现守护线程
- notify()和 notifyAll()有什么区别?
- Java 语言是如何解决异样的,关键字 throws、throw、try、catch、finally 怎么应用?
- 谈谈 Java 的异样层次结构
- 动态外部类与非动态外部类有什么区别区别
- String s 与 new String 与有什么区别
- 反射中,Class.forName 和 ClassLoader 的区别
- JDK 动静代理与 cglib 实现的区别
- error 和 exception 的区别,CheckedException,RuntimeException 的区别。
- 深拷贝和浅拷贝区别
- JDK 和 JRE 有什么区别?
- String 类的罕用办法都有那些呢?
- 谈谈自定义注解的场景及实现
- 说说你相熟的设计模式有哪些?
- 形象工厂和工厂办法模式的区别?
- 什么是值传递和援用传递?
- 能够在 static 环境中拜访非 static 变量吗?
- Java 反对多继承么, 为什么?
- 用最有效率的办法计算 2 乘以 8?
- 结构器是否可被重写?
- char 型变量中能不能存贮一个中文汉字,为什么?
- 如何实现对象克隆?
- object 中定义了哪些办法?
- hashCode 的作用是什么?
- for-each 与惯例 for 循环的效率比照
- 写出几种单例模式实现,懒汉模式和饿汉模式区别
- 请列出 5 个运行时异样。
- 2 个不相等的对象有可能具备雷同的 hashcode 吗?
- 拜访修饰符 public,private,protected, 以及 default 的区别?
- 谈谈 final 在 java 中的作用?
- java 中的 Math.round(-1.5) 等于多少呢?
- String 属于根底的数据类型吗?
- 如何将字符串反转呢?
- 形容动静代理的几种实现形式,它们别离有什么优缺点
- 在本人的代码中,如果创立一个 java.lang.String 类,这个类是否能够被类加载器加载?为什么。
- 谈谈你对 java.lang.Object 对象中 hashCode 和 equals 办法的了解。在什么场景下须要从新实现这两个办法。
- 在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。
- 什么是序列化,怎么序列化,反序列呢?
- java8 的新个性。
- 匿名外部类是什么?如何拜访在其里面定义的变量呢?
- break 和 continue 有什么区别?
- String s = “Hello”;s = s + ” world!”; 这两行代码执行后,原始的 String 对象中的内容是否会扭转?
- 怎么将 GB2312 编码的字符串转换为 ISO-8859- 1 编码的字符串?
- try-catch-finally-return 执行程序
- Java 7 新的 try-with-resources 语句,平时有应用吗
- 简述一下面向对象的”六准则一法令”。
- switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
- 数组有没有 length()办法?String 有没有 length()办法?
- 是否能够从一个动态(static)办法外部收回对非动态(non-static)办法的调用?
- String s = new String(“jay”); 创立了几个字符串对象?
- 匿名外部类是否能够继承其它类?是否能够实现接口?
- 咱们能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范畴,将会呈现什么景象?
- float f=3.4; 正确吗?
- 你能写出一个正则表达式来判断一个字符串是否是一个数字吗?
- Reader 和 InputStream 区别?
- 列举出 JAVA 中 6 个比拟罕用的包
- JDK 7 有哪些新个性
- 同步和异步有什么区别?
- 理论开发中,Java 个别应用什么数据类型来代表价格?
- 64 位 JVM 中,int 的长度是少数?
- java8 的新个性
- 字节流与字符流的区别
- Java 事件机制包含哪三个局部?别离介绍下。
- 为什么期待和告诉是在 Object 类而不是 Thread 中申明的?
- 每个对象都可上锁,这是在 Object 类而不是 Thread 类中申明,为什么呢?
- 为什么 char 数组比 Java 中的 String 更适宜存储明码?
- 如何应用双重查看锁定在 Java 中创立线程平安的单例?
- 如果你的 Serializable 类蕴含一个不可序列化的成员,会产生什么?你是如何解决的?
- 什么是 serialVersionUID?如果你不定义这个, 会产生什么?
- Java 中,Maven 和 ant,gradle 有什么区别?
- 常见的序列化协定有哪些
- @transactional 注解在什么状况下会生效,为什么。
- Java 中,DOM 和 SAX 解析器有什么不同?
- 数组在内存中如何调配;
- 什么是 Busy spin?咱们为什么要应用它?
- Java 中怎么获取一份线程 dump 文件?
- 父类的静态方法是否被子类重写
- 什么是不可变对象
- 如何正确的退出多层嵌套循环?
- SimpleDateFormat 是线程平安的吗? 你个别怎么格式化
- 抽象类必须要有形象办法吗?
- 怎么实现动静代理?有哪些利用
- 什么是外部类?外部类的作用
- 泛型中 extends 和 super 的区别
- 外部类有几种,在我的项目中的有哪些利用
- utf- 8 编码中的中文占几个字节;int 型几个字节?
- 说说你对 Java 注解的了解
- Java 中 java.util.Date 与 java.sql.Date 有什么区别?
- 说一下隐式类型转换
- 抽象类能应用 final 润饰吗
- 给我一个合乎开闭准则的设计模式的例子
- Files 的罕用办法都有哪些
- Java 中,Serializable 与 Externalizable 的区别?
- Java 锁有哪些品种,它们都有哪些区别
- 形象的办法是否可同时是动态的), 是否可同时是本地办法),是否可同时被 synchronized 润饰?
- 一个”.java”源文件中是否能够蕴含多个类(不是外部类)?有什么限度?
- 说说代理的实现原理
- 理解哪设计模式,举例说说在 jdk 源码哪些用到了你说的设计模式
- 什么是 B / S 架构?什么是 C / S 架构
- Java 有那些开发平台呢?
- Java 外部类为什么能够拜访到外部类呢?
- Java 反对的数据类型有哪些?什么是主动拆装箱呢?
- 创立线程有几种不同的形式
- hashCode()和 equals()办法的重要性体现在什么中央?
- 如何通过反射获取和设置对象公有字段的值?
- 如何通过反射调用对象的办法?
- 简述一下面向对象的 ” 六准则一法令 ”
- Java 对象不应用时为什么要赋值为 null?
- 什么时候用断言(assert)?
- AJAX 申请为什么不平安?
- 一个 Java 字符串中到底能有多少个字符?
- StringBuilder 为什么线程不平安?
- 深克隆和浅克隆
- 聊一聊设计模式的根本准则
- Java 是否自定义一个类叫 java.lang.System?
- Java 中的两种异样类型是什么?他们有什么区别?
- Java 中 Exception 和 Error 有什么区别?
- throw 和 throws 有什么区别?
- 异样解决实现当前,Exception 对象会产生什么变动?
- 什么是 RMI?
- 解释下 Serialization 和 Deserialization。
- 环境变量 Path 和 ClassPath 的作用是什么?如何设置这两个环境变量?
- 字符型常量和字符串常量的区别
- 结构器 Constructor 是否可被 override
- 什么是办法的返回值?返回值在类的办法里的作用是什么?
- 一个类的构造方法的作用是什么?若一个类没有申明构造方法,改程序能正确执行吗?为什么?
- 静态方法和实例办法有何不同?
- 对象的相等与指向他们的援用相等,两者有什么不同?
- 用 Java 写一个线程平安的单例模式
- 我能在不进行强制转换的状况下将一个 double 值赋值给 long 类型的变量吗?
- java 枚举类型是否能够继承 (final)?
- Cloneable 接口实现原理?
- 继承和聚合的区别?
- 能用 Java 笼罩静态方法吗?如果我在子类中创立雷同的办法是编译时谬误?
- 什么是 Java 程序的主类?应用程序和小程序的主类有何不同?
- instanceof 工作中应用过吗?
- Java 自带线程池判断线程池是否曾经完结运行的办法叫什么
- 成员变量与局部变量的区别有那些?
- 创立一个对象用什么运算符? 对象实体与对象援用有何不同?
- 一行 Java 代码是如何执行的?
Java 汇合
- Arraylist 与 LinkedList 区别
- Collections.sort 和 Arrays.sort 的实现原理
- HashMap 原理,java8 做了什么扭转
- List 和 Set,Map 的区别
- poll()办法和 remove()办法的区别?
- HashMap,HashTable,ConcurrentHash 的共同点和区别
- 写一段代码在遍历 ArrayList 时移除一个元素
- Java 中怎么打印数组?
- TreeMap 底层?
- HashMap 的扩容过程
- HashSet 是如何保障不反复的
- HashMap 是线程平安的吗,为什么不是线程平安的?死循环问题?
- LinkedHashMap 的利用,底层,原理
- 哪些汇合类是线程平安的?哪些不平安?
- ArrayList 和 Vector 的区别是什么?
- Collection 与 Collections 的区别是什么?
- 如何决定应用 HashMap 还是 TreeMap?
- 如何实现数组和 List 之间的转换?
- 迭代器 Iterator 是什么?怎么用,有什么特点?
- Iterator 和 ListIterator 有什么区别?
- 怎么确保一个汇合不能被批改?
- 疾速失败 (fail-fast) 和平安失败 (fail-safe) 的区别是什么?
- 什么是 Java 优先级队列(Priority Queue)?
- JAVA8 的 ConcurrentHashMap 为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。
- 阻塞队列的实现,ArrayBlockingQueue 的底层实现?
- Java 中的 LinkedList 是单向链表还是双向链表?
- 说一说 ArrayList 的扩容机制吧
- HashMap 的长度为什么是 2 的幂次方,以及其余常量定义的含意~
- ConcurrenHashMap 原理?1.8 中为什么要用红黑树?
- ArrayList 的默认大小
- 为何 Collection 不从 Cloneable 和 Serializable 接口继承?
- Enumeration 和 Iterator 接口的区别?
- 咱们如何对一组对象进行排序?
- 当一个汇合被作为参数传递给一个函数时,如何才能够确保函数不能批改它?
- 说一下 HashSet 的实现原理?
- Array 和 ArrayList 有何区别?
- 在 Queue 中 poll()和 remove()有什么区别?
- ArrayList 如何删除反复的元素或者指定的元素;
- 讲讲红黑树的特点?
- Java 汇合类框架的最佳实际有哪些?
- Enumeration 接口和 Iterator 接口的区别有哪些?
- HashSet 和 TreeSet 有什么区别?
- Set 里的元素是不能反复的,那么用什么办法来辨别反复与否呢? 是用 == 还是 equals()?
- 说出 ArrayList,LinkedList 的存储性能和个性
- Java 中 HashMap 的 key 值要是为类对象则该类须要满足什么条件?
- ArrayList 汇合退出 1 万条数据,应该怎么提高效率
- 如何对 Object 的 list 排序
- ArrayList 和 HashMap 的默认大小是少数?
- 有没有有程序的 Map 实现类,如果有,他们是怎么保障有序的
- HashMap 是怎么解决哈希抵触的
Java 并发 && 多线程
- synchronized 的实现原理以及锁优化?
- ThreadLocal 原理,应用留神点,利用场景有哪些?
- synchronized 和 ReentrantLock 的区别?
- 说说 CountDownLatch 与 CyclicBarrier 区别
- Fork/Join 框架的了解
- 为什么咱们调用 start()办法时会执行 run()办法,为什么咱们不能间接调用 run()办法?
- Java 中的 volatile 要害是什么作用?怎么应用它?在 Java 中它跟 synchronized 办法有什么不同?volatile 的实现原理
- CAS?CAS 有什么缺点,如何解决?
- 如何检测死锁?怎么预防死锁?死锁四个必要条件
- 如果线程过多, 会怎么?
- 说说 Semaphore 原理?
- AQS 组件,实现原理
- 假如有 T1、T2、T3 三个线程,你怎么保障 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
- LockSupport 作用是?
- Condition 接口及其实现原理
- 说说并发与并行的区别?
- 为什么要用线程池?Java 的线程池外部机制,参数作用,几种工作阻塞队列,线程池类型以及应用场景
- 如何保障多线程下 i++ 后果正确?
- 10 个线程和 2 个线程的同步代码,哪个更容易写?
- 什么是多线程环境下的伪共享(false sharing)?
- 线程池如何调优,最大数目如何确认?
- Java 内存模型?
- 怎么实现所有线程在期待某个事件的产生才会去执行?
- 说一下 Runnable 和 Callable 有什么区别?
- 用 Java 编程一个会导致死锁的程序,你将怎么解决?
- 线程的生命周期,线程的几种状态。
- ReentrantLock 实现原理
- java 并发包 concurrent 及罕用的类
- wait(),notify()和 suspend(),resume()之间的区别
- FutureTask 是什么?
- 一个线程如果呈现了运行时异样会怎么样
- 生产者消费者模型的作用是什么
- ReadWriteLock 是什么
- Java 中用到的线程调度算法是什么?
- 线程池中的阻塞队列如果满了怎么办?
- 线程池中 submit()和 execute()办法有什么区别?
- 介绍一下 AtomicInteger 类的原理?
- 多线程锁的降级原理是什么?
- 指令重排序,内存栅栏等?
- Java 内存模型 happens-before 准则
- 偏心锁 / 非偏心锁
- 可重入锁
- 独享锁、共享锁
- 偏差锁 / 轻量级锁 / 重量级锁
- 如何保障内存可见性
- 非核心线程提早死亡,如何实现?
- ConcurrentHashMap 读操作为什么不须要加锁?
- ThreadLocal 如何解决 Hash 抵触?
- ThreadLocal 的内存泄露是怎么回事?
- 为什么 ThreadLocalMap 的 key 是弱援用,设计理念是?
- 同步办法和同步代码块的区别是什么?
- 在 Java 中 Lock 接口比 synchronized 块的劣势是什么?如果你须要实现一个高效的缓存,它容许多个用户读,但只容许一个用户写,以此来放弃它的完整性,你会怎么去实现它?
- 用 Java 实现阻塞队列。
- 用 Java 写代码来解决生产者——消费者问题。
- 什么是竞争条件?你怎么发现和解决竞争?
- 为什么咱们调用 start()办法时会执行 run()办法,为什么咱们不能间接调用 run()办法?
- Java 中你怎么唤醒一个阻塞的线程?
- 什么是不可变对象,它对写并发利用有什么帮忙?
- 你在多线程环境中遇到的独特的问题是什么?你是怎么解决它的?
- Java 中能创立 volatile 数组吗
- volatile 能使得一个非原子操作变成原子操作吗
- 你是如何调用 wait()办法的?应用 if 块还是循环?为什么?
- 咱们能创立一个蕴含可变对象的不可变对象吗?
- 在多线程环境下,SimpleDateFormat 是线程平安的吗
- 为什么 Java 中 wait 办法须要在 synchronized 的办法中调用?
- BlockingQueue,CountDownLatch 及 Semeaphore 的应用场景
- Java 中 interrupted 和 isInterruptedd 办法的区别?
- 怎么检测一个线程是否持有对象监视器
- 什么状况会导致线程阻塞
- 如何在两个线程间共享数据
- Thread.sleep(1000)的作用是什么?
- 应用多线程可能带来什么问题
- 说说线程的生命周期和状态?
- 什么是上下文切换
- Java Monitor 的工作机理
- 按线程池外部机制,当提交新工作时,有哪些异样要思考。
- 线程池都有哪几种工作队列?
- 说说几种常见的线程池及应用场景?
- 应用无界队列的线程池会导致内存飙升吗?
- 为什么阿里公布的 Java 开发手册中强制线程池不容许应用 Executors 去创立?
- Future 有缺点嘛?
JVM 篇
- 什么状况下会产生栈内存溢出。什么时候产生堆溢出?你是怎么排错的?
- JVM 怎么判断对象是可回收对象?有哪些办法。
- JVM 的内存构造,新生代与老年代的比例,Eden 和 Survivor 比例。
- 你晓得哪几种垃圾收集器,各自的优缺点,重点讲下 cms 和 G1,包含原理,流程,优缺点。
- 简略说说你理解的类加载器,能够突破双亲委派么,怎么突破。
- JVM 内存为什么要分成新生代,老年代,长久代。新生代中为什么要分为 Eden 和 Survivor。
- JVM 呈现 fullGC 很频繁,怎么去线上排查问题?
- JVM 中一次残缺的 GC 流程是怎么的,对象如何降职到老年代,说说你晓得的几种次要的 JVM 参数。
- 垃圾回收算法的实现原理。
- JVM 内存模型的相干常识理解多少,比方重排序,内存屏障,happen-before,主内存,工作内存等。
- 说一下 Java 对象的创立过程
- 你们线上利用的 JVM 参数配置了哪些。
- G1 和 cms 区别。
- 怎么打出线程栈信息。
- 说一下类加载的执行过程
- JVM 垃圾回收机制,何时触发 MinorGC 等操作呢?
- ZGC 垃圾收集器,理解过吗
- 对象的拜访定位有哪两种形式?
- 说一下 jvm 调优的工具?
- 对象什么时候会进入老年代?
- 内存透露和内存溢出区别?
- 什么是 tomcat 类加载机制?
- 理解逃逸剖析技术吗
- 调用 System.gc()会产生什么?
- 谈谈 Minor GC 条件,full GC 条件
- Stop The World 理解过吗?
- 谈谈你意识多少种 OOM?如何防止 OOM?
- 理解过 JVM 调优没,基本思路是什么? 如何确定它们的大小呢?
- 淘宝热门商品信息在 JVM 哪个内存区域
- 字节码的编译过程
- Java 须要开发人员回收内存垃圾吗?
- Java 中垃圾回收有什么目标?什么时候进行垃圾回收?
- System.gc()和 Runtime.gc()会做什么事件?
- 主内存与工作内存
- 内存间交互操作
- volatile 禁止内存重排序
- 内存模型三大个性
- 谈谈后行产生准则
- JVM 堆内存溢出后,其余线程是否可持续工作?
- 说一下 JVM 罕用参数有哪些?
- VM 为什么应用元空间替换了永恒代?
- Java 堆的构造是什么样子的?什么是堆中的永恒代(Perm Gen space)?
- JVM 的永恒代中会产生垃圾回收么?
- 什么是字节码?采纳字节码的最大益处是什么?什么 Java 是虚拟机?
- MinorGC 的过程
- CPU 占用过高如何剖析
- Serial 与 Parallel GC 之间的不同之处?
- WeakHashMap 是怎么工作的?
- 解释 Java 堆空间及 GC?
- 你能保障 GC 执行吗?
- JVM 中哪个参数是用来控制线程的栈堆栈小的?
数据库
- MySQL 索引应用有哪些事项呢?
- 说说分库与分表的设计
- 日常工作中你是怎么优化 SQL 的?
- MySQL 遇到过死锁问题吗,你是如何解决的?
- InnoDB 与 MyISAM 的区别
- 数据库索引的原理,为什么要用 B+ 树,为什么不必二叉树?
- 汇集索引与非汇集索引的区别
- limit 100000 加载很慢的话,你是怎么解决的呢?
- 如何抉择适合的分布式主键计划呢?
- 事务的隔离级别有哪些?MySQL 的默认隔离级别是什么?
- 什么是幻读,脏读,不可反复读呢?
- 在高并发状况下,如何做到平安的批改同一行数据?
- 数据库的乐观锁和乐观锁。
- SQL 优化的个别步骤是什么,怎么看执行打算(explain),如何了解其中各个字段的含意。
- select for update 有什么含意,会锁表还是锁行还是其余。
- MySQL 事务得四大个性以及实现原理
- 如果某个表有近千万数据,CRUD 比较慢,如何优化。
- 如何写 sql 可能无效的应用到复合索引。
- mysql 中 in 和 exists 的区别。
- 数据库自增主键可能遇到什么问题。
- MVCC 相熟吗,它的底层原理?
- 数据库中间件理解过吗,sharding jdbc,mycat?
- MYSQL 的主从提早,你怎么解决?
- 说一下大表的优化计划
- 什么是数据库连接池? 为什么须要数据库连接池呢?
- 一条 SQL 语句在 MySQL 中如何执行的?
- InnoDB 引擎中的索引策略,理解过吗?
- 数据库存储日期格局时,如何思考时区转换问题?
- 一条 sql 执行过长的工夫,你如何优化,从哪些方面动手?
- MYSQL 数据库服务器性能剖析的办法命令有哪些?
- Blob 和 text 有什么区别?
- mysql 里记录货币用什么字段类型比拟好?
- Mysql 中有哪几种锁,列举一下?
- Hash 索引和 B + 树区别是什么?你在设计索引是怎么抉择的?
- mysql 的内连贯、左连贯、右连贯有什么区别?
- MySQL 的基础架构
- 什么是内连贯、外连贯、穿插连贯、笛卡尔积呢?
- 说一下数据库的三大范式
- mysql 无关权限的表有哪几个呢?
- Mysql 的 binlog 有几种录入格局?别离有什么区别?
- InnoDB 引擎的 4 大个性,理解过吗
- 索引有哪些优缺点?
- 索引有哪几种类型?
- 创立索引优有什么准则呢?
- 创立索引的三种形式
- 百万级别或以上的数据,你是如何删除的?
- 什么是最左前缀准则?什么是最左匹配准则?
- B 树和 B + 树的区别,数据库为什么应用 B + 树而不是 B 树?
- 笼罩索引、回表等这些,理解过吗?
- B+ 树在满足聚簇索引和笼罩索引的时候不须要回表查问数据?
- 什么是聚簇索引?何时应用聚簇索引与非聚簇索引
- 非聚簇索引肯定会回表查问吗?
- 联结索引是什么?为什么须要留神联结索引中的程序?
- 什么是数据库事务?
- 隔离级别与锁的关系
- 依照锁的粒度分,数据库锁有哪些呢?锁机制与 InnoDB 锁算法
- 从锁的类别角度讲,MySQL 都有哪些锁呢?
- MySQL 中 InnoDB 引擎的行锁是怎么实现的?
- 什么是死锁?怎么解决?
- 为什么要应用视图?什么是视图?
- 视图有哪些特点?哪些应用场景?
- 视图的长处,毛病,讲一下?
- count(1)、count(*) 与 count(列名) 的区别?
- 什么是游标?
- 什么是存储过程?有哪些优缺点?
- 什么是触发器?触发器的应用场景有哪些?
- MySQL 中都有哪些触发器?
- 超键、候选键、主键、外键别离是什么?
- SQL 束缚有哪几种呢?
- 谈谈六种关联查问,应用场景。
- varchar(50)中 50 的涵义
- mysql 中 int(20)和 char(20)以及 varchar(20)的区别
- drop、delete 与 truncate 的区别
- UNION 与 UNION ALL 的区别?
- SQL 的生命周期?
- 超大分页怎么解决?
- 慢查问日志
- 关怀过业务零碎外面的 sql 耗时吗?统计过慢查问吗?对慢查问都怎么优化过?
- 主键应用自增 ID 还是 UUID,为什么?
- mysql 自增主键用完了怎么办?
- 字段为什么要求定义为 not null?
- 如果要存储用户的明码散列,应该应用什么字段进行存储?
- 优化查问过程中的数据拜访
- 如何优化长难的查问语句?有实战过吗?
- 优化特定类型的查问语句
- MySQL 数据库 cpu 飙升的话,要怎么解决呢?
- 读写拆散有哪些解决方案?
- MySQL 的复制原理以及流程
- 备份打算,mysqldump 以及 xtranbackup 的实现原理?
- Innodb 的事务实现原理?
- 谈谈 MySQL 的 Explain
- Innodb 的事务与日志的实现形式
- MySQL binlog 的几种日志录入格局以及区别
- 500 台 db,在最快工夫之内重启。
- 你是如何监控你们的数据库的?你们的慢日志都是怎么查问的?
- 你是否做过主从一致性校验,如果有,怎么做的,如果没有,你打算怎么做?
- 你们数据库是否反对 emoji 表情存储,如果不反对,如何操作?
- MySQL 中 InnoDB 引擎的行锁是通过加在什么上实现 (或称实现) 的?为什么是这样子的?
- 一个 6 亿的表 a,一个 3 亿的表 b,通过外间 tid 关联,你如何最快的查问出满足条件的第 50000 到第 50200 中的这 200 条数据记录。
- 数据库垂直和程度拆分
缓存 /Redis
- Redis 用过哪些数据类型,每种数据类型的应用场景
- Redis 缓存穿透、缓存雪崩和缓存击穿起因,以及解决方案
- 如何应用 Redis 来实现分布式锁,redis 分布式锁有什么缺点?
- Redis 长久化机制,有几种形式,优缺点是什么,怎么实现的,RDB 和 AOF 的区别
- Redis 集群,高可用,原理。
- Redis 的数据淘汰策略
- 为什么要用 redis?为什么要用缓存,在哪些场景应用缓存
- redis 事务,理解吗,理解 Redis 事务的 CAS 操作吗
- 如何解决 Redis 的并发竞争 Key 问题。
- Redis 为什么是单线程的,为什么单线程还这么快?
- 如何保障缓存与数据库双写时的数据一致性?
- redis 和 memcached 有什么区别
- JVM 本地缓存,理解过吗
- redis 的 list 构造相干的操作。
- redis2 和 redis3 的区别,redis3 外部通信机制。
- Redis 的选举算法和流程是怎么的?
- Reids 的主从复制机制原理。
- Redis 的线程模型是什么?
- Redis 的应用要留神什么,讲讲长久化形式,内存设置,集群的利用和优劣势,淘汰策略等。
- Redis 缓存分片
- redis 的集群怎么同步的数据的?
- 请思考一个计划,设计一个能够管制缓存总体大小的主动适应的本地缓存。
- redis 的哨兵模式,一个 key 值如何在 redis 集群中找到存储在哪里。
- Redis,一个字符串类型的值能存储最大容量是多少?
- MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保障 redis 中的数据都是热点数据?
- Redis 和 Redisson 有什么关系?
- Redis 中的管道有什么用?
- Redis 事务相干的命令有哪几个?
- Redis key 的过期工夫和永恒无效别离怎么设置?
- Redis 回收应用的是什么算法?
- 一个 Redis 实例最多能寄存多少的 keys?List、Set、Sorted Set 他们最多能寄存多少元素?
- Redis—跳跃表,复杂度是多少?
- Redis 有哪些优缺点?为什么要用 Redis?
- 为什么要用 Redis 而不必 map/guava 做缓存?
- 如何用 Redis 统计独立用户访问量?
- 如何抉择适合的长久化形式
- Redis 长久化数据和缓存怎么做扩容?
- Redis key 的过期工夫和永恒无效别离怎么设置?
- 咱们晓得通过 expire 来设置 key 的过期工夫,那么对过期的数据怎么解决呢?
- Redis 的过期键的删除策略
- Redis 的内存用完了会产生什么?
- Redis 如何做内存优化?
- Redis 事务的三个阶段
- Redis 事务相干命令
- Redis 事务保障原子性吗,反对回滚吗?
- Redis 事务反对隔离性吗?
- Redis 集群的主从复制模型是怎么的?
- 生产环境中的 redis 是怎么部署的?
- 说说 Redis 哈希槽的概念
- Redis 集群会有写操作失落吗?为什么?
- Redis 集群最大节点个数是多少?
- Redis 集群如何抉择数据库?
- Redis 是单线程的,如何进步多核 CPU 的利用率?
- 为什么要做 Redis 分区?有什么毛病?
- 你晓得有哪些 Redis 分区实现计划?
- 缓存的实现原理,设计缓存要留神什么
- 如何解决 Redis 的并发竞争 Key 问题
- 分布式 Redis 是后期做还是前期规模上来了再做好?为什么?
- 什么是 RedLock?
- Redis 反对的 Java 客户端都有哪些?官网举荐用哪个?
- 为什么 Redis 的操作是原子性的,怎么保障原子性
- Redis 常见性能问题和解决方案?
- 一个字符串类型的值能存储最大容量是多少?
- Redis 如何做大量数据插入?
- 如果 Redis 外面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀结尾的,如果将它们全副找进去?
- 应用 Redis 做过异步队列吗,是如何实现的?
- Redis 如何实现延时队列?
- Redis 回收过程如何工作的?
- 热点数据和冷数据是什么
- 应用过 Redis 哪些命令?
因为文章篇幅问题,答案就不全副解析,这些面试题我都曾经整顿成文档,有须要答案的能够关注我的公众号【惊涛骇浪如码】收费获取
计算机网络
- 请具体介绍一下 TCP 的三次握手机制,为什么要三次握手?
- 讲一下 HTTP 与 HTTPS 的区别。
- Session 和 cookie 的区别。
- TCP 的四次挥手,为什么要有 TIME_WAIT 状态,为什么须要四次握手
- http1.0 和 http1.1 有什么区别。
- HTTP 的常见状态码有哪些,代表什么含意?比方 200, 302, 404?
- 当你用浏览器关上一个链接到返回后果,产生了什么。
- TCP/IP 如何保障可靠性,说说 TCP 头的构造。
- GET 与 POST 形式的区别
- 如何防止浏览器缓存。
- TCP/IP 模型?
- 讲一讲 TCP 和 UDP 各有什么特点,两者有什么区别
- 具体讲一下 TCP 的滑动窗口
- 说一下拥塞管制
- 如何了解 HTTP 协定的无状态性。
- HTTP 有哪些 method?
- HTTP 长连贯和短连贯
- HTTPS 原理,加签,验签,什么是数字签名?什么是数字证书?对称加密和非对称加密等。
- 谈下你对 IP 地址分类的了解?
- ARP 及 RARP 协定的工作原理?
- 怎么解决拆包和粘包?
- DNS 的解析过程?
- 什么是 DoS、DDoS、DRDoS 攻打?如何进攻?
- WebSocket 与 socket 的区别
- 讲一讲 SYN 超时,洪泛攻打,以及解决策略
- ICMP 协定的性能
- 什么是 session,有哪些实现 session 的机制?
- Http 申请的过程与原理
- 你晓得网络协议有那些?
- HTTPS 为什么是平安的?说一下他的底层实现原理?
- ping 的原理
- 如果服务器呈现了大量 CLOSE_WAIT 状态如何解决。
- TCP 黏包是怎么产生的?
- OSI 七层体系结构路
- 由器与交换机的区别
- 什么是 XSS 攻打,如何防止
- 什么是 CSRF 攻打,如何防止
- Https 双向和单向验证的区别
- 如果客户端禁止 Cookie 能实现 Session
- HTTP 申请中 session 实现原理
音讯队列
- 音讯队列有哪些应用场景。
- 消息中间件如何解决音讯失落问题?
- 谈谈音讯的重发,补充策略。
- 如何保障音讯的程序性。
- 怎么利用 mq 实现最终一致性?
- kafka 和其余音讯队列的区别,kafka 主从同步怎么实现?
- MQ 的连贯是线程平安的吗,你们公司的 MQ 服务架构怎么的。
- kafka 吞吐量高的起因。
- rabbitmq 如何实现集群高可用?
- 应用 kafka 有没有遇到什么问题,怎么解决的?
- MQ 有可能产生反复生产,如何防止,如何做到幂等?
- MQ 的音讯提早了怎么解决,音讯能够设置过期工夫么,过期了你们个别怎么解决?
- rabbitmq 有几种播送类型?
- 应用 kafka 集群须要留神什么?
- 为什么应用音讯队列?有什么用?
- 音讯队列有什么长处和毛病?
- Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适宜哪些场景?
- MQ 是否保障音讯必达,即音讯的可靠性
- 大量音讯在 MQ 里长时间积压,该如何解决?
- MQ 音讯过期生效怎么办?
- kafka 能够脱离 zookeeper 独自应用吗?为什么?
- kafka 的分区策略有哪些?
- kafka 有几种数据保留策略?
- RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
- Kafka 音讯是采纳 Pull 模式,还是 Push 模式?
- RabbitMQ 有哪些重要组件
- 如何确保音讯接管方生产了音讯?
- 音讯基于什么传输?
- 音讯怎么路由?
- 音讯如何散发?
mybatis
- mybatis 中 #{}和 ${}的区别是什么?
- 什么是 SQL 注入,如何防止。
- 说一下 mybatis 的一级缓存和二级缓存
- mybatis 是否反对提早加载?提早加载的原理是什么?
- mybatis 动静 sql 中应用 <where style=”margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box; word-wrap: break-word !important;”> 标签与间接写 where 关键字有什么区别?</where>
- mybatis 动静 sql 标签中循环标签中有哪些属性,各自的作用。
- mybatis 和 hibernate 的区别有哪些?
- RowBounds 是一次性查问全副后果吗?为什么?
- MyBatis 定义的接口,怎么找到实现的?
- Mybatis 的底层实现原理。
- Mybatis 是如何进行分页的?分页插件的原理是什么?
- Mybatis 执行批量插入,能返回数据库主键列表吗?
- Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
- Mybatis 动静 sql 有什么用?执行原理?有哪些动静 sql?
- mybatis 有几种分页形式?
- MyBatis 框架的长处和毛病
- 应用 MyBatis 框架,当实体类中的属性名和表中的字段名不一样,怎么办?
- 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的办法,参数不同时,办法能重载吗?
- Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
- 简述 Mybatis 的插件运行原理,以及如何编写一个插件。
操作系统
- Linux 零碎下你关注过哪些内核参数,说说你晓得的。
- epoll 和 poll 有什么区别。
- 线上 CPU 爆高,请问你如何找到问题所在。
- Linux 下 IO 模型有几种,各自的含意是什么。
- top 命令之后有哪些内容,有什么作用。
- 过程通信有几种形式?
- 说说过程的调度算法
- 常见的几种内存管理机制
- 什么是虚拟内存(Virtual Memory)?
- 内存置换算法
- 虚拟地址、逻辑地址、线性地址、物理地址的区别。
- 操作系统的页式存储
- 过程和线程的区别
- socket 客户端和服务端通信过程
- 影响调度程序的指标是什么?
- 过程间状态有哪些?
- 一个线程在内存中如何存储?
- 僵尸过程是什么,如果产生一个僵尸过程,如何查找僵尸过程
- 一个过程有 20 个线程,在某个线程中调用 fork,新的过程会有 20 个线程吗?
- 什么是 RR 调度算法?
- 什么是 DMA(间接内存拜访)?
Spring 相干
- BeanFactory 和 ApplicationContext 有什么区别?
- Spring IOC 的了解,其初始化过程
- Spring Bean 的生命周期
- Spring MVC 的工作原理?
- Spring 循环注入的原理?
- Spring 中用到了那些设计模式?
- Spring AOP 的了解,各个术语,他们是怎么互相工作的?
- Spring 框架中的单例 bean 是线程平安的吗?
- Spring @ Resource 和 Autowired 有什么区别?
- Spring 的不同事务流传行为有哪些,有什么作用?
- Spring Bean 的加载过程是怎么的?
- 请举例说明 @Qualifier 注解
- Spring 是如何治理事务的,事务管理机制?
- 应用 Spring 框架的益处是什么?
- Spring 由哪些模块组成?
- ApplicationContext 通常的实现是什么?
- 什么是 Spring 的依赖注入?
- 你怎么定义类的作用域?
- Spring 框架中的单例 bean 是线程平安的吗?
- 你能够在 Spring 中注入一个 null 和一个空字符串吗?
- 你能说下 Spring Boot 与 Spring 的区别吗
- SpringBoot 的主动配置是怎么做的?
- @RequestMapping 的作用是什么?
- spring boot 有哪些形式能够实现热部署?
- 说说 Ioc 容器的加载过程
- 为什么 Spring 中的 bean 默认为单例?
- 说说 Spring 中的 @Configuration
- FileSystemResource 和 ClassPathResource 有何区别?
- 什么是 Swagger?你用 Spring Boot 实现了它吗?
- spring 的 controller 是单例还是多例,怎么保障并发的平安。
- 说一下 Spring 的外围模块
- 如何向 Spring Bean 中注入一个 Java.util.Properties
- 如何给 Spring 容器提供配置元数据?
- 如何在 Spring 中如何注入一个 java 汇合,实现过吗?
- 什么是基于 Java 的 Spring 注解配置? 举几个例子?
- 怎么开启注解拆卸?
- Spring 反对哪些事务管理类型
- 在 Spring AOP 中,关注点和横切关注的区别是什么?
- spring 中有多少种 IOC 容器?
- 形容一下 DispatcherServlet 的工作流程
- 介绍一下 WebApplicationContext 吧
- Spring Boot 的配置文件有哪几种格局?它们有什么区别?
- Spring Boot 须要独立的容器运行吗?
- Spring Boot 主动配置原理是什么?
- RequestMapping 和 GetMapping 的不同之处在哪里?
- 如何应用 Spring Boot 实现异样解决?
- Spring Boot 中如何解决跨域问题 ?
- Spring Boot 如何实现热部署 ?
- Spring Boot 打成的 jar 和一般的 jar 有什么区别呢?
- bootstrap.properties 和 application.properties 有何区别 ?
- springboot 启动机制
因为文章篇幅问题,答案就不全副解析,这些面试题我都曾经整顿成文档,有须要答案的能够关注我的公众号【惊涛骇浪如码】收费获取
Netty/tomcat
- BIO、NIO 和 AIO 区别
- 说一下 Netty 的各大组件
- Netty 线程模型和 Reactor 模式
- 什么是 Netty 的零拷贝?
- NIO 的底层实现。
- netty 的心跳解决在弱网下怎么办
- Netty 高性能体现在哪些方面?
- Netty 和 Tomcat 有什么区别?
- Netty 发送音讯有几种形式?
- 默认状况 Netty 起多少线程?何时启动?
- Netty 反对哪些心跳类型设置?
- Java 中怎么创立 ByteBuffer
- Java 中的内存映射缓存区是什么?
- 简略讲讲 tomcat 构造,以及其类加载器流程,线程模型等
- tomcat 如何调优,波及哪些参数
- IO 多路复用机制
- Netty 的利用场景有哪些?
- 有几种 I /O 网络模型?
- 说说 Netty 的执行流程?
- select、poll、epoll 的机制及其区别?
罕用 Linux 命令
- 批改目录,文件权限的命令
- 如何获取一个本地服务器上可用的端口。
- 说说常见的 linux 命令,linux 查看内存的命令是什么?
- 查看零碎磁盘空间残余状况的命令
- 如何获取 java 过程的 pid
- 如何获取某个过程的网络端口号;
- 如何实时打印日志
- 如何统计某个字符串行数;
- 用一行命令查看文件的最初五行。
- 用一行命令输入正在运行的 java 过程。
- 绝对路径,当前目录、下层目录,切换目录别离用什么命令?
- 怎么清屏?怎么退出以后命令?
- 目录创立,创立文件,复制文件别离用什么命令?
- 查看文件内容有哪些命令能够应用?tail?cat?less?more?
- 怎么使一个命令在后盾运行?
- 终止过程用什么命令? 带什么参数? kill-9 pid 有什么危险?
- 搜寻文件用什么命令? 格局是怎么样的?
- 应用什么命令查看网络是否连通?
- 应用什么命令查看 ip 地址及接口信息?
- awk 详解
ZooKeeper
- Zookeeper 的用处,选举的原理是什么。
- Zookeeper watch 机制原理。
- zookeeper 怎么保障主从节点的状态同步?
- 集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还能够应用吗?
- zookeeper 都有哪些性能?
- 什么是 paxos 算法,什么是 zab 协定。
- zookeeper 是如何保障事务的程序一致性的?
- zookeeper 负载平衡和 nginx 负载平衡区别
- Zookeeper 的典型利用场景
- 说说四种类型的数据节点 Znode
- Zookeeper 的服务器角色(Leader,Follower,Observer)
- Zookeeper 有哪几种几种部署模式?
Elasticsearch
- 详细描述一下 Elasticsearch 索引文档的过程。
- 详细描述一下 Elasticsearch 搜寻的过程。
- Elasticsearch 的倒排索引是什么。
- Elasticsearch 是如何实现 master 选举的。
- lucence 内部结构是什么。
- Lucene 全文搜寻的原理
- 在并发状况下,Elasticsearch 如何保障读写统一呢?
- 具体论述一下 Elasticsearch 搜寻的过程。
- Elasticsearch 索引数据多了怎么办呢,如何调优,部署
- Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
dubbo 框架
- Dubbo 的服务申请失败怎么解决
- dubbo 的负载平衡有几种算法?(随机,轮询,起码沉闷申请数,一致性 hash)
- Dubbo 和 Spring Cloud 有什么区别?
- dubbo 都反对什么协定,举荐用哪种?
- 画一画服务注册与发现的流程图
- Dubbo 默认应用什么注册核心,还有别的抉择吗?
- 在 Provider 上能够配置的 Consumer 端的属性有哪些?
- Dubbo 启动时如果依赖的服务不可用会怎么?
- Dubbo 举荐应用什么序列化框架,你晓得的还有哪些?
- Dubbo 默认应用的是什么通信框架,还有别的抉择吗?
- 服务上线怎么兼容旧版本?
- Dubbo 服务之间的调用是阻塞的吗?
- Dubbo telnet 命令能做什么?
- Dubbo 如何一条链接并发多个调用。
- Dubbo 的应用场景有哪些?
- Dubbo 外围性能有哪些?
- Dubbo 外围组件有哪些?
- Dubbo 服务器注册于发现的流程?
- Dubbo 反对哪些协定,它们的优缺点有哪些?
- Dubbo 的注册核心集群挂掉,发布者和订阅者之间还能通信么?
- Dubbo 源码应用了哪些设计模式
- Dubbo 集群提供了哪些负载平衡策略?
- Dubbo 的集群容错计划有哪些?
- Dubbo 反对哪些序列化形式?
- Dubbo 超时重试,Dubbo 超时工夫设置
spring cloud
- Eureka 和 Zookeeper 区别
- 什么是服务熔断?什么是服务降级?
- 什么是 Ribbon?
- 什么是 Netflix Feign?它的长处是什么?
- Ribbon 和 Feign 的区别?
- 什么是 Spring Cloud Bus?
- Spring Cloud Gateway?
- 什么是 SpringCloudConfig?
- 什么是 Hystrix?它如何实现容错?
- 什么是微服务?微服务优缺点
- Sentinel,微服务哨兵,理解过吗
nginx
- Nginx 的模块与工作原理是什么?
- Nginx 是什么?有什么作用?
- 说说 Nginx 的一些个性。
- 请说一下 Nginx 如何解决 HTTP 申请。
- 你晓得,Nginx 服务器上的 Master 和 Worker 过程别离是什么吗?
- nginx 常用命令,启动,重启,查看配置文件等
- Nginx 和 Apache 比拟,各有什么优缺点?
- Nginx 多过程模型是如何实现高并发的?
- 说说 Nginx 的反向代理和负载平衡
- 请列举 Nginx 服务器的最佳用处。
算法
- 谈一谈一致性哈希算法。
- 快排怎么实现
- 手写二分查找
- 如何判断一个单链表是否有环
- 均衡二叉树的工夫复杂度;
- 反转单链表
- 合并多个单有序链表
- LRU 淘汰算法,用 java 本人实现一个 LRU。
- 跳表和均衡树区别
- 你理解大 O 符号 (big-O notation) 么?你能给出不同数据结构的例子么?
- 如何手撸一个队列?
- 10 亿个数字里外面找最小的 10 个。
- 均衡二叉树的工夫复杂度;
- 有 1 亿个数字,其中有 2 个是反复的,疾速找到它,工夫和空间要最优。
- 八大根本排序的工夫,空间复杂度
- 堆排序的原理
- 树的几种遍历形式
- 递归算法
- 一个乱序数组,求第 K 大的数。排序形式应用字典序。
- 一棵二叉树,求最大通路长度。
- 万亿级别的两个 URL 文件 A 和 B,如何求出 A 和 B 的差集 C,(Bit 映射 ->hash 分组 -> 多文件读写效率 -> 磁盘寻址以及应用层面对寻址的优化)
- 最快的排序算法是哪个?给阿里 2 万多名员工按年龄排序应该抉择哪个算法?堆和树的区别;写出快排代码;链表逆序代码
- LeetCode 的经典算法题目,都要刷一遍以上哈~
分布式
- 说说分布式事务?分布式事务的解决方案
- 什么是分布式系统?
- 讲讲 CAP 理念。
- 怎么了解强一致性、枯燥一致性和最终一致性?
- 如何实现分布式锁?
- 如何实现分布式 Session?
- 负载平衡的了解?
- 分布式集群下如何做到惟一序列号?
- 分布式事务
- 什么是一致性 hash。
零碎设计 / 方案设计
- 谈谈如何设计秒杀零碎。
- 一千万的用户实时排名如何实现;
- 五万人并发抢票怎么实现
- 手机扫二维码登录是怎么实现的?
- Google 是如何在一秒内把搜寻后果返回给用户的。
- 12306 网站的订票零碎如何实现,如何保障不会票不被超卖。
- 如果有几十亿的白名单,每天白天须要高并发查问,早晨须要更新一次,如何设计这个性能。
- 接口的幂等性如何设计
- 如何设计存储海量数据的存储系统
- 分布式 session 如何治理,你有哪些计划
- 讲一下如何给高并发零碎做限流?
- 应用 SpringBoot 如何开发邮件发送零碎?
- 你如何设计一个能抗住大流量的零碎,说说设计方案
- 如何设计一个高并发的零碎?
- 数据量大的状况下分页查问很慢,有什么优化计划?
- 设计一个秒杀零碎,30 分钟没付款就主动敞开交易。
- 如何应用 redis 和 zookeeper 实现分布式锁?有什么区别优缺点,会有什么问题,别离实用什么
- 如何设计一个平安的 API 接口。
- 线上零碎忽然变得异样迟缓,你如何查找问题。
- 设计一个社交网站中的“私信”性能,要求高并发、可扩大等等。画一下架构图。
- 后盾零碎怎么避免申请反复提交
- 讲讲你了解的服务治理。
- 执行某操作,前 50 次胜利,第 51 次失败 a 全副回滚 b 前 50 次提交第 51 次抛异样,ab 场景别离如何设置
- 一个大的含有 50M 个 URL 的记录,一个小的含有 500 个 URL 的记录,找出两个记录里雷同的 URL
- 海量日志数据,提取出某日拜访百度次数最多的那个 IP
- 1000 个线程同时运行,怎么避免不卡
- 设计一个分布式自增 id 生成服务
总结
对于程序员来说,学历要求曾经相当宽松了,所以对于程序员来说,起跑线都是一样的,没有什么拿不下的 offer,只有不够硬气的能力。
不论怎么样,早做筹备对本人的面试必定是有帮忙的,因为文章篇幅问题,答案就不全副解析,这些面试题我都曾经整顿成文档,有须要答案的能够关注我的公众号【惊涛骇浪如码】收费获取,或者能够在明年金三银四里助你一臂之力。心愿大家都能找到本人现实的 offer。