编程语言 语言crates cargo

go语言的并发

并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点、再快一点。Go语言在语言层面天生支持并发,充分利用现代CPU的多核优势,这也是Go语言能够大范围流行的一个很重要的原因。 基本概念 首先我们先来了解几个与并发编程相关的基本概念。 串行、并发 ......
语言

流式编程

创建流 // Stream.of() Stream.of("hello ", "world").forEach(System.out::print); // 集合调用stream()方法创建流 List<Integer> list = Arrays.asList(1, 2, 3); int sum ......

理解结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。 在结对编程中,观察员同时考虑工作的战略性方向,提出改进 ......

英语打字练习软件-c语言编写

学习c语言的时候编写的英语打字练习软件,已经上传github 自取 https://github.com/lzl12123/typing-software 软件实际效果如下 在下载的压缩包里,运行exe文件就可使用,源码为ConsoleApplication1这个文件 ......
语言 软件

0316-0322面向对象编程

0316-0322面向对象编程 1.面向过程、对象概念 # python中两大范式:1.面向过程 2.面向对象 '''两者都不是新的技术,而是做事的思维方式''' # 面向过程的核心是过程:即按先后次序来做,也就是机械式的思维方式,如把大象放冰箱步骤 优点:复杂问题简单化,进而流程化 | 缺点:扩展 ......
对象 0316 0322

为什么Redis不直接使用C语言的字符串?看完直接吊打面试官!

众所周知Redis有以下几种常见的数据类型 String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Sorted set(有序集合)、Stream(流)、Geo(地理空间索引)、Bitmap(位图)、HyperLogLog(基数统计)等。 我们最常用的就是String(字符串)... ......
字符串 字符 语言 Redis

【编程算法】【寻路】【A*优化 - 束搜索】

束搜索的好处,就在于,他可以通过剪枝减少搜索的节点,减少时间和空间的消耗但是劣势就是不一定得到最佳路径,如果把他的光束收缩到最小,就是贪心算法 1. 在存储有限的情况下进行类似的宽度优先的图搜索算法 2. 在搜索空间很大的情况下对图搜索进行存储限制的重要性 ......
算法

【编程算法】【寻路】【A*优化 - 迭代加深A*(IDA*)】

限定下限的深度优先搜索 由于不再采用动态规划的方法,节省内存 最大的优点:找到最短路径情况下,需要最小内存 但是是时间换空间,不会记得走过一条路 IDA-Star(IDA*) Algorithm in general « Insight into programming algorithms (wo ......
算法 IDA

C语言:指针易错

#include <stdio.h> main() { char a[]="hellofg",*p=a; printf("%c\n",*p+5) ;//*p得到指针指的字符,+5是字符ASCII码加5 ,结果为m printf("%c\n",*(p+5)) ;//h:p+0 e:p+1....f:p ......
指针 语言

Go 语言:如何利用好 TDD 学习指针并了解 Golang 中的 error 处理

我们在上一节中学习了结构体(structs),👉Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口 它可以组合与一个概念相关的一系列值。 你有时可能想用结构体来管理状态,通过将方法暴露给用户的方式,让他们在你可控的范围内修改状态。 金融科技行业都喜欢 Go 和比特币吧?那就来看看我们能创 ......
指针 语言 Golang error TDD

Python——开始编程前的准备(二)

1. 测试领域,python能做什么? web(UI)自动化测试 接口自动化测试 测试工具开发 测试平台开发 2. 测试领域以外,python能做什么 人工智能算法开发 大数据 数据分析 网站开发 游戏开发 爬虫开发 3. python还有什么其他的优点 跨平台 免费开源 面向对象 强扩展性 扩展库 ......
Python

Linux扩展篇-shell编程(四)-shell条件判断

shell条件判断 ......
shell 条件 Linux

Tars-Java网络编程源码分析

作者:vivo 互联网服务器团队- Jin Kai 本文从Java NIO网络编程的基础知识讲到了Tars框架使用NIO进行网络编程的源码分析。 一、Tars框架基本介绍 Tars是腾讯开源的支持多语言的高性能RPC框架,起源于腾讯内部2008年至今一直使用的统一应用框架TAF(Total Appl ......
网络编程 Tars-Java 源码 网络 Tars

Go语言 :使用简单的 for 迭代语句进行 TDD 驱动测试开发与 benchmark 基准测试

前提准备与运行环境请参考:(新手向)在Linux中使用VScode编写 "Hello,world"程序,并编写测试-Ubuntu20.4 在 Go 中 for 用来循环和迭代, Go 语言没有 while,do,until 这几个关键字,我们只能使用 for。这也算是件好事! 让我们来为一个重复字符 ......
基准 语句 benchmark 语言 for

C语言 ini 文件读写【Iniparser库】

一、概述 iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库的API可以对ini文件(配置文件)进行解析、设置、删除等操作。 常见的 ini 读写开源库有:minIni、inifile、iniparser 二、使用 下载 Github:http ......
Iniparser 语言 文件 ini

深入理解Go语言中的sync.Cond

1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用 Cond 来实现 goroutine 之间的同步。 2. 基本使用 2.1 定义 sync.Cond是Go语言标准库中的一 ......
语言 sync Cond

自己动手从零写桌面操作系统GrapeOS系列教程——20.汇编语言读硬盘实战

学习操作系统原理最好的方法是自己写一个简单的操作系统。 本讲我们设计一个简单的读硬盘实验。通过一定的方法使硬盘第二个扇区的前3个字节依次为1、2、3,最后3个字节依次为3、2、1,中间的506个字节全为0。然后通过读硬盘程序将硬盘第二个扇区的数据读取到内存0x7e00-0x7fff的地方,也就是内存 ......
实战 桌面 硬盘 GrapeOS 语言

自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内容为: 在内存中准备一段有特征的512字节数据,地址为0x7e00~0x7fff,其特征是前3个字节依次为4、5、6,最后3个字节依次为6、 ......
实战 桌面 硬盘 GrapeOS 语言

学习ASP.NET Core Blazor编程系列三十——JWT登录(4)

JWT只是缩写,全称则是JSON Web Tokens,是目前流行的跨域认证解决方案,是基于开放标准RFC7519,提供一种身份认证与信息交换的解决方案,是一种基于JSON的用于在网络上声明某种主张的令牌(token)。今天的文章使用API接口来实现使用JWT登出功能。 ......
Blazor Core ASP NET JWT

自己动手从零写桌面操作系统GrapeOS系列教程——17.用汇编语言清空屏幕

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在QEMU中会默认输出一些字符,有时候会干扰我们自己输出的字符。一个比较好的办法是向将屏幕清空,再输出我们想要输出的字符。下面就来学习如何清空屏幕。 一、清空屏幕 其实清空屏幕的原理很简单,就是将屏幕写满空格就行了。 下面来实战。mbr8.as ......
屏幕 桌面 GrapeOS 语言 教程

解读C#编程中最容易忽略7种编写习惯!

编程时犯错是必然的,我们来解读一下编程中最容出现的错误 1、拼接字符串 在C#编程中,字符串类型的处理是比较容易出错的地方,在.NET Framework中,字符串是一个不可变的类型,当一个字符串被修改后,总是创建一个新的副本,不会改变源字符串,大多数开发人员总是喜欢使用下面这样的方法格式化字符串: ......

我的十年编程路 尾声

终于走到了尾声。不过总体来说,这十年的回忆录,写起来还挺轻松的。 算上序和尾声,其实是有12篇文章,每篇文章大概3000字左右。印象中只有两篇文章是低于3000字,这大概是写掘金小册的后遗症之一。 这12篇文章是我在多个平台一起分发的,算是一次测试,看看各平台不同的读者对这类八卦文章都有何反应。 我 ......
尾声

我的十年编程路 2014年篇

2014年,对我来说意义非凡。除了前一篇提到的写作之路正式启航外,还有一些其它的种子,也是在这一年播撒下去的,且听我慢慢道来。 那是在1月3日,我收到了本地一家国企的面试邀请,当然前提是我投了简历。为什么这个日期能如此准确呢?为了写这篇文章,我特意查了一遍2014年的邮件收件箱,才发现当年还真的做了 ......
2014

我的十年编程路 2015年篇

如果说2014是我编程之路狂飙的开始,那么2015年则是更加将其发扬光大。 2014年底,我获得了公司的先进奖,这在前一篇已经说过了。这个奖是我工作以来第一次获得的荣誉,所以格外珍惜。虽然有说法是这种奖,大家轮流得。但我还是很珍惜,以至于后来面试的简历上一直写着它。 有了这个奖的鼓励,2015年我就 ......
2015

我的十年编程路 2016年篇

时光匆匆,2016年来了,此时的我已经工作了3年有余。过去的三年,虽有坎坷,但总体顺利,是个逐渐上升的线。 进入2016年后,我不再做那些技术探索方面的App了。部门的拳头产品——加密通信要添加IM即时消息功能,类似微信的样子,这个大功能由我来设计实现。 有了前面几年的技术积累和探索,我们在众多服务 ......
2016

我的十年编程路 2017年篇

2016和2017,这两年是我飞速发展的两年。一方面是技术、工作能力,另一方面是对人生的思考。 随着技术能力的不断提升,博客也随之更新。在2017年伊始,我收到了CSDN学院的讲师邀请函。没错,那个时候我就有机会做视频课了,只是一直在产出图文内容,也就没想着做视频教程。 现在回想起来,当时应该是觉得 ......
2017

我的十年编程路 2018篇

记不得是在什么地方,我看过一个调查。调查的问题就是请大家选出最近几年里,自认为光景最好的一年。统计结果显示:大部分人会选择2018。这一年疫情还没来,世界基本没有大战的新闻,也基本 没有什么天灾。可以说是很安稳的一年。但这一年对于我来说,不仅发生了翻天覆地的变化,这些变化更影响了我的一生。这一切要从 ......
2018

我的十年编程路 2019年篇

随着2018年,三星天津研究院的裁撤,我选择了到广州的三星研究院工作,与最心爱的她开始一起生活。 这一年的开始,我注册了博客园。和2014年类似,在刚注册不久,我写了一篇题为《全新开始,全心出发》的文章。在这篇文章里,我又一次刨析自己,深入内心。 从网站的风格样式上看,博客园并无优势,甚至在某些地方 ......
2019

我的十年编程路 2020年篇

我出生在1990年,2020年到来的时候,我完成了一项成就:奔三。同时,也开启了新的征程:奔四。 2020年的春节是在广州的丈母娘家度过的,春节后大概是初五,或者是初六,我和媳妇就返回天津的家了。 那个时候,大家应该都有印象,疫情刚刚爆发,全国在封高速路。本来想开车回去的,结果怕有风险,还是选择了飞 ......
2020

我的十年编程路 2021年篇

慢慢地,时光走过了8个年头,来到2021年。 站在2021年,回望8年的过往,没有大的起伏和波澜。或许是上天的眷顾,我的事业发展一直都很顺利。当然,弯路也走过一些,而且工作其实挺辗转的,如果看过我前几年的文章就会知道。但这都没关系,我的Plan B,也就是写作,提供了能力和经济上的支撑。甚至,现在, ......
2021