做了5年的Java开发,面个试都面不明白???

68 阅读19分钟

现在的java面试大环境,基本很多水平不突出的人天天都在和面试打交道,有些频繁的都已经从内向面成外向了,也有些因为不了解面试的近况,到嘴的鸭子飞了,场景题 八股 项目 这些基本你不面大厂就是这点内容,无非就是一场面试中,你不确定这茫茫题海中会抽中什么样的题而已!

方法1:看面经,但是中小型公司找到面经的概率就很小,导致无从下手,只能看个人运气

方法2:从网上找到一些新的题目开始刷题,但找来的都是乱七八糟,毫无意义!

作为一个7年的java开发,今天告诉你们 公司最近的面试内容,一些技术水平一般的需要在哪些方面做准备,不怕头铁,就怕头铁不自知!

本次分享涵盖内容较多:Java基础,JVM,多线程,数据库(MySQL/Redis)SSM,Dubbo,网络,MQ,Zookeeper,Netty,微服务,大数据,算法,项目,设计模式等,篇幅足足近2千页,面试必不可少——刷题!

Spring Boot面试题

50、springboot集成mybatis的过程

51、Spring Boot、Spring MVC和 Spring 有什么区别?

52、什么是Spring Boot Stater?

53、Spring Boot 还提供了其它的哪些 Starter Project Options?

54、Spring是如何快速创建产品就绪应用程序的?

55、创建一个Spring Boot Project 的最简单的方法是什么?

56、Spring Initializr是创建 Spring Boot Projects 的唯一方法吗?

57、如何使用SpringBoot自动重装我的应用程序?

58、什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?

59、如何在Spring Boot 中添加通用的JS代码?

60、什么是Spring Date?

61、什么是Spring Data REST?

62、path="users",collectionResourceRel="users"如何与Spring Data Rest一起使用?

63、当Spring Boot应用程序作为Java应用程序运行时,后台会发生什么?

64、我们能否在spring-boot-starter-web 中用jetty代替tomcat?

65、如何使用Spring Boot生成一个WAR文件?

66、如何使用Spring Boot部署到不同的服务器?

67、RequestMapping 和 GetMapping 的不同之处在哪里?

68、为什么我们不建议在实际的应用程序中使用SpringDataRest?

69、在Spring Initializer 中,如何改变一个项目的包名字?

70、可以配置application.propertierde的完整的属性列表在哪里可以找到?

71、JPA和Hibernate 有哪些区别?

72、使用SpringBoot启动连接到内存数据库H2的JPA应用程序需要哪些依赖项?

73、如何不通过任何配置来选择Hibernate作为JPA的默认实现?

74、指定的数据库连接信息在哪里?它是如何知道自动连接至H2的?

75、我们如何连接一个像MSSQL或者orcale一样的外部数据库?

76、SpringBoot配置的默认H2数据库的名字是上面?为什么默认的数据库名字是testdb?

77、如果H2不在类路径里面,会出现上面情况?

78、你能否举一个以ReadOnly为事务管理的例子?

79、发布Spring Boot 用户应用程序自定义配置的最好方法是什么?

80、配置文件的需求是什么?

81、如何使用配置文件通过SpringBoot配置特定环境的配置?

82、我们如何使用Maven设置SpringBoot应用程序?

83、如何禁用特定的自动配置?

84、Spring boot支持哪些外部配置?

85、如何对Spring Boot应用进行测试?

86、Spring Boot Actuator有什么用?

87、SpringBoot 中静态首页默认位置可以放在哪里?

89、SpringBoot 中静态资源直接映射的优先级是怎样的?

90、继承WebMvcConfigurerAdapter抽象类,常用的重写方法列举几个?

Mysql面试题

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

42、MySQL如何优化 DISTINCT?

43、如何显示前50行?

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

45、NOWO和CURRENT_DATE有什么区别?

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

47、什么是通用SQL函数?

48、MySQL支持事务吗?

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

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

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

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

53、锁的优化策略

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

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

56、实践中如何优化MySQL

57、优化数据库的方法

58、简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)

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

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

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

62、存储时期

63、对于关系型数据库而言,索引是相当重要的概念,请回答有关索引的几个问题

64、解释MySQL外连接、内连接与自连接的区别

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

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

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

68、什么是锁?

69、什么叫视图?游标是什么?

70、什么是存储过程?用什么来调用?

71、如何通俗地理解三个范式?

72、什么是基本表?什么是视图?

73、试述视图的优点?

74、NULL是什么意思

75、主键、外键和索引的区别?

76、你可以用什么来确保表格里的字段只接受特定范围里的值?

77、说说对SQL语句优化有哪些方法?(选择几条)

78、什么是乐观锁

79、什么是悲观锁

80、什么是时间戳

Redis面试题

10、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

11、热点数据和冷数据是什么

12、单线程的redis为什么这么快

13、redis的数据类型,以及每种数据类型的使用场景

14、redis的过期策略以及内存淘汰机制

15、Redis常见性能问题和解决方案?

16、为什么Redis的操作是原子性的,怎么保证原子性的?

17、Redis事务

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

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

20、redis过期键的删除策略?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

37、怎么理解 Redis事务?

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

39、Redis key的过期时间和永久有效分别怎么设置?

40、Redis如何做内存优化?

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

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

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

44、一个Redis实例最多能存放多少的keys?List、Set、Sorted Set 他们最多能存放多少元素

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

46、Redis 最适合的场景?

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

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

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

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

Dubbo 面试题

20、Dubbo SPI和Java SPI区别?

21、Dubb。支持分布式事务吗?

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

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

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

25、Dubbo telnet 命令能做什么?

26、Dubbo支持服务降级吗?

27、Dubbo 如何优雅停机?

28、Dubbo 和Dubbox 之间的区别?

29、Dubbo 和 Spring Cloud 的区别?

30、你还了解别的分布式框架吗?

31、Dubbo是什么?

32、Dubbo默认使用什么注册中心,还有别的选择吗?

33、Dubbo有哪几种配置方式?

34、在Provider上可以配置的Consumer端的属性有哪些?

35、Dubbo启动时如果依赖的服务不可用会怎样?

36、Dubbo推荐使用什么序列化框架,你知道的还有哪些?

37、Dubbo有哪几种负载均衡策略,默认是哪种?

38、注册了多个同一样的服务,如果测试指定的某一个服务呢?

39、Dubbo支持服务多协议吗?

40、当一个服务接口有多种实现时怎么做?

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

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

43、Dubbo服务之间的调用是阻塞的吗?

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

45、Dubbo支持服务降级吗?

46、Dubbo如何优雅停机?

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

29、如何解决服务调用链过长的问题?

30、服务读写推荐的容错策略是怎样的?

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

32、Dubbo的管理控制台能做什么?

33、说说Dubbo 服务暴露的过程。

34、Dubbo 停止维护了吗?

35、Dubbo 和Dubbox 有什么区别?

36、你还了解别的分布式框架吗?

37、Dubbo 能集成 Spring Boot 吗?

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

39、你读过 Dubbo 的源码吗?

40、你觉得用Dubbo 好还是Spring Cloud 好?

Kafka 面试题

1、Kafka是什么

2、partition 的数据文件(offset,MessageSize,data)

3、数据文件分段segment(顺序读写、分段命令、二分查找)

4、负载均衡(partition会均衡分布到不同broker上)

5、批量发送

6、压缩(GZIP或Snappy)

7、消费者设计

8Consumer Group

9、如何获取topic主题的列表

10、生产者和消费者的命令行是什么?

11、consumer是推还是拉?

12、讲讲kafka维护消费状态跟踪的方法

13、讲一下主从同步

14、为什么需要消息系统,mysql不能满足需求吗?

15、Zookeeper对于Kafka 的作用是什么?

16、Kafka判断一个节点是否还活着有那两个条件?

17、Kafka与传统MQ消息系统之间有三个关键区别

18、讲一讲kafka 的ack的三种机制

19、消费者如何不自动提交偏移量,由应用提交?

20、消费者故障,出现活锁问题如何解决?

21、如何控制消费的位置

22、kafka分布式(不是单机)的情况下,如何保证消息的顺序消费?

23、kafka的高可用机制是什么?

24、kafka如何减少数据丢失

25、kafka如何不消费重复数据?比如扣款,我们不能重复的扣。

Linux面试题

12、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

13、移动文件用哪个命令?改名用哪个命令?

14、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?

15、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

16、Linu下命令有哪几种可使用的通配符?分别代表什么含义?

17、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)

18、Grep命令有什么用?如何忽略大小写?如何查找不含该串的行?

19、Linux中进程有哪几种状态?在ps显示出来的信息中分别用什么符号表示的?

20、怎么使一个命令在后台运行?

21、利用ps怎么显示所有的进程?怎么利用ps查看指定进程的信息?

22、哪个命令专门用来查看后台任务?

23、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?

24、终止进程用什么命令?带什么参数?

25、怎么查看系统支持的所有信号?

26、搜索文件用什么命令?格式是怎么样的?

27、查看当前谁在使用该主机用什么命令?查找自己所在的终端信息用什么命令?

28、使用什么命令查看用过的命令列表?

29、使用什么命令查看磁盘使用空间?空闲空间呢?

30、使用什么命令查看网络是否连通?

31、使用什么命令查看ip地址及接口信息?

32、查看各类环境变量用什么命令?

33、通过什么命令指定命令提示符?

34、查找命令的可执行文件是去哪查找的?怎么对其进行设置及添加?

35、通过什么命令查找执行命令?

36、怎么对命令进行取别名?

37、du和df 的定义,以及区别?

38、awk详解。

39、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

40、如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?

41、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?

42、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

43、bash shell 中的 hash命令有什么作用?

44、哪一个bash内置命令能够进行数学运算。

45、怎样一页一页地查看一个大文件的内容呢?

46、数据字典属于哪一个用户的?

47、怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?

48、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?

JVM面试题

40、在新生代-复制算法

41、在老年代-标记整理算法

42、分区收集算法

43、GC 垃圾收集器

44、Serial垃圾收集器(单线程、复制算法)

45、ParNew 垃圾收集器(Serial+多线程)

46、Parallel Scavenge收集器(多线程复制算法、高效)

57、Serial Old收集器(单线程标记整理算法)

58、Parallel Old 收集器(多线程标记整理算法)

59、CMS收集器((多线程标记清除算法)

60、G1收集器

61、JVM类加载机制

62、类加载器

63、双亲委派

64、OSGI(动态模型系统)

65、动态改变构造

66、模块化编程与热插拔

67、JVM内存模型

68、栈

69、本地方法栈

70、程序计数器

71、堆

72、方法区

73、分代回收

74、堆和栈的区别

75、什么时候会触发FullGC

76、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

77、对象分配规则

78、描述一下JVM加载class文件的原理机制?

79、Java对象创建过程

80、简述Java的对象结构

81、如何判断对象可以被回收

82、JVM的永久代中会发生垃圾回收么

83、垃圾收集算法

84、调优命令有哪些?

85、调优工具

86、Minor GC与Full GC分别在什么时候发生?

87、你知道哪些VM性能调优

多线程&并发面试题

70、死锁

71、线程池原理

72、线程复

73、线程池的组成

74、拒绝策略

75、Java线程池工作过程

76、JAVA 阻塞队列原理

77、Java 中的阻塞队列

78、ArrayBlockingQueue(公平、非公平)

79、LinkedBlockingQueue(两个独立锁提高并发)

80、PriorityBlockingQueue(compareTo 排序实现优先)

81、DelayQueue(缓存失效、定时任务)

82、SynchronousQueue(不存储数据、可用于传递数据)

83、LinkedTransferQueue

84、LinkedBlockingDeque

85、在java中守护线程和本地线程区别

86、线程与进程的区别?

87、什么是多线程中的上下文切换?

88、死锁与活锁的区别,死锁与饥饿的区别?

89、Java中用到的线程调度算法是什么?

90、什么是线程组,为什么在Java中不推荐使用?

91、为什么使用Executor框架?

92、在Java 中 Executor和Executors 的区别?

93、如何在Windows和Linux上查找哪个线程使用的CPU时间最长?

94、什么是原子操作?在Java Concurrency API 中有哪些原子类(atomic classes)?

95、JavaConcurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?

96、什么是Executors 框架?

97、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

98、什么是Callable和 Future?

99、什么是FutureTask?使用ExecutorService启动任务。

100、什么是并发容器的实现?

101、多线程同步和互斥有几种实现方法,都是什么?

102、什么是竞争条件?你怎样发现和解决竞争?

103、为什么我们调用start0方法时会执行run0方法,为什么我们不能直接调用run0方法?

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

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

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

107、Java中用到的线程调度算法是什么?

108、什么是线程组,为什么在Java中不推荐使用?

JavaOOP面试题

70、final、finalizeO、finally

71、JDBC操作的步骤

72、在使用jdbc的时候,如何防止出现sq注入的问题。

73、怎么在JDBC内调用一个存储过程

74、是否了解连接池,使用连接池有什么好处?

75、你所了解的数据源技术有那些?使用数据源有什么好处?

76、&和&&的区别

77、静态内部类如何定义

78、什么是成员内部类

79、Static Nested Class 和Inner Class的不同

80、什么时候用assert

81、Java有没有goto

82、数组有没有length0这个方法?String有没有length0这个方法

83、用最有效率的方法算出2乘以8等於几

84、float型floatf=3.4是否正确?

85、排序都有哪几种方法?请列举

86、静态变量和实例变量的区别?

87、说出一些常用的类,包,接口,请各举5个

88、a.hashCode0有什么用?与a.equals(b)有什么关系?

89、Java中的编译期常量是什么?使用它又什么风险?

90、在Java中,如何跳出当前的多重嵌套循环?

91、构造器(constructor)是否可被重写(override)?

92、两个对象值相同(x.equals(y)== true),但却可有不同的hashcode,这句话对不对?

93、是否可以继承 String类?

94、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

95、String 和 StringBuilder、StringBuffer 的区别?

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

97、char型变量中能不能存贮一个中文汉字,为什么?

98、抽象类(abstract class)和接口(interface)有什么异同?

99、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?

100、Java中会存在内存泄漏吗,请简单描述。

101、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?

102、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?

103、如何实现对象克隆?

104、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?

105、一个”java“源文件中是否可以包含多个类(不是内部类)?有什么限制?

106、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?

107、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?

108、Java 中的 final关键字有哪些用法?

好了,今天的内容到此为止,希望能帮到大家

以上:

github.com/encode-stud…

最后祝大家都能顺利的拿到心仪的offer!!!