2021最新java面试题整理

算法题:

1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

 

程序题:

1、求数组中的最小值

2、将一个数组中元素排序

3、将一个双向链表倒置

 

面试题:

1、谈谈你做过的项目用到了哪些框架及工作职责

2、谈谈你对springboot的理解

3、谈谈你对springcloud的理解

4、说说redis的哨兵机制

5、说说什么是雪崩

6、Map的实现类有哪些

7、HashMap的底层原理

8、谈谈你对zookeeper的理解

9、分布式锁有哪些

10、一个int类型的变量,例如 int a =12345,你怎么获取到个位的数字

11、数组和集合如何转换

12、如何避免sql注入

13、如何避免xss攻击

14、ssm框架的优势是什么

15、简单说下ssm中有哪些核心配置文件

16、是否了解Oracle的存储过程

17、redis的如何同步数据

18、说一下你最熟悉的一个项目,你做的那个模块的数据库设计是如何设计的

19、说说springboot和springcloud的有什么区别

20、说说常用的java工具类

21、mysql和oracle的分页如何写

22、mybatis定时配置

23、单例模式和多例模式的区别

24、如何配置多例模式

25、是否了解java虚拟机,简单谈谈

26、创建多线程的方式

27、java中创建对象的方式有哪些

28、zookeeper宕机了,dubbo是否可以调用服务

29、数据库有哪些优化方式

30、系统之间是如何调用的

31、如何理解spring

32、linux常用命令

33、map,set的遍历方式

34、set如何去重

35、redis缓存如何使用

36、动态sql的使用

 

其他面试题:

1、Java的序列化是什么?有哪些你知道的序列化方式?

2、New一个HashMap,向其中添加Long,Boolean数据,主要是手机号是否可用的数据,添加一条,添加两条,一直添加到1000w条。在这个过程

中,HashMap的数据结构是怎么变化的?1000w个数据添加完之后,HashMap占用了所少内存?

3、1000w甚至1亿个手机号过滤重复,可以使用哪些方式/哪些数据类型?各有什么特点?

4、ConcurrentHashMap是如何做到高并发线程安全的?

5、Java中Synchronized关键字的内存语义是什么?

6、Java中Volatile关键字的内存语义是什么?

7、什么是Java中原子操作?

8、什么Java中CAS操作,AtomicLong实现原理?

9、什么是可重入锁、乐观锁、悲观锁、公平锁、非公平锁、独占锁、共享锁?

10、讲讲独占锁ReentrantLock原理?谈谈读写锁ReentrantReadWriteLock原理?

11、ThreadLocal作为变量的线程隔离方式,其内部是如何做到的?

12、CyclicBarrier内部实现与CountDownLatch有何不同?

13、有3个线程,线程A和线程B并行执行,线程C需要A和B执行完后才能执行。可以怎么实现?

14、现在有两个线程同时操作一个整数I,做自增操作,如何实现I的线程安全性?

15、Java中多个线程是如何传递数据?LinkedBlockingQueue原理

16、CountDownLatch与线程join方法的区别是什么?

17、什么是java指令重排序?

18、Spring是如何实现AOP的?以事物为例

19、Spring有哪些设计模式?

20、Spring中是怎么解决循环依赖的?比如A依赖于B,B依赖于A

21、对Java接口代理模式的实现原理的理解?如何使用Java发射实现动态代理?Java接口代理模式的指定增强?

22、谈谈对Cglib类增强动态代理的实现?和Jdk动态代理有什么区别?

23、BeanFactory和FactoryBean有什么区别?

24、BeanFactory和ApplicationContext又有什么不同?

25、Mysql有哪些存储引擎?有什么不同?

26、Float、Decimal存储金额的区别?Datetime、Timestamp存储时间的区别?Char、Varchar、Varbinary存储字符的区别?

27、对Explain参数及重要参数的理解?

28、索引与锁有什么关系?

29、B+Tree如何进行优化?索引遵循哪些原则?

30、Innodb事务的理解?

31、Mysql表设计及规范?

32、索引优化?说说Sql优化的几点原则?

33、Redis数据结构有哪些?

34、Redis缓存穿透、缓存雪崩?

35、如何使用Redis来实现分布式锁?

36、讲讲tcp协议(建连过程、慢启动、滑动窗口、七层模型)?

37、webservice协议(wsdl/soap格式、与rest协议的区别)?

38、Socket交互的基本流程?

39、深拷贝和浅拷贝

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

41、Java堆的结构是什么样子的?

42、在Java中,对象什么时候可以被垃圾回收?

43、简述Minor GC和Major GC?

44、简述下Java垃圾回收机制?

45、代码编写:快速排序

46、代码编写:冒泡排序

47、ConcurrentLinkedQueue内部是如何使用CAS非阻塞算法来保证多线程下入队出队操作的线程安全的?

48、CyclicBarrier内部实现与CountDownLatch有何不同?

49、Semaphore的内部实现是怎样的?

50、并发组件CopyOnWriteArrayList是如何通过写时拷贝实现并发安全的list?

51、同步与异步?阻塞与非阻塞?

52、ThreadLocalRandom是如何利用TreadLocal的原理来解决Random的局限性?

53、使用过MQ吗?在什么场景下使用?解决什么问题?遇到什么问题?

54、Kafka的topic和partion如何设计?Kafka是如何保证数据不丢失的?

55、DB和MQ是两种介质,有哪些方式可以保证DB和MQ数据都写入成功的?你们是怎样做的?

56、什么是最终一致性?最终一致性实现方式?

57、Redis的分布式锁是怎么使用的?有什么优缺点?

58、说一说RPC调用的整个过程,发生了哪些事情,各个模块都做了哪些事情?

59、Mysql的Innodb在什么情况下会发生死锁?你遇到的死锁是什么场景?是怎么解决死锁的?

60、说说数据库事务特点及潜在问题?

61、什么是mysql的隔离级别?Innodb如何解决幻读?

62、讲讲Innodb行锁?

63、死锁及监控是什么?什么情况下会出现死锁?举例sql

64、自增长与锁、锁的算法、锁问题、锁升级是什么?

65、Redis持久化的几种方式,优缺点是什么,怎么实现的?

66、Redis的缓存失效策略?

67、Redis的数据淘汰策略?

68、Redis队列应用场景?

69、分布式缓存和一致性hash?

70、说说Netty线程模型,什么是零拷贝?

71、Dubbo的底层实现原理和机制?

72、描述一个服务从发布到被消费的详细过程?

73、Dubbo的服务请求失败怎么处理?怎么熔断?

74、对分布式事务的理解?

75、分布式集群下如何做到唯一序号?

76、如何保证消息一致性?

77、TCP如何保证数据的可靠传输的?

78、代码编写:两个有序数组合并。

79、代码编写:二叉树的前、中、后续遍历。

80、代码编写:使用栈实现一个队列。

81、代码编写:打印倒三角。

 

最后


如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的Java技术qq交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

### 回答1: 面试题整理是为了帮助准备面试的候选人更好地了解面试的内容和要求。对于Java2021面试题整理,可以从各个方面进行组织和分类,以便更好地帮助面试者准备。下面是我对Java2021面试题整理的一些建议。 1.基础知识:面试题可以包括Java语言的基本语法、关键字、数据类型、流程控制语句、异常处理等方面的问题。这些问题可以帮助面试者检验自己对Java语言基础知识的掌握程度。 2.面向对象:面试题可以涉及Java面向对象的概念、封装、继承、多态以及接口、抽象类等方面的问题。这些问题可以帮助面试者了解Java面向对象编程的特点和应用。 3.集合框架:面试题可以包括关于Java集合框架的知识,如ArrayList、LinkedList、HashSet、HashMap等的特性、用法和区别。这些问题可以帮助面试者检验自己对Java集合框架的理解和应用能力。 4.多线程:面试题可以涉及Java多线程编程的基本概念、线程的创建与启动、线程同步与互斥、线程池等方面的问题。这些问题可以帮助面试者了解多线程编程的原理和实践。 5.IO流:面试题可以包括关于Java IO流的知识,如输入输出流的分类、字符流和字节流的区别、文件读写操作等方面的问题。这些问题可以帮助面试者检验自己对IO流的理解和应用。 6.异常处理:面试题可以涉及Java异常处理的机制、try-catch语句的使用、自定义异常等方面的问题。这些问题可以帮助面试者了解异常处理的原理和常见应用。 7.Java虚拟机:面试题可以包括Java虚拟机(JVM)的基本概念、内存模型、垃圾回收算法等方面的问题。这些问题可以帮助面试者了解JVM的工作原理和性能优化。 8.框架和工具:面试题可以涉及Java常用的开发框架和工具,如Spring、Hibernate、MyBatis、Maven等方面的问题。这些问题可以帮助面试者了解开发框架的应用和工具的使用。 通过对这些方面的面试题整理,可以帮助面试者全面了解Java2021面试的内容和要求,并有针对性地准备和复习相关知识。面试者应该注重理论的学习,同时结合实践经验进行练习,以便在面试时能够更好地展示自己的能力和潜力。同时,面试者还应注意自己的沟通能力、问题分析能力和解决问题的能力,这些都是面试过程重要的评估指标。 ### 回答2: Java2021面试题整理主要集在以下几个方面: 1. 基础知识:Java的基本数据类型、变量和常量、运算符、控制语句等内容是面试常见的考点。面试官会通过这些问题判断候选人对Java基础知识的熟悉程度和掌握能力。 2. 面向对象编程:Java是一门面向对象的编程语言,所以面试对面向对象的理解和应用也是重要的考点。常见的问题包括类和对象、继承和多态、封装和抽象等。 3. 异常处理:Java的异常处理是编程的重要内容,面试会涉及到异常的概念、异常的分类、如何捕获和处理异常、自定义异常等。 4. 集合框架:Java集合框架是Java开发常用的工具,常见的面试题会涉及到ArrayList、LinkedList、HashMap等集合的特点和应用场景,以及集合的遍历和使用方法。 5. 多线程:Java是一门支持多线程的语言,所以多线程的知识也是面试的热点考点。常见的问题包括线程的生命周期、线程同步与互斥、线程间的通信、线程池等。 6. JVM相关知识:Java虚拟机(JVM)是Java运行的基础,所以对JVM的了解也是面试的重要考点。常见问题包括JVM的结构、内存模型、垃圾回收机制等。 此外,面试还可能涉及到数据库、网络编程、设计模式等其他相关知识。因此,面试前需要对Java的相关知识有全面的掌握,并且要能够灵活运用这些知识进行问题的解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值