自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (7)
  • 收藏
  • 关注

原创 基于ChatGPT的智能问答机器人——ShuDong AI

chatgpt使用指南

2023-04-25 14:19:46 694

原创 为什么说golang参数传递为值传递?

一、函数参数传递方式函数参数传递有2种方式:值传递和引用传递。值传递是指调用函数时将参数值复制一份到函数,如果对函数参数进行修改,影响不到实际参数。引用传递是指调用函数时将参数的指针传递到函数中,函数中对参数的修改,将影响到实际参数。不同编程语言的函数参数传递方式不尽相同,例如C语言中的int、float等参数类型采用值传递的方式,而数组类型默认为引用传递,C++中的引用传递显而易见,其类型系统直接包含了引用类型。二、Go语言中的函数传递方式那么Go语言何种参数传递方式呢?开门见山,直接上官方说

2021-05-01 09:53:35 815 1

翻译 Go的反射原理(3)

3、反射的第三条规则:被修改的反射对象,其值必须可写第三条规则是最不易理解,具有迷惑性的,但是我们从第一条规则开始分析就慢慢就懂了。下面是代码不能正常工作,但是值得分析。var x float64 = 3.4v := reflect.ValueOf(x)v.SetFloat(7.2) // Error: 将抛出Panic如果你运行这段代码,panic错误信息如下panic: reflect.Value.SetFloat using unaddressable value出现报错不是7.

2020-11-22 22:08:06 593

翻译 Go的反射原理(2)

上一篇文章介绍了Go的interface类型,现在可以开始介绍反射了。1、反射的第一条规则:interface类型转reflection对象首先,我们需要了解reflect包中的两种类型:Type和Value.这两种类型,以及两个简单方法(reflect.TypeOf和reflect.ValueOf)使得我们可以访问interface类型。(另外,从reflect.Value也可以很容易获取reflect.Type,但是这里我们暂且将Value和Type这两个概念区分开)先讲TypeOf:packa

2020-11-15 10:43:40 100

翻译 Go语言的反射原理(1)

本文根据The Go Blog翻译,原文英文版:https://blog.golang.org/laws-of-reflection介绍反射是一种程序获取自身结构(特殊是数据类型)的机制。本文将阐述Go语言中的反射机制是如何工作的。每一种语言的反射机制是不同的,有些语言支持反射,有些语言则根本不支持。下文中所说的“反射”即是指Go语言的反射。类型和接口interfact反射是建立在类型系统的基础上,在正式介绍反射之前,本文将首先介绍Go语言的类型系统,特殊是interface类型,因为interf

2020-11-08 19:36:29 151

原创 Linux系统的虚拟内存管理

“虚拟内存”和“物理内存”的概念和区别,在上一篇文章已经已详细阐述,本文不再赘述。补充一点,“物理内存”资源有限,从稀缺资源分配的角度出发,系统更多考虑的是如何充分利用“物理内存”资源。相比之下,“虚拟内存”并不是什么稀缺资源,虽然每个进程可以拥有的虚拟内存空间也是有限的,但是一般情况,进程根本用不了那么大的虚拟地址空间。32位系统中每一个进程都有4G的虚拟地址空间,其中1G系统空间由所有进程共用,3G用户空间由每一个进程独占。因此,Linux系统的“虚拟内存”分配策略比较简单,更多从需求角度出发,尽可能满

2020-11-01 22:32:01 395

原创 Linux系统的物理内存管理

1、“物理内存”和“虚拟内存”一般我们说内存,即指“物理内存”。那为什么本文要强调“物理内存”的概念呢?这是为了和“虚拟内存”的概念区分。常见的操作系统,例如Linux和windows,都是建立在存储映射机制的基础上。不同计算平台的“物理内存”大小不尽相同,其在操作系统初始化时,根据硬件情况确定,而“虚拟内存”的大小是由操作系统本身决定,例如32位系统的每一个用户态进程拥有的“虚拟内存”大小就是固定4G。简单地说,同一个操作系统不管运行在什么机器上,每个进程拥有的虚拟内存空间都是固定的;而同一台机器不管

2020-10-15 20:05:33 455

原创 智能指针在数据缓存中的应用

一、一种数据本地缓存方法出于减少访问数据库次数,降低IO操作频率的目的,一些后台接口通常会对数据进行本地缓存,特别是不常更新的数据,比如静态配置数据。这些数据在几分钟,甚至几个小时之内在都不会发生任何变化。如果每次查询这类数据,都直接访问去数据库,或者进行其它IO操作,会对数据库等造成不必要的压力,降低接口的性能。一种常见的数据本地缓存方法是采用单例模式存储缓存对象。另外一方面,虽然本地缓存不经常更新,但是仍然需要一种机制可以定时刷新本地缓存,否则刷新缓存只能通过重启服务,非常不方便。工程实现中一般通

2020-09-28 08:15:37 269

原创 计算机网络问题定位过程

一、TCP协议TCP通信包括三个阶段——建立连接(3次握手)、数据传输、关闭连接(4次挥手)需要注意是图中实线表示客户端,虚线表示服务端,图的起点是Closed状态。“三次握手”流程如下:1、服务器端被动打开Closed -> Listen,客户端请求与服务端建立连接Closed -> SYN_SEND;2、服务端接收到连接SYN请求,回复SYN+ACK,状态由Listen -> SYN_RECV;3、客户端收到SYN+ACK,并最后回复ACK,状态由 SYN_SEND -&

2020-09-25 21:57:48 161

原创 为什么计算中负数表示为补码?

计算机中数的表示一、整数的表示二、CPU运算单元ALU三、负数的表示四、理论证明一、整数的表示计算机中所有类型的数都采用二进制编码,整数也不例外。正整数的表示,比较好理解,例如正整数“23”用8位数二进制编码表示为“00010111”,8位正整数可以表示的范围0~255。负数的表示就不是那么显而易见。以8位数为例,一般的想法是,将最高位用作符号位,其余编码与正整数类似。以“-23”为例,其二进制编码表示为“10010111”,可以看出“23”和“-23”除了符号位不同之外,其它位均一样。但实际上在计

2020-09-25 21:41:48 279

ARM Jtag Debug Final详细使用教程

ARM Jtag Debug Final详细使用教程。。。。。。。。。。

2018-05-13

中山大学单片机原理

中山大学单片机原理与应用期末复习考试题,试题1

2013-09-03

数字音乐编码

数字音乐编码,可用于单片机以及各种微机音乐代码设计

2013-09-03

USBasp驱动

可用于单片机最小系统的驱动,USPasp

2013-09-03

汉子取字模软件

汉子取字模软件,用于各种规格的点阵汉字字模的设计

2013-09-03

keil uvision 3

keil uvision 3单片机编程仿真工具

2013-09-03

keil uvision 4(3)注册机

单片机keil uvision 3 和4破解注册

2013-09-03

空空如也

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

TA关注的人

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