- 博客(22)
- 收藏
- 关注
原创 指针基本概念及其使用技巧
指针基本概念及其常见用途指针基本概念指针含义指针是C语言中的一个概念,其本质上是一个内存地址。指针占据的内存大小由其所在的计算机架构决定,64位机中指针大小为8个字节,32位机中指针大小为4个字节在64位机中测试如下代码,会输出8int main(int argc, char* argv[]){ int* p; printf("%d",sizeof(p));//output 8}指针本身只是一个内存地址,内存地址是没有意义的,有意义的是该地址中指向的值,我们最常用的利用指针访
2022-04-02 17:30:02
927
原创 记一算法题
记一算法题题目描述题目描述题目要求解码一个字符串看下面的输入示例很容易看明白input1“2[ab]”output“abab”input2“3[a]”output2“aaa”input3“2[a2[b]]”output“abbabb”题目分析因为括号可以嵌套所以考虑用堆栈来解决数字后面就是要解码的字符串,需要一个读数字的函数同理可以设计一个读字符串的函数直接上代码,具体解析以后再补#include<string>#include<iostre
2021-10-10 00:21:12
216
原创 引用和指针的区别
引用和指针的区别指针的介绍引用的引入意图引用的实现原理引用和指针使用时的区别指针的介绍指针是C中的一个概念,指针变量中存储的是一个变量的地址,在C语言中,指针最大的作用就是解决函数参数的传值的局限性了。没有指针,一个函数的作用仅仅体现在它对全局变量的修改和它的返回值中,有了指针,函数能实际改变传给它的参数,大大加强了函数的功能。引用的引入意图在过程式编程中,指针已经足够用了,但是随着面向对象的引入,指针的局限性就体现出来了。很多时候,我们希望能够给函数传入一个对象而非这个对象的指针,所以C++引入了
2021-10-07 20:36:40
438
原创 mit6.830Lab1Ex1记录
记录mit6.830Lab1Ex1目标——完成TupleDesc类和Tuple类TupleDesc类Tuple类目标——完成TupleDesc类和Tuple类首先我们明确3个问题。问题1. 这两个类被用来做什么?问题2. 这两个类如何被其他类调用?问题3. 这两个类调用了哪些其他类?TupleDesc类先看TupleDesc类问题1TupleDesc用来描述元组的模式,即字段的属性和名字TupleDesc有两个构造方法,public TupleDesc(Type[] typeAr, S
2021-10-06 20:51:51
235
原创 并发相关的一些技术
并发相关的一些技术并发并发追求的目标并发编程兴起原因并发编程的目标并发中容易忽视的问题缓存的可见性问题指令的非原子性问题指令的优化乱序问题java中的解决方案-java内存模型一些常见的并发问题及解决方案一个对象中存在多个资源该如何保护?一个方法中有多个关联对象共享变量间有约束条件需要满足某些条件才能继续执行多个线程访问一个临界区(但限制线程不能超过某个数目)读多写少的场景任务存在汇聚关系线程安全的数据结构并发中的设计模式避免共享多线程版本 IF 的设计模式分工模式并发并发是一个比较难的问题,java算
2021-10-04 02:07:38
3518
原创 设计原则KISS DYR 迪米特
设计原则KISS原则和YANGI原则DYR原则最小知识原则在之前的文章中有介绍过SOLID原则,这篇博客来介绍一下其余的几种设计原则。KISS原则和YANGI原则KISS原则为尽量保持简单原则。YANGI原则为You Ain’t Gonna Need It,核心思想是不要做过度设计,也是保持简单的意思。感觉这个和延后实现的思想有点相似。(延后实现的思想在计算机中有很多应用,比如copy on write技术,进程创建函数fork就运用了这个技术,还有操作系统收到操作IO的请求时,不会立刻实现,而是
2021-10-01 22:25:19
285
原创 MySQL数据库总览 五
MySQL数据库总览 五MySQL介绍MySQL基本架构连接器分析器优化器执行器存储引擎存储引擎innoDBMySQL介绍MySQL基本架构下面是MySQL的基本架构图。sql语句首先经过连接器,与MySQL建立连接,再经过分析器,判断sql语句是否合法。之后再到缓存中查看是否有这条语句的缓存(MySQL8.0已经删除),若没有则经过优化器,对如何进行查询进行优化,之后再经过执行器,调用存储引擎来获得我们想要的数据。由于缓存已经在8.0版本被移除,MySQL内部主要有连接器、分析器。优化器、执行
2021-10-01 20:37:29
258
原创 数据库基本概念续 四
数据库基本概念续 四数据库基本概念连接索引事务存储引擎MySQL基本架构锁数据库基本概念连接索引事务存储引擎MySQL基本架构锁
2021-10-01 17:55:19
321
原创 面向对象技术
面向对象技术面向对象的四大特性封装抽象继承多态面向对象和面向过程的区分面向抽象而非实现编程抽象类和接口抽象类和接口的区别多用组合少用继承软件越来越复杂已经成为了一种趋势,传统的面向过程方法已经无法满足软件开发的需求了,为了软件的更好维护,人们开始考虑将现实世界的实体与软件中的模块对应起来,软件中的模块不仅有着现实世界实体的属性,还有着现实世界实体的行为。面向对象技术就是做着这样的一件事,它的目的就是将合适的属性和行为放入合适的类中。面向对象是一门实践中产生的技术,要理解面向对象的思想,离不开实际应用。
2021-10-01 15:13:39
722
原创 算法 DFS BFS 并查集
算法 DFS BFS 并查集题目描述DFS解法BFS解法并查集解法题目描述这是一道leetcode上非常经典的题(岛屿数量),解决思路也很多。DFS解法DFS解法是用染色的方法,我们遍历每一个节点,每个节点都做这样的事:首先判断岛屿是否被拜访过,没被拜访过则先将岛屿数加一,再利用DFS搜索的方法,将与它连接在一起的每个节点都标记为拜访过,。这样在遍历第一个节点的时候会将与第一个节点相连的节点全都标记为拜访过,之后即使再碰到也会认为属于第一个节点的集群。//author: Solitude//d
2021-09-30 22:26:16
202
原创 网络世界的构建 一
网络世界的构建 一设备互联局域网互联网络传输的通用要求各种玩法(传输人们感兴趣的数据)设备互联随着一台台的计算机出现,自然而然就出现了让计算机互联的要求,数据链路层解决的就是使得网络互连在一起的功能。(局部网络互连)但是有个问题,网络设备多种多样,且实际物理环境想当复杂,导致了我们局部网络间互连的方式是多种多样的。局域网互联那么,跨越局部网络时,机器该如何互连呢?(一个数据包跨局域网传输呢)IP协议的出现我们或许可以这样:在每个局部网络中都以该局部网络的方式传输,所以我们只需要知道目标机器的地
2021-09-30 21:54:29
253
原创 C++虚函数 一
C++虚函数虚函数虚函数的作用虚函数的实现原理虚函数实现原理的验证虚函数虚函数的作用面向对象中一个非常重要的概念叫多态,指的是使得一个基类指针指向一个派生类对象,当调用基类和派生类共有的函数时,最终调用的是派生类的函数。如下class Base{public: virtual void f(){ cout<<"Base call f()"; }}; class Derived : public Base{public: virtual void f(){ co
2021-09-30 00:11:03
98
原创 设计模式的SOLID原则和创建式设计模式 一
设计模式的SOLID原则和创建式设计模式 设计模式的作用SOLID设计原则创建式设计模式设计模式的作用如果说算法的作用是让我们写出高效的程序,那么设计模式的目的就是让我们写出好的,扩展性强的,符合规范的代码。SOLID设计原则在软件设计中,要遵循一些原则。SOLID五大原则在软件设计中非常常见。S 单一职责原则每个模块都负责单一的职责,若一个模块负责多个原则,则应该考虑将这个模块划分。事实上,这个原则看上去很简单,但在软件设计中一个模块是否负责单一职责是很难区分的,可能会随着适用场景的改变而改
2021-09-29 22:00:00
219
原创 系统的演进,组件的使用 二
系统的演进,组件的使用 二系统的演进,组件的使用web服务器后端系统的基石建立在web服务器上的子系统使用web服务器框架的好处数据库常见的数据库类型数据库的核心知识缓存为什么需要缓存缓存的适用场景消息队列为什么需要消息队列现在的后端系统图
这里写目录标题计算机网络问题(一)1.当有新主机加入计算机网络如何获得IP地址(1)组织如何得到一个地址块(2)设备如何从某组织的地址块得到一个地址公网和私网计算机网络问题(一)1.当有新主机加入计算机网络如何获得IP地址(1)组织如何得到一个地址块首先,在全球有一个管理IP地址空间的权威机构ICANN,它能向各ISP分配地址块。而组织的IP地址块一般是从ISP中获取。组织为了获取一块IP地址用于一个子网,其网络管理员先与他的ISP联系,该ISP将会从它拥有的更大的地址块中向组织提供一些地址。例如
2021-05-24 21:37:06
721
1
原创 网络是怎样连接起来的
网络是怎样连接起来的(一)整体流程概述概述在浏览器中地址栏输入一个URL,如https://www.yuque.com/yieryi-ik6se/zyb8yw/ski6iv/edit,浏览器将该URL转变为一个HTTP请求,然后将HTTP请求交付给操作系统中的网络控制软件(网络协议栈 可以控制HTTP请求的传输规则),网络控制软件将HTTP请求加上相应的头部将之变为网络数据包,再通过网卡将网络数据包发送出去。网络数据包被发送出去后,进入局域网中,通过交换机和集线器等设备,找到路由器。路由器负责接入互
2021-05-16 22:04:34
685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人