自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 java集合框架总结

java集合框架总结

2024-04-29 16:09:43 911

原创 java泛型详解

Java 泛型(Generics)是 Java 语言在 5.0 版本中引入的一个核心概念,用于在编译时提供更严格的类型检查,并支持编写可重用的代码。通过使用泛型,你可以在类、接口和方法中定义类型参数,这些类型参数在实例化类或调用方法时被具体的类型替代。泛型提高了代码的可读性和安全性,同时减少了代码中的冗余。Java 泛型提供了一个框架,让开发者在编写、使用集合类或其他类型的时候,可以提供更严格的类型检查。泛型的引入大大增强了Java语言的表达力和安全性,是现代Java编程的一个基石。

2024-04-28 16:31:14 735

原创 java IO模型详解

阻塞 vs 非阻塞:这两个概念描述了程序在等待 I/O 操作完成时的状态。阻塞意味着等待,非阻塞意味着在等待过程中能够执行其他任务。同步 vs 异步:这两个概念描述了 I/O 操作的执行方式。同步操作中,I/O 请求和处理是连续的过程,而在异步操作中,I/O 请求和处理是分离的。在现代编程实践中,选择适当的 I/O 模型对于优化性能、资源利用和用户体验至关重要。例如,高性能的服务器和应用通常采用异步非阻塞 I/O 模型来处理大量并发的客户端请求。

2024-04-28 16:00:58 1032

原创 计算机的堆、栈你知道吗?堆栈呢?!

这一计算机术语的起源可以追溯到早期的计算机科学和程序设计领域,其命名和功能的设计模仿了现实世界中的一种物理堆叠方式——如同堆放在一起的盘子或书本。在计算机科学中,堆栈是一种特殊的数据结构,它遵循“后进先出”(Last In, First Out,简称LIFO)的原则。这意味着最后被加入到堆栈中的数据项会是第一个被移除的。这种数据结构的特性非常适合处理那些需要临时存储并且按顺序恢复的数据,比如在程序中处理函数调用时的局部变量和返回地址。

2024-04-26 17:11:17 574 1

原创 java浮点数详解

浮点数的二进制表示包括三个部分:符号位(Sign),指数位(Exponent),和尾数位(Mantissa,也称为Significand)。这意味着浮点数的表示是有限的,并不能精确表示所有的小数。浮点数在计算机中的表示和运算常常伴随着精度丢失的风险,这是由于浮点数的存储方式以及浮点运算的本质导致的。这种表示方法允许计算机以固定的格式存储和计算浮点数,虽然可能会带来精度上的限制和计算上的误差。是一个处理浮点数和整数之间转换的重要工具,特别是在需要对浮点数的低级表示进行精确控制和分析的场景中。

2024-04-25 17:55:58 920 1

原创 java包装类型详解

一、用途在Java语言中,包装类型(Wrapper Classes)是一种特殊的类,它们将八个基本数据类型(byte、short、int、long、float、double、char、boolean)封装在一个类中。这些包装类(如Integer、Long、Double、Character等)在java.lang包中定义,提供了一系列实用的类方法和属性。尽管在很多情况下使用基本数据类型就足够了,包装类型的存在却对Java编程模式和功能的扩展至关重要。下面详细探讨Java为什么需要包装类型。

2024-04-24 15:56:32 1125

原创 Java的对象都存储在堆中?

在Java中,传统上几乎所有的对象实例都是在堆内存(Heap)中分配的。这是因为堆是由Java虚拟机(JVM)在运行时动态分配内存给对象实例的区域,它不仅可以动态地扩展和收缩,还能被所有线程共享。然而,这种方式虽然灵活,但在对象创建和回收时会涉及到较高的开销,特别是涉及到垃圾收集(Garbage Collection, GC)时,可能会影响应用程序的性能。

2024-04-24 15:13:21 394

原创 整数的补码设计&字和字节的区别

一、整数的表示形式在数字计算机系统中,整数通常可以以三种不同的二进制编码方式来表示:原码(sign-magnitude representation)、反码(ones' complement)和补码(two's complement)。这些方法各有其特点,尤其在表示有符号整数(即正负数)时,它们的行为和效率上有所不同。

2024-04-24 15:01:16 686

原创 mysql--分库&分表&分区浅析

一、简介MySQL分库分表是一种常用的数据库架构优化方法,特别适用于数据量大、访问压力高的情况。通过将数据分布到多个数据库或表中,可以提高系统的可扩展性、性能和管理效率。以下是MySQL分库分表的一些关键应用场景和考虑因素。

2024-04-23 17:44:41 721

原创 mysql索引详解

MySQL支持多种类型的索引,每种索引类型都适用于特定的场景和用途。复合索引是数据库设计中的一种强大工具,能够针对多种不同的查询和操作场景提供性能优化。正确设计和使用复合索引可以显著提高应用程序的响应速度和数据库的处理能力。在实际应用中,应结合具体的业务需求和查询特点来合理规划索引策略。聚集索引:适合用作主键,尤其是当频繁进行范围查询和排序操作时。例如,订单数据按日期排序。非聚集索引:适合用在查询经常访问但不经常作为排序或范围查询基础的列。例如,查询中常用的状态字段或分类字段。

2024-04-22 20:52:56 1177

原创 站在设计者的角度看进程与线程

本文将深入探讨关于进程和线程的更多内容,包括:进程的生命周期和实现,有了支持多进程的顺序进程模型为什么还需要线程的概念,经典的线程模型及其各种实现方式的原理和优劣,对于应用程序开发者和操作系统都必不可少的进程与线程通信方式等等问题

2024-04-21 18:31:39 1211

原创 计算机硬件组成详解

时钟信号(Clock Signal)是一种定时信号,通常表现为一个连续的方波,其特点是具有固定的频率和周期。时钟信号的主要功能是提供一个统一的时间参考,以确保系统内各部件的操作能够同步进行。这个信号由系统的振荡器产生,并被分配到CPU、内存、输入输出设备等各个组件。每一次信号的上升沿或下降沿都标志着一个新的时钟周期的开始。每个时钟周期(通常称为“时钟脉冲”)都标志着数据处理和传输可以进行的一个基本时间单位。时钟信号的频率(即每秒中时钟周期的次数)直接影响了计算机的处理速度。

2024-04-20 16:36:11 569

原创 读屏障、写屏障...计算机的各种屏障你明白吗?

计算机领域有多种关于屏障的同步机制,虽然他们在名称上相似,都是并发编程中用于同步的机制,但它们在目的和应用上有明显的区别...

2024-04-20 16:32:06 1290

原创 避免上下文切换--Linux原子函数

在现代操作系统中,原子函数是一类特殊的函数,它们能够保证在并发环境中执行的操作是不可分割的。这意味着一旦一个原子函数开始执行,它的操作会在任何其他线程或进程可以介入之前完全完成。这是通过多种机制实现的,包括硬件支持的原子操作指令和锁。Linux操作系统广泛地使用原子函数来处理多线程和多进程中的资源共享问题,尤其是在内核开发中。上下文切换是一个计算成本较高的操作,涉及到保存当前任务的状态并加载另一任务的状态,通常在多任务操作系统中处理CPU时间分配时发生。

2024-04-16 11:15:37 671

原创 避免上下文切换--Linux原子函数

在现代操作系统中,原子函数是一类特殊的函数,它们能够保证在并发环境中执行的操作是不可分割的。这意味着一旦一个原子函数开始执行,它的操作会在任何其他线程或进程可以介入之前完全完成。这是通过多种机制实现的,包括硬件支持的原子操作指令和锁。Linux操作系统广泛地使用原子函数来处理多线程和多进程中的资源共享问题,尤其是在内核开发中。上下文切换是一个计算成本较高的操作,涉及到保存当前任务的状态并加载另一任务的状态,通常在多任务操作系统中处理CPU时间分配时发生。

2024-04-15 22:25:33 349

原创 缓存与数据库的数据一致性解决方案分析

在现代应用中,缓存技术的使用广泛且至关重要,主要是为了提高数据访问速度和优化系统整体性能。缓存通过在内存或更快速的存储系统中存储经常访问的数据副本,使得数据检索变得迅速,从而避免了每次请求都需要从较慢的主存储(如硬盘或远程数据库)中读取数据的延迟。这种技术特别适用于读取操作远多于写入操作的场景,如网页浏览、内容分发网络(CDN)和大规模的信息检索系统等。缓存的实现方式多样,包括但不限于内存缓存、分布式缓存和浏览器缓存等。这些缓存策略可以单独使用,也可以组合使用,以适应不同层级的需求和优化目标。

2024-04-14 22:57:02 1938

翻译 kafka生态系统

这是一份我们听说过的与Kafka集成的工具列表。有些是由第三方社区提供!当然,客户端在有单独的列表。

2024-04-13 16:01:22 10

翻译 Kafka文档&教程(一)

事件流是人体中枢神经系统的数字等效物。它是构建“永远在线”世界的技术基础,在这个“永远在线”的世界中,企业越来越多地被软件定义和自动化,软件的用户更多地是软件本身。从技术角度来说,事件流是实时从事件源(如数据库、传感器、移动设备、云服务和软件应用程序)捕获数据的做法,以事件流的形式存储这些事件流以供后续检索,实时以及回顾性地操作、处理和响应事件流,以及根据需要将事件流路由到不同的目标技术。事件流确保了数据的连续流动和解释,以便正确的信息在正确的地点、正确的时间可用。

2024-04-13 15:57:13 8

原创 java集合详解

对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能List接口是Collection接口的子接口List集合类中的每个元素都有序(即添加顺序和取出顺序一致)、且可重复List集合当中的每个元素都有其对应的顺序索引(从零开始)JDK API中的List接口的实现类有:常用的有:ArrayList、LinkedList和Vector。

2024-04-12 09:57:25 1304

原创 java序列化和反序列化详解

如果默认的序列化机制不符合需求,可以通过实现和方法来自定义序列化和反序列化的行为。Java序列化是一个复杂但强大的机制,允许开发者轻松地持久化和传输对象。虽然它对于简单的用途来说可能显得有些重,但它提供了一种标准方式来处理对象的深复制,以及对象状态的保存和恢复。正确使用Java序列化需要对其工作原理有深入的理解,尤其是在涉及版本控制和自定义序列化行为时。

2024-04-11 10:28:35 1053

原创 C语言必知必会

C语言必知必会

2024-04-09 13:59:51 917

原创 操作系统与编程系列专栏(一):导言

本文是系列专栏的第一篇文章,将带你深入浅出操作系统的前世今生和基础原理,包括它们的发展历程、核心组件、运行机制以及在现代计算中的重要性。操作系统,作为计算机硬件与软件资源的管理者,确保了计算资源的有效分配与使用。从早期的批处理系统到今天的多任务并行处理系统,操作系统经历了飞速的发展,不断地适应新的计算需求和技术标准。

2024-04-08 22:29:40 1034

原创 浏览器、网页及JS脚本详解

浏览器如何与网页协同工作,渲染、更新与卸载的生命周期

2024-04-07 09:55:40 871

原创 VUE必知必会

VUE入门必备教程

2024-04-06 21:06:01 978

原创 前端基础技术栈教程--HTML、CSS与javascript

在这份《前端基础技术栈教程》中,我们将一步步引导你深入浅出地探索HTML、CSS和JavaScript的奥秘。不论你是编程新手,还是希望巩固基础知识的开发者,这份教程都将为你提供清晰的指导和实践机会。

2024-04-05 13:40:28 1465

原创 富文本编辑器Quill全套教程

三、定制Quill。

2024-04-04 09:04:22 1073

原创 Quill文档(六):Parchment详解

Quill教程系列

2024-04-03 13:56:17 1230

原创 Quill文档(五):Delta格式

Quill文档教程系列文档

2024-04-03 13:50:37 625

原创 Quill文档(四):使用Parchment克隆Medium

Quill文档教程系列

2024-04-02 09:42:19 1686

原创 Quill文档(三):构建自定义模块

当您在Quill的API之上实现功能时,将其组织为一个模块可能会很方便。为了本指南的目的,我们将逐步介绍一种构建单词计数器模块的方法,这是许多文字处理器中常见的功能。一个函数可以注册为Quill模块,并且它将被传递相应的Quill编辑器对象以及任何选项。在内部,模块是Quill的许多功能的组织方式。您可以通过实现自己的模块并使用相同的名称注册来覆盖这些默认模块。本质上,单词计数器只是在编辑器中计算单词数量,并在某些UI中显示这个值。来接受计数器容器的选择器,而不是硬编码的字符串。

2024-04-02 09:37:27 518

原创 Quill文档(二):如何定制Quill

Quill使用文档系列文章

2024-04-01 15:07:54 972

原创 Quill文档(一):为什么是Quill

Quill实用文档系列文章

2024-04-01 15:03:58 315

原创 Java的心脏:深入解析Java虚拟机、进程与线程的精妙互动

进程(Process)和线程(Thread)是操作系统中非常基础且重要的概念,它们对于理解程序的执行、资源分配和并发编程至关重要。我将从操作系统(OS)和Java编程语言的角度来详细解释这两个概念。

2024-03-29 16:49:42 1253

原创 设计模式之旅:工厂模式全方位解析

简单来说,简单工厂模式注重于创建单一产品,工厂方法模式允许类的扩展,通过子类来指定创建哪个对象,而抽象工厂模式则提供一个创建产品家族的接口,使得创建一系列相关或依赖对象的客户端不依赖于产品的具体类。每种模式都有其适用的场景和优缺点,选择哪种模式取决于你面临的问题和设计的需求。

2024-03-29 11:49:23 1144

原创 编程必备:如何在Java中设置类路径和工作目录

在 Java 编程中,类路径(Classpath)和工作目录(Working Directory)是两个非常重要的概念,它们对于程序的编译和运行至关重要。我将分别对这两个概念进行详细的介绍,并解释它们在 Java 开发中的作用和重要性。类路径(Classpath)类路径是 Java 运行时环境用来查找类和包的一个参数。简而言之,它是环境变量的一部分,指定了 JVM(Java虚拟机)搜索类定义的位置。类路径可以指向几种不同的数据源:可以是目录(其中包含了编译后的.class。

2024-03-26 10:28:00 1309

原创 你了解java对象的生命周期吗?一文深入剖析java对象的实例化过程

深入理解Java对象的生命周期和实例化过程对于编写高效、健壮和可维护的Java代码是非常重要的。构造器的调用过程是对象生命周期中非常重要的一部,正确理解和使用构造器对于编写高质量的Java代码至关重要。Java类的实例化是Java编程中的一个基础而重要的概念,它涉及到对象的创建和内存分配。Java中构造器的调用是对象创建过程的一个关键环节,它负责执行对象的初始化代码。类的实例化过程不仅涉及到对象的创建,还包括类的加载、链接、初始化等一系列复杂的步骤,这些步骤确保了Java程序的健壮性、安全性和高效性。

2024-03-25 10:30:00 645

原创 成员&局部&匿名&静态内部类...内部类的作用你真的明白吗?

每种类型的内部类都有其特定的用途和优点,例如提高封装性、更好地组织代码、减少类的命名冲突等。本文详细介绍了Java内部类主要的四种内部类:成员内部类、局部内部类、匿名内部类和静态内部类。

2024-03-24 10:18:41 850

原创 Java开发者学习路线(附最全技术栈一览表,来查漏补缺)

Java开发者的学习之路是一条漫长而又充满挑战的旅程。每一位开发者都应该根据自己的职业发展阶段,选择合适的学习路径,不断提升自己的技术能力和架构设计能力。希望本文能为你的学习和成长提供一份指南,助你在Java开发道路上顺利成长。

2024-03-23 18:49:59 1474 1

原创 大文件上传的前后端实践:从分片到重组

探索大文件上传的方案设计与实战,涉及到前端的文件处理、网络传输优化,以及后端的文件接收、存储和安全处理等多个方面。

2024-03-20 16:23:20 742

原创 程序员的内功心法:核心技能与学习资源全揭秘

深入讨论了程序的概念、类型、工作机制、设计原则、软件架构和系统设计、编程语言的特点以及未来趋势后,我们现在探索的是程序对我们生活的影响以及编程能力为我们带来的潜在价值。在当代社会,程序无疑已经成为我们文明的基石,无论是社交媒体、在线购物、智能家居还是远程办公,程序化的技术无时无刻不在渗透和改善着我们的日常生活。

2024-03-19 22:01:59 1191 1

Spring官方文档(中文翻译&人工校对)

满足markdown格式的Spring官方文档中文翻译版,一手信息才能掌握Spring!

2024-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除