摘要:
BIO,NIO和AIO的区别 一.Java的I/O演进之路 Java共支持3种网络编程的I/O模型:BIO,NIO,AIO BIO: 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。 N 阅读全文 »
发表于 2024-09-26 21:49阅读:459评论:0推荐:1
发表于 2024-09-25 22:31阅读:865评论:0推荐:0
摘要:
Java中序列化和反序列化的区别 序列化和反序列化的定义 序列化(Serialization)与反序列化(Deserialization)是编程中常见的两个概念,他们主要涉及到将数据结构或对象状态转换为可以存储或传输的格式,以及将存储或传输的格式转换回原始的数据结构或对象状态的过程。 这两个过程在数 阅读全文 »
发表于 2024-09-23 19:00阅读:197评论:0推荐:0
摘要:
1.什么是原子操作? 我们在学习MYSQL时就了解过原子性,即整个事务是不可分割的最小单位,事务中任何一个语句执行失败,所有已经执行成功的语句也要回滚,整个数据库状态要恢复到执行任务前的状态。Java中的原子性其实就是和数据库中说的相似,就是不可在分割,在我们的多线程里面就是相当于一把锁,在当前的线 阅读全文 »
发表于 2024-09-22 16:05阅读:68评论:0推荐:0
摘要:
前言: 装饰者模式是结构性设计模式之一,其在不必改变类文件及不适用继承的情况下,动态的扩展一个对象的功能。它通过创建一个包装对象(即装饰)来包裹真实的对象。 一.定义 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 装饰者模式的结构图: 装饰者模式有如下角色: Co 阅读全文 »
发表于 2024-09-18 21:31阅读:12评论:0推荐:0
摘要:
代理模式 前言: 我们一般在租房子时会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做;再比如我们打官司需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法;再比如在淘宝上面买东西,你使用支付宝平台支付,卖家请物流公司发货,在这个过程汇总支 阅读全文 »
发表于 2024-09-09 15:26阅读:17评论:0推荐:0
摘要:
集合的底层原理 数据结构中有 数组 和 链表 来实现对数据的存储,但这两者基本上就是两个极端。 数组:数组存储区间是连续的,占用内存严重,故空间复杂度很大。但数组的二分查找时间复杂度很小,为O(1);数组的特点是:寻址容易,插入和删除困难。 链表:链表存储区间不连续,占用内存比较宽松,故空间复杂度很 阅读全文 »
发表于 2024-09-05 11:24阅读:18评论:0推荐:0
摘要:
一.List,Set,Map集合是否都继承自Collection接口 1.List,Set和Map的基本概念 List:一个有序集合(也称序列)。List中的元素是有序的,且可以重复。List接口的常用实现类由ArrayList,LinkedList等。 Set:一个不包含重复元素的集合。Set中的 阅读全文 »
发表于 2024-09-04 10:33阅读:12评论:0推荐:0
摘要:
一.类与类之间有哪些关系 1.继承关系: 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父 阅读全文 »
发表于 2024-09-03 10:30阅读:22评论:0推荐:0
摘要:
JVM虚拟机 一.简述JVM虚拟机的内存结构 JVM内存结构大致分为五个部分,分别为方法区、堆、虚拟机栈、程序计数器、本地方法栈。如下图: 1.程序计数器: 程序计数器主要作用是记录下一条要执行的二进制字节码指令地址。属于线程私有,不会出现内存溢出。 2.虚拟机栈: 定义:虚拟机栈内部是一个个的栈帧 阅读全文 »
发表于 2024-08-28 20:34阅读:30评论:0推荐:1
摘要:
MYSQL索引 前言 Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。 我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择, 阅读全文 »