趣谈专题

趣谈递归算法

记得之前小罗师傅给我写过一个有趣的VBS程序,代码就不说了,它讲的是一个有趣的小故事:“山上有座庙,庙里有个老和尚很爱跟人家讲故事,故事是这样的:山上有座庙,庙里有个老和尚很爱跟人家讲故事,故事是这样的...”你一定凌乱了:这老和尚是什么鬼!!总是一直重复自己说的话呢??? [自拍也是递归哟] 一、什么是递归调用   哈哈,一个小玩笑,引出递归的定义,程序调用自身的编程

趣谈(思考)TCP建接时三次握手和断连时四次握手

了解TCP的你们应该知道,TCP 协议是基于连接的(UDP不是面向连接的),先建立好连接,然后再进行传输。建立连接时是3次握手,断开连接是四次握手,一起学习: 三次握手建连-客户端发起:        Server 端先监听端口,此时Server的连接状态是 LISTEN 状态。        这时 Client 端准备建立连接,向Server端发送一个 SYN 同步包,Clie

趣谈 Rust 的 Copy trait 和 Clone trait

一、Copy trait 的关键作用 Rust 程序中的变量可以分成两类:实现 Copy trait 的和没实现 Copy trait 的。这有啥区别?当然很重要! 实现 Copy trait 的变量: 不存在所有权问题,可以随意赋值给其他变量,可以随意当参数传递给函数。因为每次赋值或函数传参数,实现 Copy trait 的变量都是把自己的一个完整的拷贝给了别人,而自身不因此受任何牵连和副作

趣谈Linux操作系统:Linux 启动过程

Linux 启动过程 实模式时内存分配 从实模式切换到保护模式 启用分段,就是在内存里面建立段描述符表,将寄存器里面的段寄存器变成段选择子,指向某个段描述符,这样就能实现不同进程的切换了。启动分页。能够管理的内存变大了,就需要将内存分成相等大小的块。 lzma_decompress.img 负责切换模式的原因 解压 kernel.img 太大了,1m 的内存空间不够用,需要先切换

趣谈事件与委托

事件与委托似乎很难以理解,这是因为它们的使用方式与常用的编码有很大的差别,例如通常编写的都是同步代码,调用一个类型的方法,会即刻出现方法执行的结果,这是符合逻辑的。但在某些情况中,同步代码未必满足需求,拿公共汽车来打个比方,如果交通管制中心希望每一辆公车到达一个站点时都发送给自己一个信号以便自己能够随时掌握交通状况,使用同步代码,公汽对象肯定需要调用管制中心对象,这样就出现了我们一直不愿意看到的情

Swift 结构化并发之全局 Actor 趣谈

概览 在 Swift 结构化并发构成的体系中,一个称为“演员”(Actor)的成员扮演了非常重要的角色,它被用来隔离和同步执行中的数据。 除了普通 Actor 以外,还有一个全局“演员”(Global Actor)的概念,它是做什么的?又有什么与众不同的长处呢? 在本篇博文中,您将学到如下内容: 概览1. MainActor:“我是主角!”2. 何为全局 Actor?3. “开始

【Docker】一文趣谈Docker

🏡浩泽学编程:个人主页  🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》              《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、Docker是什么Docker历史 二、Docker为什么会出现三、Docker能做什么总结

Swift 入门学习:集合(Collection)类型趣谈-下

概览 集合的概念在任何编程语言中都占有重要的位置,正所谓:“古来聚散地,宿昔长荆棘;游人聚散中,一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理,怎能不让我们满心欢喜呢? 在 Swift 入门学习:集合(Collection)类型趣谈-上 这篇博文中,我们已初步学习了集合的相关知识。而在下篇中,我们将继续集合的探索之旅。 在本篇博文中,您

Swift 入门学习:集合(Collection)类型趣谈-上

概览 集合的概念在任何编程语言中都占有重要的位置,正所谓:“古来聚散地,宿昔长荆棘;游人聚散中,一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理,怎能不让我们满心欢喜呢? 在这里,我们就和 Swift 语言刚入门的小伙伴们一起来闲聊一番关于集合有趣的内容吧。 在本篇博文中,您将学到如下内容: 概览1. 数据总动员:集合!2. 数组3. 字

ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈

0. 概览 结构化代码语义是任何语言入门之必备基本功,想写出“意大利面条”似的美味代码么?直接干就对了! 虽然上面有些“话糙理不糙”,但不可否认的是现今几乎所有高级语言都对代码结构化语义提供了良好的支持。入门码农们的第一课都是先从顺序执行、跳转、条件走偏开始学起。 在顺序执行的结构化代码中,如果之前申请了资源,怎么确保随后无论发生什么事它们都可以被正确释放呢? 在本篇博文中,您将了

趣谈MySQL历史,以及MariaDB初体验

作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) MySQL 是一个跨世纪的伟大产品,它最早诞生于 1979 年,距今已经有 40 多年的历史了,而如今比较主流的 Java 语言也只是 1991 年才诞生的,也就是说 MySQL 要比 Java 的诞生还早十几年,不得不惊叹二者强大的生命力。 MySQL 的应用十分广泛,像 G

4 DHCP与PXE IP是怎么来的,又是怎么没的(整理自趣谈网络协议

导图文件位置:https://github.com/StephennQin/mind-map/blob/master/4%20DHCP%E4%B8%8EPXE%20IP%E6%98%AF%E6%80%8E%E4%B9%88%E6%9D%A5%E7%9A%84%2C%E5%8F%88%E6%98%AF%E6%80%8E%E4%B9%88%E6%B2%A1%E7%9A%84.xmind

趣谈erp流程管理

ERP管理软件难理解吗?请看下面的故事:       家   中   请   客     一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?”(订货意向)     妻子:“当然可以,来几个人,几点来,想吃什么菜?”     丈夫:“6个人,我们7点左右回来,准备些酒   烤鸭   番茄炒蛋   凉菜   蛋花汤。。。。。。,你看可以吗?”(商务沟通)     妻子:“

【网络协议趣谈】TCP协议连接和状态

UDP协议像小时候一样简单,相信网之初,性本善,不丢包,不乱序 而TCP协议像长大后一样复杂和成熟,认为网络环境是恶劣的,丢包、乱序、重传,拥塞都是常有的事情,因而要从算法层面来保证可靠性 一、TCP包头格式 先来看TCP头的格式,从下面这个图可以看出它比UDP复杂得多 1.1 源端口号和目标端口号 首先,源端口号和目标端口号是不可少的,这一点和UDP是一样的。如果没有这两个端口号,数

趣谈多线程(Python版)

温馨提示:本文篇幅较长,建议读者耐心阅读,本文中的代码经过笔者精心构思,可以复制过去运行一下,观察输出结果,所有代码在python3.5.0中测试通过。 文章目录 What is 多线程?Why we choose 多线程?How to use 多线程?Thread类剖析(关键)线程创建的方法(关键中的关键) 同步原语锁信号量条件变量[^2] What is 多线程?

SwiftUI 趣谈之:绝不可能(Never)的 View!

概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没! 不过,倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码,就会发现里面嵌有一些奇怪 Never 类型,带来阵阵“违和感”: 那么 Never 到底是一种怎样的存在?它们在 SwiftUI 中又到底扮演着什么角色呢? 在本篇博文中

SwiftUI 趣谈之:绝不可能(Never)的 View!

概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没! 不过,倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码,就会发现里面嵌有一些奇怪 Never 类型,带来阵阵“违和感”: 那么 Never 到底是一种怎样的存在?它们在 SwiftUI 中又到底扮演着什么角色呢? 在本篇博文中

趣谈古人避孕~^0^~

话说和老公刚讨论了下一阶段的新避孕方法,然后接着看了部古装片,突然就想到古代人是怎么考虑避孕这问题捏….于是马上就去百度啦~发现了不少好玩的东东,^0^,先来JMS一起来分享分享~ 搜来的结果发现,古代人发明的避孕工具真的很搞啊..也不晓得是不是真的有效….古埃及: 据说有个古老的避孕处方。说是用阿拉伯树胶、椰子和蜂蜜浸湿的羊毛绵球植入女性体内,就能够防止怀孕。 囧……难道做一次就要植一次?还是

趣谈 i++ ++i i-- --i

给大家介绍几个自增自减运算符的小例子,希望大家对其分析有所帮助, i++、++i 的区别:如果做为单独的一条语句它们没有区别,结果都一样;                                 其他情况则有区别:如 int i = 2;int b;  b = i++; 和另一种情况b = ++i;是完全不一样的,b=i++,结果是b=2,i=3;   而b=++i;结果是b=3,i=

趣谈Java之——与对象的初次约会

文章目录 前言一、前世今生1、Java 是什么2、Java 有什么特点3、Java 的应用 二、面向对象 VS 面向过程三、面向对象编程思想四、面向对象的基本特征五、Java 与面向对象六、为什么要使用面向对象编程写在最后 ​ 阅读文本大概需要 6.66 分钟。 前言 大家好,这是首发于公众号「蜗牛永动机」的趣谈 Java 系列教程。学习一门语言最好的办法,

趣谈Linux操作系统-01Linux操作系统综述

Linux操作系统综述 03-你可以把Linux内核当成一家软件外包公司的老板04-快速上手几个Linux命令:每家公司都有自己的黑话用户与密码浏览文件安装软件原始的下载安装包安装的方式(rpm/dpkg)查看已安装的软件从多个结果中找到你要的grepmore/less 删除软件 "软件管家"yum/apt搜索安装卸载服务端地址sed命令的使用使用sed更换apt源 安装软件的本质最原始

ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈

0. 概览 结构化代码语义是任何语言入门之必备基本功,想写出“意大利面条”似的美味代码么?直接干就对了! 虽然上面有些“话糙理不糙”,但不可否认的是现今几乎所有高级语言都对代码结构化语义提供了良好的支持。入门码农们的第一课都是先从顺序执行、跳转、条件走偏开始学起。 在顺序执行的结构化代码中,如果之前申请了资源,怎么确保随后无论发生什么事它们都可以被正确释放呢? 在本篇博文中,您将了

pub计算机术语,科学网-术语western blot书写方式趣谈-LetPub编辑的博文

你是否想过怎样才是书写术语western blot的正确方式?也就是说,我们应该在这个术语出现在句子中间时将western首字母大写吗?事实上,对于这件事并没有定论。有些人坚信我们应该一直写成Western blot,也有人坚信除非这个术语在句首,否则应该写成western blot。我们来看看他们的论据。 对于这个术语是怎么来的毋庸置疑。检测特异DNA的技术Southern blot是以当初发

备胎的自我修养——趣谈 JavaScript 中的 ASI (Automatic Semicolon Insertion)

什么是 ASI ? 自动分号插入 (automatic semicolon insertion, ASI) 是一种程序解析技术,它在 JavaScript 程序的语法分析 (parsing) 阶段起作用。 根据 ES2015 规范,某些(不是全部) JavaScript 语句需要用 ; 来表示语句的结束;然而为了方便书写,在某些情况下这些分号是可以从源码中省略的,此时我们称 ; 被 parse

英文单词趣谈zz

尽管英语单词由相对单调的字母构成,但一旦我们深入去了解和学习它,我们也会发现它那奇妙多变的魅力绝不亚于汉语;拿破仑在厄尔巴岛的那句著名英语回文足令人叹为观止!   (1)英语单词中,不会连续出现3个相同的字母,但如果我们给单词添加后缀,则可能出现这种情况,比如governess(女总督)变成governessship(女总督职务)。   (2)英语单词中,按照字母顺序,同时出现5个元音字母(aei