【面试题44】基础考察:ClassNotFoundException 和 NoClassDefFoundError 有什么区别

在写Java程序的时候,当一个类找不到的时候,JVM有时候会抛出ClassNotFoundException异常,而有时候又会抛出NoClassDefFoundError。看两个异常的字面意思,好像都是类找不到,但是JVM为什么要用两个异常去区分类找不到的情况呢?这个两个异常有什么不同的地方呢? C

【面试题43】面试官:SpringMVC的控制器是单例的吗?

对于SpringMVC Controller单例和多例,下面举了个例子说明下. 第一次:类是多例,一个普通属性和一个静态属性。 结果: 普通属性:0.............静态属性:0 普通属性:0.............静态属性:1 普通属性:0.............静态属性:2 普

【面试题42】盘点Netty面试常问考点:什么是 Netty 的零拷贝?

理解零拷贝 零拷贝是Netty的重要特性之一,而究竟什么是零拷贝呢?WIKI中对其有如下定义: "Zero-copy" describes computer operations in which the CPU does not perform the task of copying data f

【面试题45】一道阿里面试题:说说你知道的关于BeanFactory和FactoryBean的区别

BeanFactory和FactoryBean在Spring框架中都扮演着重要的角色,但它们之间存在一些明显的区别: BeanFactory BeanFactory是Spring的核心,是IoC容器,主要负责创建、配置和管理bean。它提供了一种方法来支持外部程序对这些bean的访问,并且能在程序启

【开源分享】开源、免费的 TikTok 下载器

TikTokDownloader TikTokDownloader是基于 Python 的 requests 库实现的 TikTok(抖音)下载工具,支持批量下载作品、点赞/收藏/评论数、封面图、去水印等功能,可用于采集视频素材、分析账号等,提供了开箱即用的 .exe 程序和 WebUI 交互界面。

【面试题41】谈谈你对零拷贝的理解~

前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区 缓冲区是所有I/O的基础,I/O讲的无非

【面试题40】六大类二叉树面试题汇总解答

0 概述 继上一篇总结了二叉树的基础操作后,这一篇文章汇总下常见的二叉树相关面试题,主要分为判断类、构建类、存储类、查找类、距离类、混合类这六类大问题。 本文所有代码

【面试题39】盘点那些必问的数据结构算法题之快速排序

0 概述 快速排序也是基于分治模式,类似归并排序那样,不同的是快速排序划分最后不需要merge。对一个数组 A[p..r] 进行快速排序分为三个步骤: 划分:数组 A[p…r] 被划分为两个子数组 A[p…q-1] 和 A[q+1…r],使得 A[p…q-1] 中每个元素都小于等于 A[q],而 A

【面试题38】盘点那些必问的数据结构算法题之基础排序

0 概述 排序算法也是面试中常常提及的内容,问的最多的应该是快速排序、堆排序。这些排序算法很基础,但是如果平时不怎么写代码的话,面试的时候总会出现各种bug。 虽然思想都知道,但是就是写不出来。本文打算对各种排序算法进行一个汇总,包括插入排序、冒泡排序、选择排序、计数排序、归并排序,基数排序、桶排序

【面试题37】盘点那些必问的数据结构算法题之二分查找算法

0 概述 二分查找本身是个简单的算法,但是正是因为其简单,更容易写错。甚至于在二分查找算法刚出现的时候,也是存在bug的(溢出的bug),这个bug直到几十年后才修复(见《编程珠玑》)。 本文打算对二分查找算法进行总结,并对由二分查找引申出来的问题进行分析和汇总。若有错误,请指正。 1 二分查找基础

【面试题36】盘点那些必问的数据结构算法题之二叉树基础

0 概述 在说二叉树前,先来看看什么是树。树中基本单位是结点,结点之间的链接,称为分支。一棵树最上面的结点称之为根节点,而下面的结点为子结点。一个结点可以有0个或多个子结点,没有子结点的结点我们称之为叶结点。 二叉树是指子结点数目不超过2个的树,它是一种很经典的数据结构。而二叉搜索树(BST)是有序

【面试题35】盘点那些必问的数据结构算法题之二叉堆

0 概述 本文要描述的堆是二叉堆。二叉堆是一种数组对象,可以被视为一棵完全二叉树,树中每个结点和数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层除外。二叉堆可以用于实现堆排序,优先级队列等。本文代码地址在 这里。 https://github.com/shishujuan/dsalg

【面试题34】盘点那些必问的数据结构算法题之链表

0 概述 链表作为一种基础的数据结构,在很多地方会用到。如在Linux内核代码,redis源码,python源码中都有使用。除了单向链表,还有双向链表,本文主要关注单向链表(含部分循环链表题目,会在题目中注明,其他情况都是讨论简单的单向链表)。双向链表在redis中有很好的实现,也在我的仓库中拷贝了

【面试题33】说一下线程池内部工作原理

随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。 线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。 在Java中有一个Executors工具类,可以为我们创建一个线程池,其本

【面试题32】Mybatis面试18问,你想知道的都在这里了!

1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。 #{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sq

【面试题31】一份tcp、http面试指南,常考点都给你了

TCP 要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于tcp协议的。 TCP/IP 协议分层模型 物理层将二进制的0和1和电压高低,光的闪灭和电波的强弱信号进行转换 链路层代表驱动 网络层 使用 IP 协议,IP 协

15-Java中打印图案最常用的25个图案程序

Java是公认的最流行的编程语言,因为它的简单性和多功能性。还可以使用它开发各种应用程序,包括Web、移动和桌面应用程序。此外,Java为开发人员提供了强大的工具来轻松高效地创建复杂的程序。Java最有前途的特性之一是它能够创建可以以特定格式打印数字的图案程序。模式程序是学习Java编程的一种很好的

14-通过示例学习Java中的多线程

Java中的多线程是使用彼此独立的虚拟处理实体执行复杂进程的行为。这些实体称为线程。Java中的线程是虚拟的,并与进程共享相同的内存位置。因为线程是虚拟的,所以它们展示了执行进程的更安全的方式。 什么是多任务以及多任务的类型? 多任务处理是一种通过同时执行多个任务来最小化执行时间和最大化CPU利用率