面试题精选
文章平均质量分 86
sasually
不要想太多,动起来最重要
展开
-
什么是 RPC?目前有哪些常见的 RPC 框架?实现 RP 框架的核心原理是什么? (精选面试题)
RPC 是远程过程调用(Remote Procedure Call)的缩写,它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议¹。RPC 可以让开发者像调用本地方法一样调用远程的过程,实现分布式系统的服务化或微服务¹⁵。目前有很多常见的 RPC 框架,可以分为两类:一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的⁵。跟语言平台绑定的开源 RPC 框架主要有下面几种⁵⁶。Dubbo。原创 2023-05-17 14:38:25 · 655 阅读 · 0 评论 -
什么是零拷贝? 说一说你对零拷贝的理解?(精选面试题)
零拷贝是一种高效的数据传输技术,它可以减少CPU在IO操作中的数据拷贝次数和上下文切换次数,从而提高性能和降低延迟。零拷贝的原理是利用虚拟内存和DMA技术,实现内核空间和用户空间的数据共享,或者直接在内核空间完成数据传输,避免了不必要的数据复制。文件读写:传统的文件读写需要经过两次数据拷贝和四次上下文切换,而使用mmap+write或者sendfile等零拷贝方式,可以减少到一次或者零次数据拷贝和两次或者三次上下文切换。原创 2023-05-15 11:58:58 · 216 阅读 · 0 评论 -
HTTP 协议中 GET 和 POST 有什么区别? 分别适用于什么场景?(精选面试题)
HTTP 协议是一种基于 TCP/IP 的应用层协议,它定义了客户端和服务器之间的通信规则。HTTP 协议中有多种请求方法,用来表示客户端对服务器资源的不同操作。其中最常用的两种方法是 GET 和 POST。GET 方法用于从服务器获取指定的资源,它把请求参数拼接在 URL 中,以键值对的形式发送给服务器。参数对所有人都是可见的,不适合传递敏感信息参数受到 URL 长度的限制,一般不超过 2048 个字符参数只能是 ASCII 字符,不能传递二进制数据请求只应当用于获取数据,没有副作用。原创 2023-05-15 11:09:51 · 222 阅读 · 1 评论 -
Redis 6.0 之后为何引入了多线程? 6.0 之前为什么不使用多线程?(精选面试题)
在 Redis 6.0 之前,Redis 是单线程的,因为 Redis 的瓶颈通常在于网络和磁盘 I/O,而不是 CPU 计算能力。但随着硬件技术的发展,多核 CPU 的普及以及 Redis 在处理大规模数据时可能会出现的性能问题,Redis 引入了多线程来提高处理并发请求的能力。引入多线程可以让 Redis 能够同时处理多个客户端请求,并且通过利用现代 CPU 的多核心计算能力,可以进一步提升 Redis 在高并发场景下的性能表现。另外,多线程还可以让 Redis 在某些情况下更好地利用内存和磁盘。原创 2023-05-14 22:41:22 · 124 阅读 · 0 评论 -
什么是进程和线程?它们有哪些区别和联系?(精选面试题)
进程(Process)和线程(Thread)是操作系统中的两个核心概念。进程指的是操作系统分配资源的最小单位,是正在运行的一个程序的实例。一个进程由程序代码、数据、堆栈和一组操作系统对象(如打开的文件、信号量等)组成。每个进程在独立的地址空间中运行,彼此独立,互不干扰。线程是进程中的一个执行单元,也是 CPU 调度的最小单位。一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源,但每个线程都有自己的栈和寄存器。线程之间切换比进程之间切换更加轻量级,因为它们共享了相同的地址空间和其它系统资源。原创 2023-05-14 22:21:21 · 125 阅读 · 0 评论 -
HTTP 是哪一层的协议? 请详细描述它的作用和特点 (精选面试题)
HTTP是应用层协议,它主要用于在Web浏览器和Web服务器之间传递数据。具体来说,HTTP定义了客户端和服务器之间请求和响应的格式,使得Web浏览器可以向Web服务器请求Web页面,并接收服务器响应所需的HTML、CSS、JavaScript等内容。原创 2023-05-13 21:50:57 · 1587 阅读 · 0 评论 -
Java 中 final 关键字有什么用?(精选面试题)
Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它具有跨平台、高性能、安全可靠等特点,在各个领域广泛应用,例如Web开发、移动开发、游戏开发、大数据处理等。Java拥有庞大的生态圈和强劲的社区支持,还涌现出了许多优秀的框架和工具,如Spring、Hibernate、MyBatis、Maven等,使得Java成为当今最受欢迎的编程语言之一。原创 2023-05-13 21:33:58 · 134 阅读 · 0 评论 -
Spring 框架是什么? 使用 Spring 框架有哪些好处?(精选面试题)详细
Spring 是一个开源框架,提供了一系列工具和组件,用于构建企业级应用程序。它基于 Java 平台,由 Rod Johnson 在2002年创建,并于2004年发布第一个正式版本。Spring 的设计理念是轻量级、松耦合、非侵入式的,旨在简化企业级应用程序的开发。Spring IOC:控制反转(Inversion of Control,IOC)容器,负责管理对象的生命周期和依赖关系。原创 2023-05-12 11:13:49 · 197 阅读 · 1 评论 -
MySQL 日志binlog、redolog、undolog 分别有什么作用、有什么区别?(面试题)
提示:精选面试题。MySQL 日志binlog、redolog、undolog 分别有什么作用、有什么区别?原创 2023-05-12 10:30:13 · 171 阅读 · 1 评论 -
(Java面试)JDK 动态代理和 CGLIB 动态代理的区别是什么?
JDK动态代理和CGLIB动态代理都是Java中常用的实现动态代理的方式。它们各有优缺点,适用于不同的场景。如果被代理的类已经实现了接口,那么我们可以使用JDK动态代理;如果被代理的类没有实现接口,那么我们可以使用CGLIB动态代理。在实际开发中,我们需要根据具体的场景来选择最合适的动态代理实现方式。动态代理的应用场景非常广泛,比如AOP、RPC框架等。在AOP中,我们可以通过动态代理来实现对方法的拦截和增强,从而实现面向切面编程;在RPC框架中,我们可以通过动态代理来实现客户端和服务端之间的通信。原创 2023-05-11 10:26:42 · 275 阅读 · 2 评论 -
计算机网络七层模型和各自的作用(面试题)
学习计算机网络七层模型可以通过阅读相关的教材和参考书籍,理解每个层次的概念和原理。这些层次相互作用,每一层负责特定的功能,通过各自的协议和机制,在网络中实现了数据的可靠传输、路由选择和应用程序间的通信。它将原始的比特流分割成数据帧,并进行差错检测和纠正,确保数据的可靠传输。(Presentation Layer):处理数据的表示和转换,以确保不同系统的数据能够正确解释。计算机网络七层模型是一种用于描述计算机网络通信的理论模型,将网络通信过程划分为七个层次,每个层次都有不同的功能和责任。原创 2023-05-11 10:02:09 · 233 阅读 · 0 评论