![](https://img-blog.csdnimg.cn/direct/0581da06c20d4f9c96ffecc308ca1df4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
100道Java后端大厂面试题详解
文章平均质量分 94
这个专栏会更新100道大厂Java相关面试题的解答,适合冲刺大厂的铁铁学习。
极客李华
CSDN,阿里社区内容合伙人、系统分析师、全网20万粉丝的技术博主,交流合作私信+。欢迎技术交流。
展开
-
Java的OOM问题及解决方案
在Java应用程序开发中,Out of Memory(OOM)错误是一种常见的问题。当应用程序试图申请更多内存而可用内存不足时,就会导致OOM错误。原创 2024-03-03 00:33:06 · 2548 阅读 · 1 评论 -
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
在微服务架构中,每个微服务通常部署在独立的服务器上,Nginx可以作为微服务网关,负责接收和转发微服务之间的请求。不同的后端服务器配置了不同的权重值,Nginx根据权重值分配请求,实现了灵活的负载均衡。在这个配置中,Nginx作为图像处理服务器,使用了IP Hash算法将相同IP地址的请求分发给同一台图像处理服务器,以实现会话保持。在这个配置中,Nginx作为文件服务器,使用了最少连接算法将请求分发给连接数最少的文件服务器,以实现负载均衡和资源优化。,使用了最少连接算法,并且配置了不同服务器的权重。原创 2024-02-10 23:56:59 · 1059 阅读 · 0 评论 -
字节跳动面试题:用过线程池吗?如何自定义线程池?线程池的参数?
如果现有的线程池类型不能满足需求,可以自定义线程池。自定义线程池可以根据具体需求配置线程的核心数量、最大数量、任务队列等参数。核心线程数是线程池中始终存活的线程数量。它负责执行任务队列中的任务,即使线程处于空闲状态,也不会被销毁。// 设置核心线程数为2 int corePoolSize = 2;// 创建一个线程池,指定核心线程数 ExecutorService executor = Executors . newFixedThreadPool(corePoolSize);原创 2024-02-10 22:03:55 · 839 阅读 · 0 评论 -
字节面试题:用过ThreadLocal吗?ThreadLocal是在哪个包下的?看过ThreadLocal源码吗?讲一下ThreadLocal的get和put是怎么实现的?
ThreadLocal是Java中的一个线程封闭工具,允许线程在其范围内创建一个本地变量。每个线程都有自己的变量副本,这使得线程可以独立地访问自己的变量副本,而不会与其他线程的变量发生冲突。ThreadLocal通常用于保存线程私有的上下文信息,如数据库连接、会话信息等。原创 2024-02-08 00:01:56 · 876 阅读 · 0 评论 -
字节面试题:char和varchar的区别?
char 是一种固定长度的字符数据类型,在创建表时需要指定其长度,长度范围为 0 到 255 个字符。char 类型在存储时会按照指定的长度进行存储,如果实际字符长度小于指定长度,会使用空格填充。以上SQL代码创建了一个名为id和name。name列使用了CHAR(10)数据类型,表示它将存储最多10个字符的固定长度字符串。当向该表插入数据时,并且为name列赋值时,该值将以固定长度的10个字符存储。如果赋值的字符串长度小于10个字符,MySQL会使用空格填充以达到指定的长度。原创 2024-02-07 14:48:03 · 1329 阅读 · 0 评论 -
字节面试题: Mysql索引结构,为什么要用b+树?
在数据库管理系统中,索引是一种数据结构,用于快速定位和访问数据库表中的特定记录。它类似于书籍的目录,可以帮助数据库系统快速定位到数据所在的位置,而不必扫描整个数据表。MySQL支持多种类型的索引,包括主键索引、唯一索引、普通索引和全文索引等。原创 2024-02-07 14:33:49 · 1056 阅读 · 0 评论 -
字节面试题:四次挥手
TCP连接的断开是一个复杂的过程,因为在断开连接之前,双方需要确保已经完成了所有数据的传输,以免数据丢失或不完整。而在断开连接时,由于TCP是全双工的,因此需要四次挥手来完整地关闭连接,保证数据的可靠传输。在计算机网络领域,TCP(传输控制协议)是一种可靠的、面向连接的协议,它使用“三次握手”建立连接,但在断开连接时却采用了“四次挥手”的过程。本文将详细解释四次挥手的含义、流程和每个阶段的作用。这个过程是TCP连接终止时的标准四次挥手过程,确保了双方的数据都能完整地传输并得到确认,从而安全地关闭连接。原创 2024-02-07 01:36:44 · 981 阅读 · 0 评论 -
字节跳动面试题: java多态的实现
Java中的多态性是面向对象编程的重要概念之一,它允许以统一的方式处理不同类型的对象,提高了代码的灵活性和可维护性。本文将深入探讨Java中多态的实现方式、原理以及应用场景。原创 2024-02-06 22:27:16 · 1078 阅读 · 0 评论 -
字节后端面试题:接口和抽象类的区别?抽象类可以多继承吗?
抽象类是一种不能被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法是一种没有具体实现的方法,它只有方法声明,没有方法体。抽象类通过abstract关键字声明。原创 2024-02-06 21:27:44 · 861 阅读 · 0 评论 -
static关键字的用法和作用
在Java中,static是一个关键字,用于声明静态成员。静态成员属于类,而不属于类的任何实例。当类被加载时,静态成员就会被初始化,并且在整个程序的生命周期内只会被初始化一次。原创 2024-02-06 20:42:26 · 1392 阅读 · 0 评论 -
字节跳动面试题-HashMap底层原理与HashTable的区别
HashMap是一个基于哈希表的实现,它允许null键和null值,并且是无序的。它工作的原理是通过将键映射到值来存储和检索数据。在HashMap内部,通过使用哈希函数将键映射到存储桶中。原创 2024-02-06 15:51:51 · 908 阅读 · 0 评论 -
字节跳动大厂面试题详解:synchronized的偏向锁和自旋锁怎么实现的
一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。原创 2024-02-01 00:03:34 · 924 阅读 · 0 评论 -
字节跳动大厂面试题详解:java中有哪些类型的锁
一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。原创 2024-01-31 23:43:08 · 1154 阅读 · 2 评论 -
字节跳动大厂面试题详解:有几种类型的类加载器,都具体是干什么的
自定义类加载器是开发人员根据自己的需求编写的类加载器,用于加载特定位置或特定格式的类文件。通过继承Java中的ClassLoader类,开发人员可以自定义类加载器,实现自己的类加载逻辑。自定义类加载器通常用于特定的应用场景,例如动态加载远程服务器上的类文件、加密类加载等。自定义类加载器使得开发人员可以根据自己的需求实现特定的类加载逻辑,例如从网络加载类、加密类加载等。这种灵活性使得Java应用程序可以应对各种复杂的场景和需求。/*** 自定义加密类加载器示例。原创 2024-01-31 23:30:40 · 944 阅读 · 0 评论 -
字节跳动大厂面试题详解:聊一下双亲委派机制
Java中的双亲委派机制是一种类加载机制,它用于保证Java应用程序的稳定性和安全性。该机制是由Java类加载器(ClassLoader)实现的,它的核心思想是父类加载器优先加载类,如果父类加载器无法加载,则委托给子类加载器加载。下面是一个简单的自定义类加载器示例,演示了如何自定义一个类加载器并使用双亲委派机制加载类。try {原创 2024-01-31 23:15:29 · 917 阅读 · 0 评论 -
字节跳动大厂面试题详解:抽象类可以被实例化吗
在面向对象编程中,抽象类是一种特殊的类,它不能被实例化,但可以被继承。抽象类是一种包含抽象方法的类,它的存在主要用于被其他类继承。抽象方法是一种声明而不提供实现的方法,留给子类去实现。抽象类本身不能被实例化,因为它可能包含了未实现的方法,无法被完全实例化。原创 2024-01-31 23:04:56 · 773 阅读 · 0 评论 -
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
抽象类是一种特殊的类,它不能被实例化,只能被用作其他类的父类。抽象类通常包含抽象方法和具体方法,而抽象方法则必须在子类中被实现。适用场景当多个类有共同的属性和方法,并且这些方法中有一些是具体实现的,另一些需要子类来实现时,可以考虑使用抽象类。抽象类用于建模具有共性的对象,提供了一种自上而下的设计思路。抽象类可以包含抽象方法和具体方法,提供了灵活的设计选择。示例图形形状的抽象类,如圆形、矩形和三角形等。动物的抽象类,如哺乳动物、鸟类等。优点。原创 2024-01-31 22:34:35 · 932 阅读 · 0 评论