前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字节跳动内部Java技术岗‘面试真题’泄露,冒死发布!

字节跳动内部Java技术岗‘面试真题’泄露,冒死发布!

原创
作者头像
Java程序猿
修改2021-07-28 14:48:36
1.1K0
修改2021-07-28 14:48:36
举报
文章被收录于专栏:Java核心技术Java核心技术

前言

时间过的好快呀,转眼马上到了金九银十,又是一年跳槽面试季,最近有很多网友都在求大厂面试题,希望可以提前准好面试,如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。所以小编在这里给大家准备了一套Java技术岗面试真题,综合了今年上半年粉丝去阿里、字节、蚂蚁等互联网大厂的面试总结+小编整理的一起分享给大家,关注公众号:麒麟改bug获取,希望可以帮助大家,祝大家求职顺利。

一、Java基础专题面试

二、Java并发专题面试

三、Java框架专题面试

四、Java性能调优专题面试

五、分布式专题面试

六、数据库专题面试

七、微服务专题面试

八、中间件专题面试

一、Java基础专题面试

Java 基础,是进行 Java 开发的前提,同样也是最容易被忽视的基础点。在开发中总会有一些知识点,很基础的、很重要,就是在使用时,突然想不起来。针对,在开发过程中遇到这些痛点,我进行了 Java 基础知识的梳理。

I.Java基础

1、何为编程

编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。

2、面向对象和面向过程的区别

面向过程

优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。

缺点: 没有面向对象易维护、易复用、易扩展

面向对象

优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护

缺点: 性能比面向过程低

3、什么是Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

4、Java 语言有哪些特点

  • 1.简单易学;
  • 2.面向对象(封装,继承,多态);
  • 3.平台无关性( Java 虚拟机实现平台无关性);
  • 4.可靠性;
  • 5.安全性;
  • 6.支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);

5、jdk1.5之后的三大版本

6、关于 JVM JDK 和 JRE 最详细通俗的解答

7、创建一个对象用什么关键字?对象实例与对象引用有何不同?

8、抽象类能使用 final 修饰吗?

9、import java 和 javax 有什么区别

10、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

11、什么是反射机制?

12、static存在的主要意义

13、线程有哪些基本状态?

14、内部类相关,看程序说出运行结果

15、float f=3.4;是否正确

16、 Integer a= 127 与 Integer b = 127相等吗

17、抽象类和接口的对比

18、反射机制的应用场景有哪些?

19、Java应用程序与小程序之间有那些差别?

20、Java有哪些数据类型

21、 String有哪些特性

22、对象的相等与指向他们的引用相等,两者有什么不同?

23、字符型常量和字符串常量的区别

24、static的独特之处

25、在 Java 中定义一个不做事且没有参数的构造方法的作用

26、super关键字的用法

27、Java 面向对象编程三大特性: 封装 继承 多态

28、String 类的常用方法都有那些?

29、String str="i"与 String str=new String(“i”)一样吗?

30、什么是方法的返回值?返回值在类的方法里的作用是什么?

31、一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?

32、 String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

33、是否可以继承 String 类

34、Java 中的异常处理

35、创建一个对象用什么运算符?对象实体与对象引用有何不同?

36、重载和重写的区别

37、内部类有哪些应用场景

38、Java 应用程序与小程序之间有那些差别

39、什么是内部类?

40、 this关键字的用法

II.Java集合

Java 集合,面试必备,也是 Java 的核心 API,本文将从结构,实现及特性深入讲解各集合的特点。

1、Array 和 ArrayList 有何区别?

Array 可以存储基本数据类型和对象,ArrayList 只能存储对象。

Array 是指定固定大小的,而 ArrayList 大小是自动扩展的。

Array 内置方法没有 ArrayList 多,比如 addAll、removeAll、iteration 等方法只有 ArrayList有。

2、常用的集合类有哪些?

  • Collection接口的子接口包括:Set接口和List接口
  • Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等
  • Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等
  • List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等

3、Collection 和 Collections 有什么区别?

  • java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
  • Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

4、什么是链表

  • 链表是可以将物理地址上不连续的数据连接起来,通过指针来对物理地址进行操作,实现增删改查等功能。
  • 链表大致分为单链表和双向链表

链表的优点

  • 插入删除速度快(因为有next指针指向其下一个节点,通过改变指针的指向可以方便的增加删除元素)
  • 内存利用率高,不会浪费内存(可以使用内存中细小的不连续空间(大于node节点的大小),并且在需要空间的时候才创建空间)
  • 大小没有固定,拓展很灵活。

链表的缺点

  • 不能随机查找,必须从第一个开始遍历,查找效率低

5、为什么HashMap中String、Integer这样的包装类适合作为K?

6、ConcurrentHashMap 和 Hashtable 的区别?

7、如何边遍历边移除Collection中的元素?

8、HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现

9、集合和数组的区别

10、HashMap 与 HashTable 有什么区别?

11、集合的特点

12、 什么是Hash算法

13、使用集合框架的好处

14、comparable 和 comparator的区别?

15、多线程场景下如何使用 ArrayList?

16、HashMap的put方法的具体流程?

17、HashSet如何检查重复?HashSet是如何保证数据不可重复的?

18、为什么 ArrayList 的 elementData 加上 transient 修饰?

19、TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 sort()方法如何比较元素?

20、说一下 HashSet 的实现原理?

21、ConcurrentHashMap 底层具体实现知道吗?实现原理是什么?

22、Collection 和 Collections 有什么区别?

23、TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 sort()方法如何比较元素?

24、HashSet与HashMap的区别

25、lterator和Listlterator有什么区别?

26、哪些集合类是线程安全的?

27、Java集合的快速失败机制“fail-fast"?

28、能否使用任何类作为 Map 的 key?

29、HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?

30、集合框架底层数据结构

31、如何实现 Array 和 List 之间的转换?

32、什么是集合

33、什么是TreeMap 简介

34、ArrayList和LinkedList的区别是什么?

35、 HashMap的扩容操作是怎么实现的?

36、如何实现数组和List之间的转换?

37、 List 和 Set 的区别

38、 什么是红黑树

39、HashMap是怎么解决哈希冲突的?

40、遍历一个List有哪些不同的方式?每种方法的实现原理是什么? Java中List遍历的最佳实践是什么?

50、不要忽略异常

1、Java异常关键字

  • try – 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
  • catch – 用于捕获异常。catch用来捕获try语句块中发生的异常。
  • fifinally – fifinally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有fifinally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果fifinally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。
  • throw – 用于抛出异常。
  • throws – 用在方法签名中,用于声明该方法可能抛出的异常。

2、怎么确保一个集合不能被修改?

3、常见异常处理方式

直接抛出异常

  • 通常,应该捕获那些知道如何处理的异常,将不知道如何处理的异常继续传递下去。传递异常可以在方法签名处使用 throws 关键字声明可能会抛出的异常。
代码语言:txt
复制
private static void readFile(String filePath) throws IOException {
	File file = new File(filePath);
	String result;
	BufferedReader reader = new BufferedReader(new FileReader(file));
	while((result = reader.readLine())!=null) {
		System.out.println(result);
	}
	reader.close();
}

4、lterator 怎么使用?有什么特点?

5、HashMap是怎么解决哈希冲突的?

6、List 和 Set 的区别

7、ArrayList和LinkedList的区别是什么?

8、声明异常

9、说一下HashMap的实现原理?

10、异常会影响性能

11、Java异常架构

12、HashMap的扩容操作是怎么实现的?

13、如何实现数组和List之间的转换?

14、类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA。

15、对异常进行文档说明

16、Java常见异常有哪些

17、List,Set,Map三者的区别?

18、HashMap 的长度为什么是2的幂次方

19、Java异常简介

20、ArrayList 和Vector的区别是什么?

21、优先明确的异常

22、什么是集合

23、throw 和 throws 的区别是什么?

24、如何选择异常类型

25、不要使用异常控制程序的流程

26、NoClassDefFoundError 和 ClassNotFoundException 区别?

27、不要捕获 Throwable 类

28、运行时异常和一般异常(受检异常)区别是什么?

29、优先捕获最具体的异常

30、捕获异常

31、遍历一个List有哪些不同的方式?每种方法的实现原理是什么? Java中List遍历的最佳实践是什么?

32、说一下ArrayList的优缺点

33、如果使用Object作为HashMap的Key,应该怎么办呢?

34、插入数据时,ArrayList、LinkedList、Vector谁速度较快?阐述 ArrayListVector、LinkedList 的存储性能和特性?

35、什么是TreeMap 简介

36、使用描述性消息抛出异常

37、在 finally 块中清理资源或者使用 try-with-resource 语句

38、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

39、不要记录并抛出异常

40、使用标准异常

IV.Linux面试题

1、 什么是CLI?

  • 命令行界面(英语:command-line interface,缩写]:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。
  • 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。

2、 什么是硬链接和软链接?

3、Error 和 Exception 区别是什么?

4、 什么是LILO?

5、 请问当用户反馈网站访问慢,你会如何处理?

6、 简单 Linux 文件系统?

7、 Linux的基本组件是什么?

8、包装异常时不要抛弃原始的异常

9、 BASH和DOS之间的基本区别是什么?

10、什么是TreeMap 简介

11、什么是Linux

12、什么是红黑树

13、 Windows和Linux的区别

14、如何决定使用 HashMap 还是 TreeMap?

15、不要忽略异常

16、Unix和Linux有什么区别

17、 基本命令

18、 Linux 使用的进程间通信方式?

19、 一台 Linux 系统初始化环境后需要做一些什么安全工作?

20、 什么是BASH?

21、 Linux 有哪些系统日志文件?

22、 Linux系统安装多个桌面环境有帮助吗?

23、 开源的优势是什么?

24、 什么叫 CC 攻击?什么叫 DDOS 攻击?

25、 Linux 的体系结构

26、 如何规划一台 Linux 主机,步骤是怎样?

27、 什么是GUI?

28、 什么是交换空间?

29、使用描述性消息抛出异常

30、 Linux 的目录结构是怎样的?

V.Git命令

1、删除远端仓库

2、基于当前分支创建新分支

3、删除已合并到 master 分支的所有本地分支

4、临时任务处理完后继续之前的工作

5、将仓库内所有变更都加入到暂存区

6、新建带备注标签

7、查看本地和远端分支

8、用图示显示所有分支的历史

9、将 A 分支合入到 B 分支中且为 merge 创建 commit

10、查看所有 stash

11、将指定文件添加到暂存区

12、某文件各行最后修改对应的 commit 以及作者

13、查看变更情况

14、当前仓库配置

15、比较某文件工作区和 HEAD 的差异

16、将 A 分支基于 B 分支做 rebase,以便将 B 分支合入到 A 分支

17、将当前目录及其子目录下所有变更都加入到暂存区

18、比较暂存区和 HEAD 的所有差异

19、比较工作区和暂存区的所有差异

20、基于某个 commit 创建分支

21、删除当前仓库配置

22、查看涉及到某文件变更的所有 commit

23、查看 global 配置

24、删除 global 配置

25、查看已有标签

26、将当前分支基于 B 分支做 rebase,以便将B分支合入到当前分支

27、查看当前工作分支及本地分支

28、删除一个本地标签

29、删除一个远端标签

30、查看哪些文件没被 Git 管控

VI.设计模式

1、在 Java 中,为什么不允许从静态方法中访问非静态变量?

2、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

3、什么是设计模式?你是否在你的代码里面使用过任何设计模式?

4、在 Java 中,什么叫观察者设计模式(observer design pattern)?

5、设计一个 ATM 机,请说出你的设计思路?

6、在 Java 中,什么时候用重载,什么时候用重写?

7、请列举出在 JDK 中几个常用的设计模式?

8、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?

9、使用工厂模式最主要的好处是什么?在哪里使用?

10、举例说明什么情况下会更倾向于使用抽象类而不是接口?

VII.网络编程

4、为什么要对网络协议分层

5、计算机网络体系结构

6、 什么是TCP/IP和UDP

7、 TCP与UDP区别:

8、 TCP和UDP的应用场景:

9、 形容一下TCP和UDP

10、 运行在TCP 或UDP的应用层协议分析

11、什么是ARP协议 (Address Resolution Protocol)?

12、什么是NAT (Network Address Translation, 网络地址转换)?

13、从输入址到获得页面的过程?

14、 TCP的三次握手

15、 用现实理解三次握手的具体细节

16、 建立连接可以两次握手吗?为什么?

17、 可以采用四次握手吗?为什么?

18、 第三次握手中,如果客户端的ACK未送达服务器,会怎样?

19、 如果已经建立了连接,但客户端出现了故障怎么办?

20、 初始序列号是什么?

21、 用现实理解三次握手的具体细节TCP的四次挥手

22、 为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什么)?

23、 如果第二次挥手时服务器的ACK没有送达客户端,会怎样?

24、 客户端TIME_WAIT状态的意义是什么?

25、 什么是Socket

26、 socket属于网络的那个层面

27、 Socket通讯的过程

28、什么是Http协议?

29、Socket和http的区别和应用场景

30、什么是http的请求体?

二、Java并发专题面试

I.多线程

1、启动线程方法 start()和 run()有什么区别?

只有调用了 start()方法,才会表现出多线程的特性,不同线程的 run()方法里面的代码交替执行。如果只是调用 run()方法,那么代码还是同步执行的,必须等待一个线程的 run()方法里面的代码全部执行完毕之后,另外一个线程才可以执行其 run()方法里面的代码。

2、Java 实现线程有哪几种方式?

  • 继承 Thread 类实现多线程
  • 实现 Runnable 接口方式实现多线程
  • 使用 ExecutorService、Callable、Future 实现有返回结果的多线程

3、用 Java 实现阻塞队列。

这是一个相对艰难的多线程面试问题,它能达到很多的目的。第一,它可以检测侯选者是否能实际的用 Java 线程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用 wait()和 notify()方法来实现阻塞队列,你可以要求他用最新的 Java 5 中的并发类来再写一次。

4、Java 中你怎样唤醒一个阻塞的线程?

这是个关于线程和阻塞的棘手的问题,它有很多解决方法。如果线程遇到了 IO 阻塞,我并且不认为有一种方法可以中止线程。如果线程因为调用 wait()、sleep()、或者 join()方法而导致的阻塞,你可以中断线程,并且通过抛出 InterruptedException 来唤醒它。我之前写的《How to deal with blocking methods in java》有很多关于处理线程阻塞的信息。

5、你将如何使用 threaddump?你将如何分析 Thread dump?

6、线程池启动线程 submit()和 execute()方法有什么不同?

7、什么是重入锁?

8、一个线程运行时发生异常会怎样?

9、线程同步需要注意什么?

10、线程 yield()方法有什么用?

11、violatile 关键字的作用?

12、什么是乐观锁和悲观锁?

13、常用的几种线程池并讲讲其中的工作原理。

14、Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?

15、你如何在 Java 中获取线程堆栈?

16、Jdk 中排查多线程问题用什么命令?

17、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

18、多线程同步有哪几种方法?

19、什么是守护线程?有什么用?

20、Java 中堆和栈有什么不同?

21、 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

22、为什么 wait 和 notify 方法要在同步块中调用?

23、线程数过多会造成什么异常?

24、线程和进程的区别是什么?

25、什么是 CAS 算法?在多线程中有哪些应用。

26、现在有 T1

27、线程怎样拿到返回结果?

28、为什么 wait/notify/notifyAll 这些方法不在 thread 类里面?

29、什么是不可变对象,它对写并发应用有什么帮助?

30、Hashtable 的 size()方法为什么要做同步?

31、怎么控制同一时间只有 3 个线程运行?

32、说说线程安全的和不安全的集合。

33、用 Java 编程一个会导致死锁的程序,你将怎么解决?

34、用 Java 写代码来解决生产者——消费者问题。

35、什么是自旋锁?

36、什么是原子操作,Java 中的原子操作是什么?

37、ThreadLocal 是什么?有什么应用场景?

38、线程之间如何传递数据?

39、什么是原子性

40、Fork/Join 框架是干什么的?

II.Java并发编程

1、 synchronized 和 volatile 的区别是什么?

2、 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?

当一个线程需要调用对象的 wait()方法的时候,这个线程必须拥有该对象的锁,接着它就会释放这个对象锁并进入等待状态直到其他线程调用这个对象上的 notify()方法。同样的,当一个线程需要调用对象的 notify()方法时,它会释放这个对象的锁,以便其他在等待的线程就可以得到这个对象锁。由于所有的这些方法都需要线程持有对象的锁,这样就只能通过同步来实现,所以他们只能在同步方法或者同步块中被调用。

3、 如何在两个线程间共享数据?

一般来说,共享变量要求变量本身是线程安全的,然后在线程内使用的时候,如果有对共享变量的复合操作,那么也得保证复合操作的线程安全性。

4、 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?

5、 synchronized 和 Lock 有什么区别?

6、既然提到可以通过配置不同参数创建出不同的线程池,那么Java中默认实现好的线程池又有哪些呢?请比较它们的异同。

7、你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

8、 为什么要使用并发编程

9、 并发队列和并发集合的区别:

10、 线程池中 submit() 和 execute() 方法有什么区别?

11、 如何避免线程死锁

12、 什么是重排序

13、 并发关键字 synchronized ?

14、 线程和进程区别

15、 你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?

16、 用过ConcurrentHashMap,讲一下他和HashTable的不同之处?

17、 原子类的常用类

18、请谈谈ThreadLocal是怎么解决并发安全的?

19、 Thread 类中的 yield 方法有什么作用?

20、 notify() 和 notifyAll() 有什么区别?

21、 finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

22、 synchronized可重入的原理

23、 怎么判断并发队列是阻塞队列还是非阻塞队列

24、JVM对Java的原生锁做了哪些优化?

25、 常用并发列队的介绍:

26、 Java 中你怎样唤醒一个阻塞的线程?

27、如何让Java的线程彼此同步?你了解过哪些同步器?请分别介绍下。

28、 什么是ThreadPoolExecutor?

29、 什么叫线程安全?servlet 是线程安全吗?

30、 单例模式了解吗?给我解释一下双重检验锁方式实现单例模式!”

31、 Java中垃圾回收有什么目的?什么时候进行垃圾回收?

32、 创建线程的四种方式

33、请对比下volatile对比Synchronized的异同。

34、 什么是 CAS

35、 常用的并发工具类有哪些?

36、 volatile 能使得一个非原子操作变成原子操作吗?

37、 多线程应用场景

38、 说一下 Atomic的原理?

39、 Java 程序中怎么保证多线程的运行安全?

40、 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

III.Java虚拟机

1、类加载器双亲委派模型机制?

当一个类收到了类加载请求时,不会自己先去加载这个类,而是将其委派给父类,由父类

去加载,如果此时父类不能加载,反馈给子类,由子类去完成类的加载。

2、深拷贝和浅拷贝

  • 浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
  • 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,
  • 浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。
  • 深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。

3、简述Java垃圾回收机制

在 java 中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行。在JVM 中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者当前堆内存不足时,才会触发执行,扫面那些没有被任何引用的对象,并将它们添加到要回收的集合中,进行回收。

4、你能给我详细的介绍Java堆吗?(重点理解)

5、说一下JVM运行时数据区

6、Java会存在内存泄漏吗?请说明为什么?

7、堆栈的区别是什么?

8、简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

9、MinorGC

10、能不能解释一下本地方法栈?

11、对象什么时候可以被垃圾器回收

12、详解JVM内存模型

13、堆里面的分区:Eden,survival(from+to),老年代,各自的特点。

14、GC是什么?为什么要GC

15、JVM的GC收集器设置

16、你听过直接内存吗?

17、java类加载过程?

18、说说你知道的几种主要的JVM参数

19、强引用

20、常用的JVM调优的参数都有哪些?

21、JVM垃圾回收算法有哪些?

22、Jdk和Jre和JVM的区别

23、我们开发人员编写的Java代码是怎么让电脑认识的

24、能不能解释一下方法区

25、怎么打出线程栈信息。

26、GC的三种收集方法:标记清除

27、SafePoint是什么

28、为什么新生代要分Eden和两个Survivor区域?

29、GC收集器有哪些?CMS收集器与G1收集器的特点。

30、知道垃圾收集系统吗?

31、垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?

32、什么是JVM字节码执行引擎

33、什么情况下会发生栈内存溢出。

34、详细的介绍下程序计数器?(重点理解)

35、JVM调优的参数可以在那设置参数值

36、简述java类加载机制?

37、说一下类装载的执行过程?

38、JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。

39、你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。

40、类加载的几个过程:

41、什么是类加载器,类加载器有哪些?

42、FullGC是什么

43、怎么判断对象是否可以被回收?

44、java中垃圾收集的方法有哪些?

45、详细介绍下Java虚拟机栈?(重点理解)

46、为什么要这样分代:

47、详细介绍下Java虚拟机栈?

48、为什么说java是跨平台语言

49、简述分代垃圾回收器是怎么工作的?

50、讲一下新生代

三、Java框架专题面试

I.开源框架

1、Spring IOC 如何实现

  • Spring 中的 org.springframework.beans 包和 org.springframework.context 包构成了Spring 框架 IoC 容器的基础。
  • BeanFactory 接口提供了一个先进的配置机制,使得任何类型的对象的配置成为可能。ApplicationContex 接口对 BeanFactory(是一个子接口)进行了扩展,在 BeanFactory 的基础上添加了其他功能,比如与 Spring 的 AOP 更容易集成,也提供了处理 messageresource 的机制(用于国际化)、事件传播以及应用层的特别配置,比如针对 Web 应用的WebApplicationContext。
  • org.springframework.beans.factory.BeanFactory 是 Spring IoC 容器的具体实现,用来包装和管理前面提到的各种 bean。BeanFactory 接口是 Spring IoC 容器的核心接口。

2、说说业务中,Netty 的使用场景

  • 构建高性能、低时延的各种 Java 中间件,例如 MQ、分布式服务框架、ESB 消息总线等,Netty 主要作为基础通信框架提供高性能、低时延的通信服务;
  • 公有或者私有协议栈的基础通信框架,例如可以基于 Netty 构建异步、高性能的WebSocket 协议栈;
  • 各领域应用,例如大数据、游戏等,Netty 作为高性能的通信框架用于内部各模块的数据分发、传输和汇总等,实现模块之间高性能通信

3、Spring MVC 运行流程

  • 1.spring mvc 将所有的请求都提交给 DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作。
  • 2.DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller.
  • 3.DispatcherServlet 请请求提交到目标 Controller
  • 4.Controller 进行业务逻辑处理后,会返回一个 ModelAndView
  • 5.Dispathcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView 对象指定的视图对象
  • 6.视图对象负责渲染返回给客户端。

4、为什么选择 Netty

  • API 使用简单,开发门槛低;
  • 功能强大,预置了多种编解码功能,支持多种主流协议;
  • 定制能力强,可以通过 ChannelHandler 对通信框架进行灵活的扩展;
  • 性能高,通过与其它业界主流的 NIO 框架对比,Netty 的综合性能最优;
  • 成熟、稳定,Netty 修复了已经发现的所有 JDK NIO BUG,业务开发人员不需要再为NIO 的 BUG 而烦恼;
  • 社区活跃,版本迭代周期短,发现的 BUG 可以被及时修复,同时,更多的新功能会被加入;
  • 经历了大规模的商业应用考验,质量已经得到验证。在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它可以完全满足不同行业的商业应用。
  • 正是因为这些优点,Netty 逐渐成为 Java NIO 编程的首选框架。

5、Netty 内部执行流程

6、Spring Bean 的生命周期

7、Spring 事务实现方式

8、Spring 事务底层原理

9、TCP 粘包/拆包的解决办法

10、原生的 NIO 在 JDK 1.7 版本存在 epoll bug

11、如何自定义注解实现功能

12、Spring 的单例实现原理

13、Netty 线程模型

14、Spring AOP 实现原理

15、说说 Spring AOP

16、说说 Netty 的零拷贝

17、Spring MVC 启动流程

18、Spring 框架中用到了哪些设计模式

19、什么是 TCP 粘包/拆包

20、动态代理(cglib 与 JDK)

21、BeanFactory 和 ApplicationContext 有什么区别

II.Mybatis面试

1、通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

3、MyBatis编程步骤是什么样的?

  • 1、 创建SqlSessionFactory
  • 2、 通过SqlSessionFactory创建SqlSession
  • 3、 通过sqlsession执行数据库操作
  • 4、 调用session.commit()提交事务
  • 5、 调用session.close()关闭会话

4、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。

5、Xml映射文件中,除了常见的select|insert|update|delete标签之外,还有哪些标签?

注:这道题出自京东面试官。

还 有 很 多 其 他 的 标 签 , 加 上 动 态 sql 的9 个 标签,trim|where|set|foreach|if|choose|when|otherwise|bind等 , 其 中 为sql片段标签,通过标签引入 sql 片段,为不支持自增的主键生成策略标签。


6、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

7、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

8、Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?

9、传统JDBC开发存在什么问题?

10、Mybatis是如何进行分页的?分页插件的原理是什么?

11、IBatis和MyBatis在核心处理类分别叫什么?

12、IBatis和MyBatis在细节上的不同有哪些?

13、Hibernate和MyBatis的区别

14、Mybatis如何执行批量操作

15、{}和${}的区别

16、Mybatis中如何指定使用哪一种Executor执行器?

17、MyBatis的框架架构设计是怎么样的

18、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

19、Mybatis是否可以映射Enum枚举类?

20、Mybatis比IBatis比较大的几个改进是什么?

21、Mapper编写有哪几种方式?

22、MyBatis实现一对一有几种方式?具体怎么操作的?

23、在mapper中如何传递多个参数

24、ORM是什么

25、简述Mybatis的插件运行原理,以及如何编写一个插件。

26、MyBatis是什么?

27、简述Mybatis的插件运行原理,以及如何编写一个插件?

28、Mybatis执行批量插入,能返回数据库主键列表吗?

29、如何获取自动生成的(主)键值?

30、MyBatis的功能架构是怎样的

四、Java性能调优专题面试

I.Netty

1、IO多路转接(I/Omultiplexing)

2、了解哪几种序列化协议?

3、线程池解决多线程BIO编程会出现的问题

4、如何选择序列化协议?

5、阻塞BIO(blockingI/O)

6、异步AIO(asynchronousI/O)

7、IO基本操作讲解

8、非阻塞NIO(noblockingI/O)

9、使用Netty实现网络通信

10、信号驱动IO(signalblockingI/O)

11、TCP粘包/拆包的原因及解决方法?

12、在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别

13、BIO和NIO、AIO的区别

14、什么是IO

15、NIOEventLoopGroup源码?

16、什么Netty

17、什么是内核空间

18、BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法

19、在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用

20、什么是NIO

21、什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作

22、NIO的组成?

23、Netty的高性能表现在哪些方面?

24、BIO编程会出现什么问题?

25、使用NIO实现网络通信

26、多线程解决BIO编程会出现的问题

27、Netty的零拷贝实现?

28、网络操作IO讲解

29、Netty的线程模型?

30、IO流的分类

31、怎么生成SerialversionUID

32、Netty的特点?

33、什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别

34、IO的常用类和方法,以及如何使用

35、为什么图片、视频、音乐、文件等都是要字节流来读取

36、五种IO模型

37、BIO、NIO和AIO的区别?

38、什么是BIO

39、Java中流类的超类主要有那些?

40、什么是AIO

41、网络操作IO编程演变历史

II.Nginx

1、请列举Nginx的一些特性

  • Nginx 服务器的特性包括:
  • 反向代理/L7 负载均衡器
  • 嵌入式 Perl 解释器
  • 动态二进制升级
  • 可用于重新编写 URL,具有非常好的 PCRE 支持

2、请解释你如何通过不同于80的端口开启Nginx?

为了通过一个不同的端口开启 Nginx,你必须进入/etc/Nginx/sitesenabled/,如果这是默认文件,那么你必须打开名为“default”的文件。编辑文件,并放置在你想要的端口:

3、Nginx静态资源?

静态资源访问,就是存放在nginx的html页面,我们可以自己编写

4、请解释ngx_http_upstream_module的作用是什么?

ngx_http_upstream_module 用于定义可通过 fastcgi 传递、proxy 传递、uwsgi传递、memcached 传递和 scgi 传递指令来引用的服务器组。


5、限流怎么做的?

6、什么是正向代理和反向代理?

7、location的语法能说出来吗?

8、Nginx应用场景?

9、请列举Nginx服务器的最佳用途

10、解释如何在Nginx中获得当前的时间?

11、为什么要用Nginx?

12、什么是Nginx?

13、解释如何在Nginx服务器上添加模块?

14、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

15、如何用Nginx解决前端跨域问题?

16、请陈述stub_status和sub_filter指令的作用是什么?

17、Nginx配置文件nginx.conf有哪些属性模块?

18、在Nginx中,解释如何在URL中保留双斜线?

19、为什么Nginx性能这么高?

20、漏桶流算法和令牌桶算法知道?

21、怎么限制浏览器访问?

22、用Nginx服务器解释-s的目的是什么?

23、请解释Nginx如何处理HTTP请求

24、Nginx怎么做的动静分离?

25、Nginx目录结构有哪些?

26、Nginx负载均衡的算法怎么实现的?策略有哪些?

27、请解释什么是C10K问题?

28、解释Nginx是否支持将请求压缩到上游?

29、使用“反向代理服务器”的优点是什么?

30、location的作用是什么?

31、Nginx的优缺点?

32、请解释是否有可能将Nginx的错误替换为502错误、503?

33、请列举Nginx和Apache之间的不同点

34、Nginx怎么处理请求的?

35、使用“反向代理服务器的优点是什么?

36、Nginx怎么判断别IP不可访问?

37、请解释Nginx服务器上的Master和Worker进程分别是什么?

38、Nginx配置高可用性怎么配置?

39、为什么要做动静分离?

40、Nginx虚拟主机怎么配置?

41、Rewrite全局变量是什么?

III.Tomcat

1、内存调优

2、Tomcat一个请求的完整过程

代码语言:txt
复制
Ng:(nginx) upstream yy_001{
	server 10.99.99.99:8080;
	server 10.99.99.100:8080;
	hash $**;
	healthcheck_enabled;
	healthcheck_delay 3000;
	healthcheck_timeout 1000;
	healthcheck_failcount 2;
	healthcheck_send 'GET /healthcheck.html HTTP/1.0' 'Host: wo.com' 'Connection: close';
}
server {
	include base.conf;
	server_name wo.de.tian;
	... location /yy/ {
		proxy_pass http://yy_001; }

首先 dns 解析 wo.de.tian机器,一般是ng服务器ip地址

然后 ng根据server的配置,寻找路径为 yy/的机器列表,ip和端口

最后 选择其中一台机器进行访问—->下面为详细过程

  • 1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
  • 2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
  • 3) Engine获得请求localhost/yy/index.jsp,匹配它所拥有的所有虚拟主机Host
  • 4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为
  • 该Engine的默认主机)
  • 5) localhost Host获得请求/yy/index.jsp,匹配它所拥有的所有Context
  • 6) Host匹配到路径为/yy的Context(如果匹配不到就把该请求交给路径名为”“的Context去处理)
  • 7) path=”/yy”的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet
  • 8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
  • 9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet
  • 或doPost方法
  • 10)Context把执行完了之后的HttpServletResponse对象返回给Host
  • 11)Host把HttpServletResponse对象返回给Engine
  • 12)Engine把HttpServletResponse对象返回给Connector
  • 13)Connector把HttpServletResponse对象返回给客户browser

3、tomcat容器是如何创建servlet类实例?用到了什么原理?

当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

4、专业点的分析工具有

IBM ISA,JProfiler、probe 等,具体监控及分析方式去网上搜索即可


5、添加 JMS 远程监控

6、关于 Tomcat 的 session 数目

7、监视 Tomcat 的内存使用情况

8、Tomcat 有几种部署方式?

9、监视Tomcat的内存使用情况

10、关于Tomcat的session数目

11、Tomcat工作模式?

12、共享 session 处理

13、tomcat 有哪几种 Connector 运行模式(优化)?

14、Tomcat 工作模式?

15、Tomcat的缺省端口是多少,怎么修改?

16、Tomcat 的缺省端口是多少,怎么修改?

17、共享session处理

18、垃圾回收策略调优

19、Tomcat 一个请求的完整过程

20、Tomcat有几种部署方式?

21、添加JMS远程监控

22、tomcat 如何优化?

23、tomcat 容器是如何创建 servlet 类实例?用到了什么原理?

24、打印类的加载情况及对象的回收情况

25、tomcat 有哪几种Connector 运行模式(优化)?

IV.悲观锁于乐观锁

1、只能保证一个共享变量的原子操作

CAS 只对单个共享变量有效,当操作涉及跨多个共享变量时 CAS 无效。但是从 JDK 1.5 开始,提供了 AtomicReference 类来保证引用对象之间的原子性,你可以把多个变量放在一个对象里来进行 CAS 操作.所以我们可以使用锁或者利用 AtomicReference 类把多个共享变量合并成一个共享变量来操作。

2、悲观锁

3、乐观锁常见的两种实现方式

乐观锁一般会使用版本号机制或 CAS 算法实现。

4、循环时间长开销大

5、CAS 与 synchronized 的使用情景

6、CAS 算法

7、乐观锁的缺点

8、乐观锁

9、两种锁的使用场景

五、分布式专题面试

I.Dubbo

1、Dubbo支持哪些序列化方式?

默认使用 Hessian 序列化,还有 Duddo、FastJson、Java 自带序列化。

2、RMI协议

3、服务调用超时会怎么样?

dubbo 在调用服务不成功时,默认是会重试两次。

4、为什么要用Dubbo?

随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。


5、Dubbo服务注册与发现的流程?

6、Dubbo类似的分布式框架还有哪些?

7、RPC和SOA、SOAP、REST的区别

8、dubbo连接注册中心和直连的区别

9、dubbo通信协议dubbo协议为什么采用异步单一长连接:

10、同一个服务多个注册的情况下可以直连某一个服务吗?

11、Dubbo如何优雅停机?

12、Dubbo在安全机制方面是如何解决的

13、Dubbo超时设置有哪些方式?

14、Dubbo与Spring的关系?

15、Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信么?

16、Dubbo集群提供了哪些负载均衡策略?

17、Dubbo和SpringCloud的区别?

18、Dubbo的架构设计?

19、服务调用超时问题怎么解决?

20、Dubbo的集群容错方案有哪些?

21、Dubbo的整体架构设计有哪些分层?

22、Dubbo和SpringCloud的关系?

23、Dubbo核心组件有哪些?

24、Dubbo超时时间怎样设置?

25、Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?

26、Dubbo服务降级,失败重试怎么做?

27、Dubbo和SpringCloud有什么哪些区别?

28、Dubbo可以对结果进行缓存吗?

29、DubboMonitor实现原理?

30、服务上线怎么兼容旧版本?

31、Dubbo支持哪些协议,每种协议的应用场景,优缺点?

32、Dubbo有哪些注册中心?

33、Dubbo在安全方面有哪些措施?

34、服务提供者能实现失效踢出是什么原理?

35、Dubbo有些哪些注册中心?

36、Dubbo支持服务降级吗?

37、Dubbo必须依赖的包有哪些?

38、Hessian协议

39、说说核心的配置有哪些?

40、dubbo通信协议dubbo协议适用范围和适用场景

41、PRC架构组件

42、DubboSPI和JavaSPI区别?

43、Dubbo用到哪些设计模式?

44、Dubbo提供了常见的集群策略实现,并预扩展点予以自行实现

45、为什么要有RPC

46、Dubbo核心功能有哪些?

47、Dubbo服务器注册与发现的流程?

48、RPC使用了哪些关键技术?

49、Dubbo是什么?

50、Dubbo和Dubbox之间的区别?

51、Dubbo支持哪些协议,它们的优缺点有哪些?

52、dubbo服务集群配置(集群容错模式)

53、Dubbo使用的是什么通信框架?

54、主流RPC框架有哪些

55、RPC的实现原理架构图

56、Dubbo的主要应用场景?

57、Dubbo配置文件是如何加载到Spring中的?

58、Dubbo支持分布式事务吗?

59、Dubbo在安全机制方面是如何解决?

60、Dubbo框架设计一共划分了10个层:

61、Dubbo的核心功能?

62、Dubbo集群的负载均衡有哪些策略

63、dubbo服务负载均衡策略?

64、Dubbo使用过程中都遇到了些什么问题?

65、Dubbo的默认集群容错方案?

66、Dubbo的使用场景有哪些?

67、服务调用是阻塞的吗?

68、RPC框架需要解决的问题?

69、什么是RPC

70、Dubbotelnet命令能做什么?

71、Dubbo和SpringCloud有什么关系?

72、RPC的实现基础?

II.ElasticSearch

1、lucence内部结构是什么?

Lucene 是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。可以基于这个脉络展开一些。

2、elasticsearch是如何实现master选举的

3、Elasticsearch中的节点(比如共20个),其中的10个

选了一个 master,另外 10 个选了另一个 master,怎么办?

(1)当集群 master 候选数量不小于 3 个时,可以通过设置最少投票通过数量

(discovery.zen.minimum_master_nodes)超过所有候选节点一半以上来解决脑裂问题;

(3)当候选数量为两个时,只能修改为唯一的一个 master 候选,其他作为 data节点,避免脑裂问题。

4、elasticsearch索引数据多了怎么办,如何调优,部署?

5、如何监控Elasticsearch集群状态?

6、Elasticsearch在部署时,对Linux的设置有哪些优化方法?

7、介绍一下你们的个性化搜索方案?

8、Elasticsearch是一个分布式的RESTful风格的搜索和数据分析引擎。

9、在并发情况下,Elasticsearch如果保证读写一致?

10、详细描述一下Elasticsearch更新和删除文档的过程。

11、对于GC方面,在使用Elasticsearch时要注意什么?

12、介绍下你们电商搜索的整体技术架构。

13、Elasticsearch是如何实现Master选举的?

14、Elasticsearch对于大数据量(上亿量级)的聚合如何实现?

15、elasticsearch的倒排索引是什么

16、详细描述一下Elasticsearch索引文档的过程。

17、在Elasticsearch中,是怎么根据一个词找到对应的倒排索引的?

18、拼写纠错是如何实现的?

19、详细描述一下Elasticsearch搜索的过程?

20、是否了解字典树?

21、elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段

22、Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它允许您快速和接近实时地存储

23、客户端在和集群连接时,如何选择特定的节点执行请求的?

24、详细描述一下Elasticsearch搜索的过程。

25、Elasticsearch在部署时,对Linux的设置有哪些优化方法

26、详细描述一下Elasticsearch索引文档的过程

III.Memcache

1、如何实现集群中的session共享存储?

34、Redis当中有哪些数据结构

过期时间最大可以达到 30 天。memcached 把传入的过期时间(时间段)解释成时间点后,一旦到了这个时间点,memcached 就把 item 置为失效状态。这是一个简单但 obscure的机制。

3、为什么单个item的大小被限制在1Mbyte之内?

4、Memcached是什么,有什么作用?

5、memcached的内存分配器是如何工作的?为什么不适用malloc/free!?为何要使用slabs?

6、memcached是如何做身份验证的?

7、memcached如何处理容错的?

8、memcached最大的优势是什么?

9、memcached和服务器的localcache(比如PHP的APC、mmap文件等)相比,有什么优缺点?

10、memcached的cache机制是怎样的?

11、memcached和MySQL的querycache相比,有什么优缺点?

12、memcached能够更有效地使用内存吗?

13、我需要把memcached中的item批量导出导入,怎么办?

14、简述Memcached内存管理机制原理?

15、memcached的多线程是什么?如何使用它们?

16、memcached能接受的key的最大长度是多少?

17、memcached最大能存储多大的单个item?

18、memcached是怎么工作的?

19、如何将memcached中item批量导入导出?

20、什么是二进制协议,我该关注吗?

21、memcached与redis的区别?

22、memcached如何实现冗余机制?

23、如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢?

24、Memcached服务分布式集群如何实现?

25、Memcached服务特点及工作原理是什么?

26、memcached是原子的吗?

六、数据库专题面试

1、 小心“永久链接”

I.MongoDB

1、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?

可以

2、32位系统上有什么细微差别?

  • journaling 会激活额外的内存映射文件。这将进一步抑制 32 位版本上的数据库大小。因此,现在
  • journaling 在 32 位系统上默认是禁用的。

3、如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?

不需要,移动操作是一致(consistent)并且是确定性的(deterministic);一次失败后,移动操作会不断重试;当完成后,数据只会出现在新的分片里

4、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?

更新操作会立即发生在旧的块(Chunk)上,然后更改才会在所有权转移前复制到新的分片上。

5、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?

GridFS 是一种将大型文件存储在 MongoDB 中的文件规范。使用 GridFS 可以将大文件分隔成多个小文档存放,这样我们能够有效的保存大文档,而且解决了 BSON 对象有限制的问题。


6、更新操作立刻fsync到磁盘?

7、NoSQL数据库有哪些类型?

8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

9、什么是secondary或slave?

10、分片(sharding)和复制(replication)是怎样工作的?

11、什么是master或primary?

12、如何执行事务/加锁?

13、我可以把moveChunk目录里的旧文件删除吗?

14、当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?

15、如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?

16、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?

17、你怎么比较MongoDB、CouchDB及CouchBase?

18、如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?

19、MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?

20、为什么我的数据文件如此庞大?

21、MySQL与MongoDB之间最基本的差别是什么?

22、数据在什么时候才会扩展到多个分片(shard)里?

23、启用备份故障恢复需要多久?

24、允许空值null吗?

25、我怎么查看Mongo正在使用的链接?

26、如果用户移除对象的属性,该属性是否从存储层中删除?

27、分析器在MongoDB中的作用是什么?

28、我应该启动一个集群分片(sharded)还是一个非集群分片的MongoDB环境?

29、MongoDB成为最好NoSQL数据库的原因是什么?

30、名字空间(namespace)是什么?

31、能否使用日志特征进行安全备份?

32、MongoDB支持存储过程吗?如果支持的话,怎么用?

33、我必须调用getLastError来确保写操作生效了么?

II.MySQL

1、区分CHAR_LENGTH和LENGTH?

CHAR_LENGTH 是字符数,而 LENGTH 是字节数。Latin 字符的这两个数据是相同的,但是对于 Unicode 和其他编码,它们是不同的。

2、如何区分FLOAT和DOUBLE?

以下是 FLOAT 和 DOUBLE 的区别:

浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。

浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。

3、简述在MySQL数据库中MyISAM和InnoDB的区别

4、Mysql中有哪些不同的表格?

共有 5 种类型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM

5、ISAM是什么?

ISAM 简称为索引顺序访问方法。它是由 IBM 开发的,用于在磁带等辅助存储系统上存储和检索数据。


6、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,将该字段拆成子表好处是什么?

7、Mysql的技术特点是什么?

8、为表中得字段选择合适得数据类型

9、怎样才能找出最后一次插入时分配了哪个自动增量?

10、InnoDB是什么?

11、LIKE和REGEXP操作有什么区别?

12、BLOB和TEXT有什么区别?

13、NOW()和CURRENT_DATE()有什么区别?

14、如何显示前50行?

15、主键和候选键有什么区别?

16、优化数据库的方法

17、MySQL查询缓存有什么弊端,应该什么情况下使用,8.0版本对查询缓存有什么更.

18、简单描述MySQL中,索引,主键,唯一索引,联合索引

19、MyISAMStatic和MyISAMDynamic有什么区别?

20、MYSQL数据库服务器性能分析的方法命令有哪些?

21、TIMESTAMP在UPDATECURRENT_TIMESTAMP数据类型上做什么?

22、MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?SQL标准定义的四个隔离级别为:

23、可以使用多少列创建索引?

24、MySQL的基础操作命令:

25、MyISAM表格将在哪里存储,并且还提供其存储格式?

26、federated表是什么?

27、实践中如何优化MySQL

28、与Oracle相比,Mysql有什么优势?

29、你怎么看到为表格定义的所有索引?

30、LIKE声明中的%和_是什么意思?

31、以及在mysql数据库中索引的工作机制是什么?

32、什么是非标准字符串类型?

33、什么样的对象可以使用CREATE语句创建?

34、MYSQL数据表在什么情况下容易损坏?

35、CHAR和VARCHAR的区别?

36、如何定义REGEXP?

37、请简述常用的索引有哪些种类?

38、MySQL如何优化DISTINCT?

39、如何在Unix和Mysql时间戳之间进行转换?

40、Mysql服务器默认端口是什么?

41、SQL注入漏洞产生的原因?如何防止?

42、我们如何得到受查询影响的行数?

43、MySQL有关权限的表都有哪几个?

44、MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

45、MySQL由哪些部分组成,分别用来做什么

46、SQL语言包括哪几部分?每部分都有哪些操作关键字?

47、Mysql驱动程序是什么?

48、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

49、Mysql查询是否区分大小写?

50、HAVNG子句和WHERE的异同点?

51、列的字符串类型可以是什么?

52、mysql_fetch_array和mysql_fetch_object的区别是什么?

53、在Mysql中ENUM的用法是什么?

54、mysql中myisam与innodb的区别?

55、解释访问控制列表

56、列对比运算符是什么?

57、MySQL事务的隔离级别,分别有什么特点

58、Heap表是什么?

59、MySQL支持事务吗?

60、mysql中varchar与char的区别以及varchar(50)中的50代表的涵义?

61、Mysql中有哪几种锁?

62、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?

63、列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?

64、我们如何在mysql中运行批处理模式?

65、MySQL中控制内存分配的全局参数,有哪些?

66、订单表数据量越来越大导致查询缓慢,如何处理

67、如何控制HEAP表的最大尺寸?

68、数据库中的事务是什么?

69、若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值

70、mysql支持的复制类型?

71、唯一索引比普通索引快吗,为什么

72、如何使用Unixshell登录Mysql?

73、myisamchk是用来做什么的?

75、完整性约束包括哪些?

76、如何获取当前的Mysql版本?

77、什么是通用SQL函数?

78、一千万条数据的表,如何分页查询

79、SELECT*和SELECT全部字段的2种写法有何优缺点?

80、数据库三范式是什么?

81、MySQL的insert和update的select语句语法

82、SQL标准定义的四个隔离级别为:

83、解释MySQL外连接

84、存储时期

85、索引的底层实现原理和优化

86、如果一个表有一列定义为TIMESTAMP,将发生什么?

87、MySQL怎么恢复半个月前的数据

88、MySQL当记录不存在时insert,当记录存在时update,语句怎么写?

89、请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

90、Myql中的事务回滚机制概述

91、对于关系型数据库而言,索引是相当重要的概念,请回答

92、简要说一下数据库范式

93、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?

94、锁的优化策略

95、Mysql表中允许有多少个TRIGGERS?

96、做过哪些MySQL索引相关优化

97、Mysql中使用什么存储引擎?

98、mysql的复制原理以及流程

99、如何输入字符为十六进制数字?

100、什么情况下设置了索引但无法使用

101、MyISAM和InnoDB**的区别有哪些

102、MySQL里记录货币用什么字段类型好

103、有哪些数据库优化方面的经验?

MySQL 性能优化的 21 个最佳实践

1、 小心“永久链接”

“永久链接”的目的是用来减少重新创建 MySQL 链接的次数。当一个链接被创建了,它会永远处在连接的状态,就算是数据库操作已经结束了。而且,自从我们的 Apache 开始重用它的子进程后——也就是说,下一次的 HTTP 请求会重用 Apache 的子进程,并重用相同的 MySQL 链接。

2、避免 SELECT *

3、 EXPLAIN 你的 SELECT 查询

4、 尽可能的使用 NOT NULL

  • 除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持NOT NULL。这看起来好像有点争议,请往下看。
  • 首先,问问你自己“Empty”和“NULL”有多大的区别(如果是 INT,那就是 0 和 NULL)?如果你觉得它们之间没有什么区别,那么你就不要使用 NULL。(你知道吗?在 Oracle 里,NULL 和 Empty 的字符串是一样的!)
  • 不要以为 NULL 不需要空间,其需要额外的空间,并且,在你进行比较的时候,你的程序会更复杂。 当然,这里并不是说你就不能使用 NULL 了,现实情况是很复杂的,依然会有些情况下,你需要使用 NULL 值

5、为查询缓存优化你的查询

6、越小的列会越快

7、使用一个对象关系映射器

8、拆分大的 DELETE 或 INSERT 语句

9、在 Join 表的时候使用相当类型的例,并将其索引

10、使用 ENUM 而不是 VARCHAR

11、千万不要 ORDER BY RAND()

12、 选择正确的存储引擎

13、当只要一行数据时使用 LIMIT 1

14、Prepared Statements

15、垂直分割

16、固定长度的表会更快

17、 无缓冲的查询

18、把 IP 地址存成 UNSIGNED INT

19、永远为每张表设置一个 ID

20、为搜索字段建索引

21、 从 PROCEDURE ANALYSE() 取得建议

III.Redis

1、Redis集群如何选择数据库?

Redis集群目前无法做数据库选择,默认在0数据库。

2、Redis回收进程如何工作的?

  • 一个客户端运行了新的命令,添加了新的数据。
  • Redis检查内存使用情况,如果大于maxmemory的限制, 则根据设定好的策略进行回收。
  • 一个新的命令被执行,等等。
  • 所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。

如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越

3、Redis事务其他实现

基于Lua脚本,Redis可以保证脚本内的命令一次性、按顺序地执行,其同时也不提供事务运行错误的回滚,执行过程中如果部分命令运行错误,剩下的命令还是会继续运行完* 基于中间标记变量,通过另外的标记变量来标识事务是否执行完成,读取数据时先读取该标记变量判断是否事务执行完成。但这样会需要额外写代码实现,比较繁琐

4、什么是RedLock

Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性:

  • 安全特性:互斥访问,即永远只有一个 client 能拿到锁
  • 避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 clientcrash 了或者出现了网络分区
  • 容错性:只要大部分 Redis 节点存活就可以正常提供服务

5、Redis主要消耗什么物理资源?

6、Redis有哪些适合的场景?

7、Jedis与Redisson对比有什么优缺点?

8、Redis事务相关的命令有哪几个?

9、Redis的内存淘汰策略有哪些

10、Redis集群的主从复制模型是怎样的?

11、Redis如何做内存优化?

12、锁互斥机制

13、Redis主从架构

14、生产环境中的redis是怎么部署的?

15、说说Redis哈希槽的概念?

16、使用过Redis分布式锁么,它是什么回事?

17、基于代理服务器分片

18、Redis线程模型

19、一个字符串类型的值能存储最大容量是多少?

20、缓存降级

21、可重入加锁机制

22、什么是redis雪崩?

23、redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?

24、你知道有哪些Redis分区实现方案?

25、Redis集群会有写操作丢失吗?为什么?

26、Rediskey的过期时间和永久有效分别怎么设置?

27、Redis集群最大节点个数是多少?

28、Redis的持久化机制是什么?各自的优缺点?

29、为什么要用Redis/为什么要用缓存

30、缓存热点key

31、Redis常见的性能问题和解决方案

32、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都

33、memcached与redis的区别?

34、Redis当中有哪些数据结构

35、Redis集群方案什么情况下会导致整个集群不可用?

36、Redis为什么这么快

37、Redis集群方案应该怎么做?都有哪些方案?

38、Redis集群之间是如何复制的?

39、什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

40、Redis的过期键的删除策略

41、如何选择合适的持久化方式

42、Redis的数据淘汰策略有哪些

43、Redis和Redisson有什么关系?

44、主从数据库不一致如何解决

45、使用redis有哪些好处?

46、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

47、上述Redis分布式锁的缺点

48、Redis支持哪几种数据类型?

49、Redis有哪些数据类型

50、Redis的数据类型?

51、怎么理解Redis事务?

52、Redis是单线程的,如何提高多核CPU的利用率?

53、Redis常见性能问题和解决方案:

54、缓存预热

55、Redis支持的Java客户端都有哪些?官方推荐用哪个?

56、都有哪些办法可以降低Redis的内存使用情况呢?

57、Redis事务的概念

58、什么是Redis?简述它的优缺点?

59、Redis如何实现延时队列

60、Redis的应用场景

61、为什么Redis需要把所有数据放到内存中?

62、Redis与memcached相比有哪些优势?

63、Redis的内存用完了会发生什么?

64、使用Redis做过异步队列吗,是如何实现的

65、使用过Redis做异步队列么,你是怎么用的?有什么缺点?

66、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?

67、Redis是单进程单线程的?

68、什么是redis穿透?

69、如何解决Redis的并发竞争Key问题

70、为什么要用Redis而不用map/guava做缓存?

71、Redis如何设置密码及验证密码?

72、Redis持久化数据和缓存怎么做扩容?

73、Redis分区有什么缺点?

74、如果有大量的key需要设置同一时间过期,一般需要注意什么?

75、使用过Redis分布式锁么,它是怎么实现的?

76、watchdog自动延期机制

77、一个Redis实例最多能存放多少的keys?List

78、Redis官方为什么不提供Windows版本?

79、

80、Redis最适合的场景?

81、基于客户端分配

82、缓存与数据库不一致怎么办

83、什么是Redis?

84、Redis事务保证原子性吗,支持回滚吗

85、redis过期策略都有哪些?LRU算法知道吗?写一下java代码实现?

86、在选择缓存时,什么时候选择redis,什么时候选择memcached

87、Redis有哪些优缺点?

88、释放锁机制

89、热点数据和冷数据

90、Redis的同步机制了解么?

91、知道redis的持久化吗?底层如何实现的?有什么优点缺点?

92、什么是事务?

93、Redis事务的三个阶段

94、为什么要做Redis分区?

95、redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的

96、Memcache与Redis的区别都有哪些?

97、Redis事务支持隔离性吗

98、Redis过期键的删除策略?

99、怎么测试Redis的连通性?

100、使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?

101、官方RedisCluster方案(服务端路由查询)

102、使用过Redis做异步队列么,你是怎么用的?

103、分布式Redis是前期做还是后期规模上来了再做好?为什么?

104、事务管理(ACID)概述

105、Redis实现分布式锁

106、Redis相比Memcached有哪些优势?

107、Redis有哪几种数据淘汰策略?

108、加锁机制

109、Redis事务相关命令

110、是否使用过Redis集群,集群的原理是什么?

111、我们知道通过expire来设置key的过期时间,那么对过期的数据怎么处理呢?

112、Pipeline有什么好处,为什么要用pipeline?

113、Redis中的管道有什么用?

114、如何实现集群中的session共享存储?

115、Redis的回收策略(淘汰策略)?

IV.SQL优化

1、Mysql表中允许有多少个TRIGGERS?

在 Mysql 表中允许有六个触发器,如下:

  • BEFORE INSERT
  • AFTER INSERT
  • BEFORE UPDATE
  • AFTER UPDATE
  • BEFORE DELETE
  • AFTER DELETE

2、如果一个表有一列定义为TIMESTAMP,将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳。

3、可以使用多少列创建索引?

任何标准表最多可以创建 16 个索引列。

4、mysql里记录货币用什么字段类型好

III.Spring MVC

6、如何定义REGEXP?

7、Mysql中有哪几种锁?

8、如何显示前50行?

9、列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?

10、什么是通用SQL函数?

11、如何使用Unixshell登录Mysql?

12、Mysql的技术特点是什么?

13、怎样才能找出最后一次插入时分配了哪个自动增量?

14、如何获取当前的Mysql版本?

15、在Mysql中ENUM的用法是什么?

16、ISAM是什么?

17、TIMESTAMP在UPDATECURRENT_TIMESTAMP数据类型上做什么?

18、CHAR和VARCHAR的区别?

19、myisamchk是用来做什么的?

20、列的字符串类型可以是什么?

21、如何在Unix和Mysql时间戳之间进行转换?

22、MYSQL支持事务吗?

23、mysql有关权限的表都有哪几个?

24、列对比运算符是什么?

25、MyISAM表格将在哪里存储,并且还提供其存储格式?

26、MYSQL数据库服务器性能分析的方法命令有哪些?

27、InnoDB是什么?

28、我们如何得到受查询影响的行数?

29、什么样的对象可以使用CREATE语句创建?

30、我们如何在mysql中运行批处理模式?

31、NOW()和CURRENT_DATE()有什么区别?

32、mysql_fetch_array和mysql_fetch_object的区别是什么?

33、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?

34、MYSQL数据表在什么情况下容易损坏?

35、如何输入字符为十六进制数字?

36、LIKE声明中的%和_是什么意思?

37、什么是非标准字符串类型?

38、主键和候选键有什么区别?

39、Mysql中有哪些不同的表格?

40、Mysql驱动程序是什么?

41、与Oracle相比,Mysql有什么优势?

42、Mysql查询是否区分大小写?

43、Mysql中使用什么存储引擎?

44、区分CHAR_LENGTH和LENGTH?

45、Heap表是什么?

46、如何控制HEAP表的最大尺寸?

47、LIKE和REGEXP操作有什么区别?

48、你怎么看到为表格定义的所有索引?

49、如何区分FLOAT和DOUBLE?

50、Mysql服务器默认端口是什么?

51、解释访问控制列表

52、MyISAMStatic和MyISAMDynamic有什么区别?

53、请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

54、federated表是什么?

55、Mysql如何优化DISTINCT?

V.大数据

1、 Hadoop 的核心配置是什么?

2、 如何确定 hadoop 集群的健康状态

3、 简述 hadoop 的调度器

4、 Hive 你们用的是外部表还是内部表,有没有写过 UDF,hive 的版本

5、 解决下面的错误

6、 大数据面试汇总

7、你们数据库怎么导入 hive 的,有没有出现问题

8、hadoop 中 Combiner 的作用?

9、举一个简单的例子说明 mapreduce 是怎么来运行的 ?

10、用 mapreduce 来实现下面需求?

11、 combiner 出现在那个过程

12、 用 mapreduce 怎么处理数据倾斜问题?

13、 Redis,传统数据库,hbase,hive 每个之间的区别

14、 生产环境中为什么建议使用外部表?

15、“jps”命令的用处?

16、那当下又该如何配置?

17、 基站逗留时间

18、 datanode 在什么情况下不会备份

19、 shuffle 阶段,你怎么理解的

20、 一键执行

21、 实时流式计算 的结果内容有哪些,你们需要统计出来 么

22、 hadoop 框架中怎么来优化

23、mapreduce 的原理?

24、 我们开发 job 时,是否可以去掉 reduce 阶段。

25、公司技术选型可能利用 storm 进行实时计算,讲解一下 storm

26、 hbase 的 rowkey 怎么创建好?列族怎么创建比较 好?

27、 面试问题:

28、京东商城 - 大数据

29、Hbase 的特性,以及你怎么去设计 rowkey 和 columnFamily ,怎么去建一个 table

30、 hdfs 的体系结构

31、 不同语言的优缺点

32、 写出下面的命令

33、 请列出 hadoop 进程名

34、 3 个 datanode 中有一个 datanode 出现错误会怎样?

35、 脚本替换

36、 combiner 和 partition 的作用

37、唯一难住我的是他说实时计算,storm 如果碰上了复杂 逻辑,需要算很长的时间,你怎么去优化,怎么保证实时性

38、 HDFS 存储的机制?

39、 hive 内部表和外部表的区别

40、 列出你开发 mapreduce 的语言

41、简述 hadoop 安装

42、 共同朋友

43、 hive 有哪些保存元数据的方式,个有什么特点。

44、Mapreduce 的 map 数量 和 reduce 数量 怎么确 定 ,怎么配置

45、 描述一下 hadoop 中,有哪些地方使用了缓存机制, 作用分别是什么?

46、 书写程序

47、一个 datanode 宕机,怎么一个流程恢复

七、微服务专题面试

I.Spring Cloud

1、 SpringCloud主要项目

2、 什么是Feign?

3、 服务降级底层是如何实现的?

4、 什么是Eureka的自我保护模式,

5、 SpringBoot和SpringCloud的区别?

6、 Ribbon和Feign调用服务的区别

7、 Eureka怎么实现高可用

8、@LoadBalanced注解的作用

9、 Zuul网关如何搭建集群

10、 Ribbon底层实现原理

11、 常用网关框架有那些?

12、Spring Cloud Consul

13、 什么是Eureka

14、 既然Nginx可以实现网关?为什么还需要使用Zuul框架

15、 什么是Spring Cloud Config?

16、 什么是 Spring Cloud Bus?

17、Spring Cloud Security

18、Spring Cloud Config

19、 Zuul与Nginx有什么区别?

20、 使用 Spring Boot 开发分布式微服务时,我们面临什么问题

21、 什么是网关?

22、 分布式配置中心的作用?

23、Spring Cloud Gateway

24、 Spring Cloud和SpringBoot版本对应关系

25、 如何设计一套API接口

26、什么是 Spring Cloud Bus?我们需要它吗?

27、Spring Cloud Zookeeper

28、 服务雪崩效应产生的原因

29、Spring Cloud Sleuth

30、 SpringCloud的优缺点

31、 什么是Spring Cloud Gateway?

32、 Spring Cloud 和dubbo区别?

33、 什么是微服务架构

34、 Spring Cloud和SpringBoot版本对应关系

35、什么是 Hystrix 断路器?我们需要它吗?

36、 为什么需要学习Spring Cloud

37、 什么是Spring Cloud Zuul(服务网关)

38、 Nginx与Ribbon的区别

39、 谈谈服务降级、熔断、服务隔离

40、 Spring Cloud 是什么

41、 ZuulFilter常用有那些方法

42、 SpringCloud Config 可以实现实时刷新吗?

43、Spring Cloud Stream

44、Spring Cloud OpenFeign

45、 分布式配置中心有那些框架?

46、什么是 Hystrix?它如何实现容错?

47、 什么是 Hystrix?

48、 服务注册和发现是什么意思?Spring Cloud 如何实现?

49、 DiscoveryClient的作用

50、什么是 Netflix Feign?它的优点是什么?

51、 负载平衡的意义什么?

52、 如何实现动态Zuul网关路由转发

53、服务注册和发现是什么意思?Spring Cloud 如何实现?

54、 在微服务中,如何保护服务?

55、 什么是断路器

56、 Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别

57、Spring Cloud的版本关系

58、Spring Cloud Bus

59、Spring Cloud Netflix(重点,这些组件用的最多)

60、 谈谈服务雪崩效应

61、Spring Cloud Task

62、 SpringCloud有几种调用接口方式

63、 SpringCloud由什么组成

64、负载平衡的意义什么?

65、 Spring Cloud和各子项目版本对应关系

66、 网关的作用是什么

67、 网关与过滤器有什么区别

68、 Ribbon是什么?

II.Spring Boot

1、 SpringBoot微服务中如何实现 session 共享 ?

2、什么是 WebSockets?

3、 SpringBoot多数据源事务如何管理

4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

5、什么是 Apache Kafka?

6、 如何实现 Spring Boot 应用程序的安全性?

7、如何集成 Spring Boot 和 ActiveMQ?

8、 SpringBoot的自动配置原理是什么

9、 我们如何监视所有 Spring Boot 微服务?

10、 Spring Boot 中的监视器是什么?

11、如何激活某个环境的配置?

12、 Spring Boot 有哪几种读取配置的方式?

13、 SpringBoot与SpringCloud 区别

14、什么是yaml?

15、什么是 Spring Batch?

16、 Spring Boot 是否可以使用 XML 配置 ?

17、 SpringBoot多数据源拆分的思路

18、 为什么要用SpringBoot

19、 SpringBoot如何实现打包

20、如何实现 Spring Boot 应用程序的安全性?

21、如何使用 Spring Boot 实现异常处理?

22、SpringBoot启动方式?

23、 比较一下 Spring Security 和 Shiro 各自的优缺点 ?

24、 什么是 JavaConfig?

25、如何在自定义端口上运行 Spring Boot 应用程序?

26、SpringBoot支持配置文件的格式?

27、获得Bean装配报告信息访问哪个端点?

28、 您使用了哪些 starter maven 依赖项?

29、 如何使用 Spring Boot 实现全局异常处理?

30、SpringBoot自动配置原理?

31、 SpringBoot支持什么前端模板,

32、 YAML 配置的优势在哪里 ?

33、Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

34、什么是 CSRF 攻击?

35、针对请求访问的几个组合注解?

36、SpringBoot异常处理相关注解?

37、 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署

38、 什么是 Spring Profiles?

39、我们如何监视所有 Spring Boot 微服务?

40、 Async异步调用方法

41、SpringBoot集成Mybatis?

42、 运行 Spring Boot 有哪几种方式?

43、SpringBoot启动类注解?它是由哪些注解组成?

44、 SpringBoot 实现热部署有哪几种方式?

45、SpringBoot需要独立的容器运行?

46、Spring Boot 中的监视器是什么?

47、如何在 Spring Boot 中禁用 Actuator 端点安全性?

48、SpringBoot热部署方式?

49、 保护 Spring Boot 应用有哪些方法?

50、SpringBoot读取配置相关注解有?

51、 什么是SpringBoot?

52、什么是 Spring Profiles?

53、 Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

54、 Spring Boot 中如何解决跨域问题 ?

55、SpringBoot如何兼容Spring项目?

56、 你如何理解 Spring Boot 配置加载顺序?

57、 开启 Spring Boot 特性有哪几种方式?

58、 SpringBoot事物的使用

59、 Spring Boot 中如何实现定时任务 ?

60、 如何在 Spring Boot 启动的时候运行一些特定的代码?

61、开启SpringBoot特性的几种方式?

62、如何使用 Spring Boot 实现分页和排序?

63、 SpringBoot性能如何优化

64、编写测试用例的注解?

65、什么是 AOP?

66、什么是 JavaConfig?

67、 Spring Boot 需要独立的容器运行吗?

68、 什么是 YAML?

69、 SpringBoot的特征?

70、什么是 Swagger?你用 Spring Boot 实现了它吗?

71、SpringBoot配置监控?

72、SpringBoot配置途径?

73、不同的环境的配置文件?

74、您使用了哪些 starter maven 依赖项?

75、查看发布应用信息访问哪个端点?

76、 spring-boot-starter-parent 有什么用 ?

77、 Spring Boot 中的 starter 到底是什么 ?

78、什么是 YAML?

79、SpringBoot如何修改端口号?

80、关闭应用程序访问哪个端点?

81、什么是 FreeMarker 模板?

82、如何快速构建一个SpringBoot项目?

83、 SpringBoot Starter的工作原理

84、SpringBoot 中的starter?

85、 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

86、 SpringBoot的缺点

87、 Spring Boot 有哪些优点?

88、什么是SpringProfiles?

III.Spring MVC

1、介绍一下 WebApplicationContext:

2、SpringMVC 工作原理?

3、如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?

4、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?

5、 @RequestMapping 注解用在类上面有什么作用?

6、SpringMvc 中函数的返回值是什么?

7、Spring MVC用什么对象从后台向前台传递数据的?

8、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

9、SpringMVC 流程?

10、Spring MVC的主要组件?

11、@ResponseBody注解的作用?

12、SpringMvc 里面拦截器是怎么写的

13、我想在拦截的方法里面得到从前台传入的参数,怎么得到?

14、当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理?

15、@Controller注解的作用?

16、怎样在方法里面得到Request,或者Session?

17、SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?

18、Spring MVC里面拦截器是怎么写的?

19、怎么样把 ModelMap 里面的数据放入 Session 里面?

20、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置

21、如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?

22、Spring MVC怎么样设定重定向和转发的?

23、Spring MVC的异常处理?

24、SpringMVC 怎么样设定重定向和转发的?

25、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?

26、SpringMvc 怎么和 AJAX 相互调用的?

27、SpringMvc 用什么对象从后台向前台传递数据的?

28、怎么样把某个请求映射到特定的方法上面?

29、Spring MVC中函数的返回值是什么?

30、Spring MVC与Struts2区别:

31、如何解决POST请求中文乱码问题,GET的又如何处理呢?

32、@RequestMapping注解的作用?

33、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?

34、@PathVariable和@RequestParam的区别:

35、什么是Spring MVC?简单介绍下你对Spring MVC的理解?

36、什么是Spring MVC框架的控制器?

37、SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?

38、怎么样在方法里面得到 Request,或者 Session?

39、Spring MVC常用的注解有哪些?

40、讲下 SpringMvc 的执行流程

41、什么是DispatcherServlet?

42、请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

43、Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

44、MVC是什么?MVC设计模式的好处有哪些

45、怎么样把ModelMap里面的数据放入Session里面?

46、Spring MVC怎么和AJAX相互调用的?

47、Spring MVC的优点

48、注解原理是什么?

49、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

IV.Spring

1、控制反转(IOC)有什么作用

2、在Spring框架中如何更有效地使用JDBC?

3、什么是bean装配?

4、如何用基于XML配置的方式配置Spring?

5、Spring的俩大核心概念

6、XMLBeanFactory

7、@RequestMapping注解有什么用?

8、Spring框架中的单例Beans是线程安全的么?

9、怎样开启注解装配?

10、如何给Spring容器提供配置元数据?Spring有几种配置方式

11、JDK动态代理和CGLIB动态代理的区别

12、SpringAOPandAspectJAOP有什么区别?AOP有哪些实现方式?

13、什么是织入。什么是织入应用的不同点?

14、Spring框架中都用到了哪些设计模式?

15、Spring通知有哪些类型?

16、springDAO有什么用?

17、什么是AOP

18、请举例解释@Autowired注解?

19、解释基于注解的切面实现

20、解释Spring框架中bean的生命周期

21、使用Spring有哪些方式?

22、哪些是重要的bean生命周期方法?你能重载它们吗?

23、Spring如何设计容器的,BeanFactory和ApplicationContext的关系详解

24、@Controller注解

25、什么是基于注解的容器配置?

26、Spring支持的事务管理类型,spring事务实现方式有哪些?

27、解释一下SpringAOP里面的几个名词

28、解释不同方式的自动装配,spring自动装配bean有哪些方式?

29、什么是SpringIOC容器?

30、@Qualifier注解

31、Spring框架中有哪些不同类型的事件

32、ApplicationContext通常的实现是什么?

33、请解释自动装配模式的区别?

34、@RequestMapping注解

35、依赖注入的基本原则

36、@Required注解

37、@Autowired注解有什么作用

38、有几种不同类型的自动代理?

39、Spring框架的事务管理有哪些优点?

40、Spring由哪些模块组成?

41、如何开启基于注解的自动装配?

42、一个Spring的应用看起来象什么?

43、如何用基于Java配置的方式配置Spring?

44、一个SpringBean定义包含什么?

45、BeanFactory–BeanFactory实现举例

46、在SpringAOP中,关注点和横切关注的区别是什么?在springaop中concern和cross-cuttingconcern的不同之处

47、Spring的IOC支持哪些功能

48、你更倾向用那种事务管理类型?

49、在SpringAOP中,关注点和横切关注的区别是什么?

50、请举例解释@Required注解?

51、什么是Springinnerbeans?

52、什么是Spring的依赖注入?

53、你怎样定义类的作用域?

54、Spring框架中的单例bean是线程安全的吗?

55、自动装配有哪些局限性?

56、什么是Spring的MVC框架?

57、BeanFactory和ApplicationContext有什么区别?

58、说一下Spring的事务传播行为

59、IOC容器对Bean的生命周期

60、有哪些不同类型的依赖注入实现方式?

61、你可以在Spring中注入一个null和一个空字符串吗?

62、FileSystemResource和ClassPathResource有何区别?

63、@Qualifier注解有什么作用

64、什么是spring?

65、解释AOP

66、有哪些不同类型的IOC(依赖注入)方式?

67、什么是切面Aspect?

68、什么是控制反转(IOC)?什么是依赖注入?

69、使用Spring通过什么方式访问Hibernate?使用Spring访问Hibernate的方法有哪些?

70、什么是Springbeans?

71、SpringBean的作用域之间有什么区别?

72、如何给Spring容器提供配置元数据?

73、Bean工厂和Applicationcontexts有什么区别?

74、如何通过HibernateDaoSupport将Spring和Hibernate结合起来?

75、Spring框架中有哪些不同类型的事件?

76、请解释SpringBean的生命周期?

77、Spring如何处理线程并发问题?

78、Spring有哪些应用场景

79、解释AOP模块

80、解释对象/关系映射集成模块

81、什么是Spring框架?Spring框架有哪些主要模块?

82、什么是bean的自动装配?

83、什么是Spring的内部bean?

84、什么是SpringMVC框架的控制器?

85、什么是代理?

86、IOC的优点是什么?

87、构造器依赖注入和Setter方法注入的区别

88、依赖注入有什么优势

89、Spring事务的实现方式和实现原理

90、Spring框架的设计目标,设计理念,和核心是什么

91、解释不同方式的自动装配

92、请解释SpringBean的自动装配?

93、JdbcTemplate

94、Aspect切面

95、DispatcherServlet

96、Spring在运行时通知对象

97、在Spring中如何注入一个java集合?

98、使用Spring框架的好处是什么?

99、Spring基于xml注入bean的几种方式

100、哪种依赖注入方式你建议使用,构造器注入,还是Setter方法注入?

101、springJDBCAPI中存在哪些类?

102、详细讲解一下核心容器(springcontext应用上下文)模块

103、@Autowired注解

104、连接点

105、请举例说明@Qualifier注解?

106、@Required注解有什么作用

107、解释Spring支持的几种bean的作用域

108、什么是引入?

109、切点

110、Spring支持的ORM

111、Spring只支持方法级别的连接点

112、使用Spring通过什么方式访问Hibernate?

113、开发中主要使用Spring的什么技术?

114、在Spring中如何配置Bean?

115、JdbcTemplate是什么

116、Spring配置文件包含了哪些信息

117、什么是基于Java的Spring注解配置?给一些注解的例子

118、简述AOP和IOC概念AOP

119、Spring对DAO的支持

120、Spring应用程序有哪些不同组件?

121、如何向SpringBean中注入一个Java

122、使用Spring框架能带来哪些好处?

123、解释基于XMLSchema方式的切面实现

124、请解释下Spring框架中的IoC?

125、@Autowired和@Resource之间的区别

126、Spring支持的事务管理类型

127、什么是目标对象?

128、@Component,@Controller,@Repository,@Service有何区别?

129、解释WEB模块

130、SpringIOC的实现机制

131、通知

132、请举例说明如何在Spring中注入一个JavaCollection?

133、WebApplicationContext

134、解释JDBC抽象和DAO模块

135、Spring有几种配置方式?

136、说一下spring的事务隔离?

137、什么是Spring的内部bean?什么是Springinnerbeans?

138、核心容器(应用上下文)模块

139、构造方法注入和设值注入有什么区别?

140、Spring配置文件

141、Spring的优缺点是什么?

142、怎样用注解的方式配置Spring?

143、使用@Autowired注解自动装配的过程是怎样的?

八、中间件专题面试

I.ActiveMQ

1、 消息的不均匀消费。

2、 ActiveMQ 服务器宕机怎么办?

3、什么是 ActiveMQ?

4、 持久化消息非常慢。

5、 死信队列。

6、 丢消息怎么办?

7、 ActiveMQ 中的消息重发时间间隔和重发次数吗?

II.Kafka

1、Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中

2、Kafka 新建的分区会在哪个目录下创建

3、Kafka 高效文件存储设计特点:

4、Kafka 的消费者如何消费数据

5、Kafka 判断一个节点是否还活着有那两个条件?

6、Kafa consumer 是否可以消费指定分区消息?

7、数据有序

8、kafaka 生产数据时数据的分组策略

9、producer 是否直接将数据发送到 broker 的 leader(主节点)?

10、消费者负载均衡策略

11、Kafka 消息是采用 Pull 模式,还是 Push 模式?

12、Kafka 与传统消息系统之间有三个关键区别

13、数据传输的事物定义有哪三种?

14、kafka 的 ack 机制

15、partition 的数据如何保存到硬盘

16、Kafka 的设计时什么样的呢?

17、Kafka 存储在硬盘上的消息格式是什么?

III.RabbitMQ

1、在单node系统和多node构成的cluster系统中声明queue、exchange,以及

2、能够在地理上分开的不同数据中心使用RabbitMQcluster么?

3、RabbitMQ中的cluster、mirroredqueue,以及warrens机制分别用于解决什么问题?

4、消息基于什么传输?

5、RabbitMQ基本概念

6、RabbitMQ概念里的channel、exchange和queue这些东东是逻辑概念,还是对应着进程实体?

7、如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?

8、durable属性,是否能够成功从其他node上重新声明该queue?

9、解耦、异步、削峰是什么?。

10、消息怎么路由?

11、若cluster中拥有某个queue的ownernode失效了,且该queue被声明具有

12、cluster中node的失效会对consumer产生什么影响?

13、设计MQ思路

14、RAMnode和disknode的区别?

15、RabbitMQ的工作模式

16、如何防止出现blackholed问题?

17、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?

18、什么是RabbitMQ?

19、什么情况下producer不主动创建queue是安全的?

20、你说下RocketMQ的负载均衡是如何实现的?

21、RabbitMQ允许发送的message最大可达多大?

22、如何保证高可用的?RabbitMQ的集群

23、为什么不应该对所有的message都使用持久化机制?

24、如何保证RabbitMQ消息的顺序性?

25、为什么heavyRPC的使用场景下不建议采用disknode?

26、如何保证RabbitMQ消息的可靠传输?

27、向不存在的exchange发publish消息会发生什么?

28、消息队列有什么缺点

29、什么是元数据?元数据分为哪些类型?包括哪些内容?

30、vhost是什么?起什么作用?

31、为什么说保证message被可靠持久化的条件是queue和exchange具有durable属性,同时message具有persistent属性才行?

32、MQ有哪些常见问题?如何解决这些问题?

33、进行binding会有什么不同?

34、routing_key和binding_key的最大长度是多少?

35、RabbitMQ中的broker是指什么?cluster又是指什么?

36、RabbitMQ上的一个queue中存放的message是否有数量限制?

37、Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优缺点?

38、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?

39、消息如何分发?

40、你们公司生产环境用的是什么消息中间件?

41、客户端连接到cluster中的任意node上是否都能正常工作?

42、什么情况下会出现blackholed问题?

43、rabbitmq的使用场景

44、MQ的优点

45、“deadletter”queue的用途?

46、ConsumerCancellationNotification机制用于什么场景?

IV.Zookeeper

1、机器中为什么会有leader?

2、Zookeeper分布式锁(文件系统、通知机制)

3、zookeeper负载均衡和nginx负载均衡区别

4、zk节点宕机如何处理?

5、四种类型的数据节点Znode

6、Zookeeper的java客户端都有哪些?

7、ZooKeeper提供了什么?

8、Zookeeper同步流程

9、客户端回调Watcher

10、zookeeper是如何保证事务的顺序一致性的?

11、说一下ZookeeperWatcher机制

12、ZookeeperWatcher机制–数据变更通知

13、Zookeeper有哪几种几种部署模式?

14、服务端处理Watcher的流程?

15、chubby是什么,和zookeeper比你怎么看?

16、服务器有哪些角色?

17、Zookeeper节点宕机如何处理?

18、Zookeeper的典型应用场景

19、会话管理

20、数据同步

21、服务端处理Watcher实现

22、客户端注册Watcher实现

23、Zookeeper下Server工作状态有哪些?

24、ZAB和Paxos算法的联系与区别?

25、客户端回调Watcher流程?

26、ACL权限控制机制

27、Zookeeper和Dubbo的关系?

28、Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?

29、说几个zookeeper常用的命令。

30、集群支持动态添加机器吗?

31、说说ZAB协议?

32、ZooKeeper是什么?

33、zk的命名服务(文件系统)

34、Zookeeper下Server工作状态

35、ZooKeeper和dubbo的区别?

36、Zookeeper都有哪些功能?

37、ZAB协议?

38、集群最少要几台机器,集群规则是怎样的?集群中有3台服务器,其中一个节点宕机,这个时候Zookeeper还可以使用吗?

39、Zookeeper集群管理(文件系统、通知机制)

40、Zookeeper通知机制

41、说一下Zookeeper的通知机制?

42、zk的配置管理(文件系统、通知机制)

43、zookeeper是如何选取主leader的?

44、分布式集群中为什么会有Master主节点?

45、ZookeeperWatcher机制--数据变更通知

46、zookeeperwatch机制

47、Chroot特性

48、Zookeeper工作原理

49、分布式集群中为什么会有Master?

50、集群最少要几台机器,集群规则是怎样的?

51、什么是Chroot?

52、Zookeeper怎么保证主从节点的状态同步?

53、服务器角色

54、分布式通知和协调

55、Zookeeper数据复制

56、说说ACL权限控制机制

57、Zookeeper队列管理(文件系统、通知机制)

58、Znode有哪些类型

59、获取分布式锁的流程

60、Zookeeper文件系统

61、四种类型的znode

62、Zookeeper的典型应用场景?

63、Zookeeper做了什么?

64、客户端注册Watcher的流程?

总结

以上就是小编给大家分享的干货,关注公众号:麒麟改bug获取答案解析,希望能帮助到正在准备面试的朋友们,顺顺利利找到自己心仪的工作,fighting!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、Java基础专题面试
  • I.Java基础
  • 1、何为编程
  • 2、面向对象和面向过程的区别
  • 面向过程
  • 面向对象
  • 3、什么是Java
  • 4、Java 语言有哪些特点
  • II.Java集合
  • 1、Array 和 ArrayList 有何区别?
  • 2、常用的集合类有哪些?
  • 3、Collection 和 Collections 有什么区别?
  • 4、什么是链表
  • 1、Java异常关键字
  • 3、常见异常处理方式
  • IV.Linux面试题
  • 1、 什么是CLI?
  • 2、 什么是硬链接和软链接?
  • V.Git命令
  • VI.设计模式
  • VII.网络编程
  • 二、Java并发专题面试
  • I.多线程
  • 1、启动线程方法 start()和 run()有什么区别?
  • 2、Java 实现线程有哪几种方式?
  • 3、用 Java 实现阻塞队列。
  • 4、Java 中你怎样唤醒一个阻塞的线程?
  • II.Java并发编程
  • 1、 synchronized 和 volatile 的区别是什么?
  • 2、 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
  • 3、 如何在两个线程间共享数据?
  • 4、 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
  • III.Java虚拟机
  • 1、类加载器双亲委派模型机制?
  • 2、深拷贝和浅拷贝
  • 3、简述Java垃圾回收机制
  • 4、你能给我详细的介绍Java堆吗?(重点理解)
  • 三、Java框架专题面试
  • I.开源框架
  • 1、Spring IOC 如何实现
  • 2、说说业务中,Netty 的使用场景
  • 3、Spring MVC 运行流程
  • 4、为什么选择 Netty
  • II.Mybatis面试
  • 1、通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
  • 3、MyBatis编程步骤是什么样的?
  • 4、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
  • 5、Xml映射文件中,除了常见的select|insert|update|delete标签之外,还有哪些标签?
  • 四、Java性能调优专题面试
  • I.Netty
  • 1、IO多路转接(I/Omultiplexing)
  • 2、了解哪几种序列化协议?
  • 3、线程池解决多线程BIO编程会出现的问题
  • 4、如何选择序列化协议?
  • II.Nginx
  • 1、请列举Nginx的一些特性
  • 2、请解释你如何通过不同于80的端口开启Nginx?
  • 3、Nginx静态资源?
  • 4、请解释ngx_http_upstream_module的作用是什么?
  • III.Tomcat
  • 1、内存调优
  • 2、Tomcat一个请求的完整过程
  • 3、tomcat容器是如何创建servlet类实例?用到了什么原理?
  • 4、专业点的分析工具有
  • IV.悲观锁于乐观锁
  • 1、只能保证一个共享变量的原子操作
  • 2、悲观锁
  • 3、乐观锁常见的两种实现方式
  • 4、循环时间长开销大
  • 五、分布式专题面试
  • I.Dubbo
  • 1、Dubbo支持哪些序列化方式?
  • 2、RMI协议
  • 3、服务调用超时会怎么样?
  • 4、为什么要用Dubbo?
  • II.ElasticSearch
  • 1、lucence内部结构是什么?
  • 2、elasticsearch是如何实现master选举的
  • 3、Elasticsearch中的节点(比如共20个),其中的10个
  • III.Memcache
  • 1、如何实现集群中的session共享存储?
  • 4、Memcached是什么,有什么作用?
  • 六、数据库专题面试
  • 1、 小心“永久链接”
  • I.MongoDB
  • 1、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
  • 2、32位系统上有什么细微差别?
  • 3、如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
  • 4、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
  • 5、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
  • II.MySQL
  • 1、区分CHAR_LENGTH和LENGTH?
  • 2、如何区分FLOAT和DOUBLE?
  • 3、简述在MySQL数据库中MyISAM和InnoDB的区别
  • 4、Mysql中有哪些不同的表格?
  • 5、ISAM是什么?
  • MySQL 性能优化的 21 个最佳实践
  • 1、 小心“永久链接”
  • 2、避免 SELECT *
  • 3、 EXPLAIN 你的 SELECT 查询
  • 4、 尽可能的使用 NOT NULL
  • III.Redis
  • 1、Redis集群如何选择数据库?
  • 2、Redis回收进程如何工作的?
  • 3、Redis事务其他实现
  • 4、什么是RedLock
  • IV.SQL优化
  • 1、Mysql表中允许有多少个TRIGGERS?
  • 2、如果一个表有一列定义为TIMESTAMP,将发生什么?
  • 3、可以使用多少列创建索引?
  • 4、mysql里记录货币用什么字段类型好
  • III.Spring MVC
  • V.大数据
  • 七、微服务专题面试
  • I.Spring Cloud
  • II.Spring Boot
  • III.Spring MVC
  • IV.Spring
  • 八、中间件专题面试
  • I.ActiveMQ
  • II.Kafka
  • III.RabbitMQ
  • IV.Zookeeper
  • 总结
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档