自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞鱼的博客

飞鱼的博客

  • 博客(88)
  • 收藏
  • 关注

原创 编写 GPT 提示词的公式 + 资源分享

GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。本文将介绍一个编写 GPT 提示词的公式,这个公式可以帮助我们编写出更好的提示词。

2023-09-22 16:35:27 3349 1

原创 处理机调度

在多道程序环境下,内存中存在着多个进程,进程的数目往往多于处理机的数目。这就要求系统能按某种算法,动态地将处理机分配给一个处于就绪状态的进程,使之执行。分配处理机的任务是由处理机调度程序完成的。对于大型系统运行时的性能,如系统吞吐量、资源利用率、作业周转时间或响应的及时性等,在很大程度上都取决于处理机调度性能的好坏。因而,处理机调度便成为OS中至关重要的部分。# 调度的层次在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。处理机调度算法是指根据处理机分配策略所规定的处

2023-06-29 16:44:42 222

原创 编译程序的任务

编译程序是一种翻译程序,编译程序是将一种语言形式翻译成另一种语言形式。它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。整个编译过程一般可以划分为 5 个阶段:词法分析、语法分析、语义分析及中间代码生成、中间代码优化和目标代码生成。

2023-06-20 09:30:27 870

原创 Java的泛型

泛型程序设计(Generic programming) 意味着编写的代码可以被很多不同类型的对象所重用。泛型对于集合类尤其有用,例如,ArrayList 就是一个无处不在的集合类。一个 ArrayList 类可以聚集任何类型的对象,这是一个泛型程序设计的实例。

2023-06-13 09:11:39 512

原创 Java的先行发生原则

先行发生原则(Happens-Before)是Java内存模型定义的一个等效判断原则。依赖这个原则,我们可以通过几条简单规则判断数据是否存在竞争,线程是否安全,而不需要陷入Java内存模型苦涩难懂的定义之中。

2023-06-05 11:37:09 570

原创 Java的volatile

volatile 关键字可以说是 Java 虚拟机提供的最轻量级的同步机制,但是它并不容易被正确、完整地理解,以至于许多程序员都习惯去避免使用它,遇到需要处理多线程数据竞争问题的时候一律使用 synchronized 来进行同步。了解 volatile 变量的语义对理解多线程操作的其他特性很有意义。

2023-05-31 13:08:25 673

原创 Java的Atomic原子类

Java SDK 并发包里提供了丰富的原子类,我们可以将其分为五个类别,这五个类别提供的方法基本上是相似的,并且每个类别都有若干原子类。

2023-05-26 14:59:19 1124

原创 Java的CAS操作

CAS 是乐观锁设计思想的实现。CAS 的思想是:在“读取 - 修改 - 写回”操作序列中,先读取并修改数据,写回数据前先判断读取数据后的这段时间内数据是否发生变化(共享变量的当前值是否是我们的期望值)。通过 CAS 我们可以以无锁的方式,保证对共享数据进行 “读取 - 修改 - 写回” 操作序列的正确性。

2023-05-21 10:37:54 747

原创 Java中synchronized的优化

为了实现高效并发,虚拟机对 synchronized 做的一系列的锁优化措施。包括:适应性自旋、锁消除、锁粗化、轻量级锁、偏向锁。

2023-05-17 12:36:02 528

原创 Java的线程

本篇文章介绍了1. Java的线程生命周期;2. Java的线程状态切换;3. Java线程API的使用。

2023-05-14 12:00:42 1673

原创 Java的枚举类型

如果类的对象的数量只有有限个,并且可以确定对象的属性,那么考虑使用枚举类。所有的枚举类型都是 Enum 类的子类。它们继承了这个类的许多方法。

2023-05-12 08:29:57 429

原创 Java的抽象类 & 接口

抽象类:在子类继承父类时,父类的一些方法实现是不明确的(父类对子类的实现一无所知)。这时需要使父类是抽象类,在子类中提供方法的实现。接口(interface)技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现。

2023-05-10 09:35:19 806

原创 Java的反射机制

Java 的反射机制允许在程序运行期间,借助反射 API 获取类的内部信息,并能直接操作对象的内部属性及方法。

2023-05-05 18:22:08 753

原创 Java的对象包装器 & 自动装箱

有时,需要将 int 这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。

2023-05-02 16:53:56 218

原创 Java的Object类

Object 类是 Java 中所有类的始祖,在 Java 中每个类都是由它扩展而来的。

2023-04-29 15:49:55 856

原创 Java的初始化块

初始化块是一种初始化数据域的方法。

2023-04-27 10:11:44 363

原创 Java的static修饰符

本文主要介绍:静态域、静态常量、静态方法、工厂方法。

2023-04-26 08:56:11 440

原创 Java的final修饰符

可以将实例域定义为 final。对于 final 域来说,构建对象时必须初始化 final 实例域,构造对象之后就不允许改变 final 实例域的值了。final 类和 final 方法用来阻止继承。

2023-04-24 14:09:27 910

原创 理解Java程序的执行

理解Java程序的执行

2023-04-22 13:02:40 294

原创 Java的对象克隆

Object 类提供的 clone() 方法是 “浅拷贝”,并没有克隆对象中引用的其他对象,原对象和克隆的对象仍然会共享一些信息。深拷贝指的是:在对象中存在其他对象的引用的情况下,会同时克隆对象中引用的其他对象,原对象和克隆的对象互不影响。

2023-04-19 08:59:41 476

原创 Java的访问修饰符

为了实现面向对象程序设计(OOP)的封装这个特性,需要程序设计语言提供一定的语法机制来支持。这个语法机制就是访问权限控制(访问修饰符:public、protected、private、default)。

2023-04-15 08:31:42 277

原创 面向对象程序设计

面向对象程序设计是一种编程范式或编程风格。面向对象的程序是由类和对象组成的(以类和对象作为组织代码的基本单元),并将封装、抽象、继承、多态这四个特性,作为程序设计和实现的基础。

2023-04-13 10:57:50 537

原创 JVM:并发的可达性分析

当前主流编程语言的垃圾收集器基本上都是依靠可达性分析算法来判定对象是否存活的

2023-04-11 13:32:41 574

原创 Java内存模型

《Java虚拟机规范》中曾试图定义一种“Java内存模型”(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异, 以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节。

2023-04-08 09:37:46 363

原创 JVM的垃圾收集算法

介绍分代收集理论和几种垃圾收集算法(标记-清除、标记-复制、标记-整理)的思想及其发展过程。

2023-04-05 11:20:51 288

原创 内存管理:判断对象是否存活

在堆里面存放着 Java 世界中几乎所有的对象实例,垃圾收集器在对 Java 堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对象)。有两种判断对象是否存活的算法:引用计数算法、可达性分析算法。

2023-04-03 17:46:28 221

原创 Java的运行时数据区域

本文从概念上介绍 Java 虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能产生的问题。

2023-04-02 09:00:02 272

原创 Kafka消费者

消费者读取消息。在其他基于发布与订阅的消息系统中,消费者可能被称为订阅者 或 读者。消费者订阅一个或多个主题,并按照消息生成的顺序读取它们。消费者通过检查消息的偏移量来区分已经读取过的消息。

2023-03-25 12:41:35 521

原创 Kafka生产者

生产者创建消息。在其他基于发布与订阅的消息系统中,生产者可能被称为发布者 或 写入者。

2023-03-24 11:37:32 203

原创 初识Kafka

通过阅读本篇文字,你可以了解到 Kafka 中的概念:消息、主题、分区、消费者群组、broker 等。

2023-03-23 10:41:45 371

原创 深入理解事务

事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑执行单元。即事务中的所有读写是一个执行的整体,整个事务要么成功(提交)、要么失败(中止 或者 回滚)。如果失败,应用程序可以安全地重试。

2023-03-22 12:45:08 206 1

原创 数据库设计的步骤

数据库设计是指:根据用户的需求,在数据库管理系统上(比如:MySQL、Oracle),设计数据库的结构和建立数据库的过程。数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。

2023-03-19 19:45:19 928

原创 Java集合

Collection 包括 List、Set、Queue 三种类型。List 是一种有序(可以按照插入顺序访问元素)的集合;List 集合中的元素允许重复;可以使用索引访问 List 集合中的元素。List 的实现类有 Vector、CopyOnWriteArrayList、ArrayList、LinkedList。Set 集合中的元素不允许重复;Set 集合中的元素不支持索引访问,可以使用 Set 集合以 O(1) 的时间复杂度快速判断一个元素在集合中是否存在。

2023-03-15 08:26:10 95

原创 传输安全HTTPS

通过阅读本篇文章你可以了解到:1、为什么要有HTTPS;2、TLS1.2 握手的过程。

2023-03-13 12:23:36 516

原创 从输入URL到Web页面呈现的全过程

简单来说,当用户在浏览器的地址栏中输入 URL 并点击回车后,浏览器从服务端获取资源,然后将内容显示在页面上。这个过程经过了:浏览器缓存 -> DNS 域名解析 -> URL 编码 -> 使用 HTTP 或者使用 HTTPS 协议发送请求等过程。

2023-03-04 15:38:07 800

原创 内容分发网络

内容分发网络(英语:Content Delivery Network 或 Content Distribution Network,缩写:CDN)将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。

2023-03-01 15:37:10 406

原创 DNS 域名解析

域名是互联网上某一台计算机或计算机组的名称。域名可以说是一个 IP 地址的代称,目的是为了便于记忆。通过阅读本篇文章,你可以了解到:1、域名的结构;2、域名的解析过程;3、记录类型(A记录、CNAME记录 等)4、域名的应用

2023-02-25 19:41:27 4744

原创 信息加密技术

通过阅读本篇文章,你可以了解到对称加密、非对称加密、组合加密。

2023-02-21 14:12:33 585

原创 UTF-8编码

通过阅读本篇文章,你可以了解到:UTF-8编码的规则。

2023-02-14 22:26:41 12767 1

原创 Unicode编码

本篇文章介绍 Unicode 编码。

2023-02-09 10:44:23 3138

空空如也

空空如也

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

TA关注的人

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