近期笔记和心情总结

心情总结

秋招嵌入式失利,是因为我确实在硬件方面学的很差,春招我改投软件方面,这些天挺失望的,简历一份份的被拒,很多都不给一次笔试的机会,我也知道是为什么,因为学历不符,专业不符。这些天大家考研上岸的消息不断传来,我一遍遍的在内心质问自己,我真的选错了吗?我是不是应该去考研,而不是像当时那样一腔热血,义无反顾的扎在IT里,觉得自己只要学的够好就可以无视学历和专业,或者是我自己的对判断还是不足,自己无法做到那么顶尖,只是定了一个高大上的目标。

我一遍一遍的质问着自己,为什么?我不断翻前面的博客看我一年半以来总结的知识,有一些麻木的刷着题,我也不知道对错。可是脑子里还是想起来自己个性签名的一句话“做对的事情,永远都不会错”,我不由的想起来了以前面对一些电子产品总想把他拆开看看,家里的电视新装的机顶盒不到两天就把他的功能玩了一个遍,爷爷奶奶都说我很爱折腾这些东西,但是我对机械方面的各种产品却没有一点兴趣,我从来没有将一个玩具拆开,看看里面是什么样子的,当时四驱车很火的时候,我也没有去玩过他们,我甚至将他们组装到一起都要花费很大的精力,可是为什么我大学却阴差阳错的选择了我最不感兴趣的机械。

在大一的工图课上,别人可以很轻易的画出各个零件的三视图,而我却不行,大家对一个东西可以很快形成一个立体的结构,而我也不行,我想不明白他们的结构,想不清楚传送的过程,想不懂齿轮啮合的样子,我学的很痛苦。大二的时候在工厂金工实习了两个月,我做的很差,我操控不了那些机器,掌握不了尺寸,看不懂是什么原理来进行切割,那时候我开始决定放弃这一个专业,我想了好多天,我决定尝试向计算机方向发展,我从最基础的C语言学起,从最开始的了解各种变量,再到各种循环判断语句,我发现一个理想和逻辑的世界向我打开,再也没有那些复杂的三维模型,那些充满着立体抽象的东西,一切都是触手可得的东西,你有一个想法,你可以立刻在你的计算机上进行验证,我发现这才是我的天地,一切都是一个二维的平面,但是里面充斥着各种思想和逻辑,他们都是我想得到的,昨天我又在刷操作系统的题,我很多都不会,但是当我去了解他们的时候,我却有一种豁然开朗的感觉,感觉自己又掌握了隐秘的一角,这些天的阴郁也散了很多,我脑海里浮现一句话因为热爱,所以编程!

产生死锁的主要原因
  1. 系统资源不足
  2. 进程推进顺序不合适
  3. 资源分配不当
产生死锁的条件
  1. 互斥条件,一个资源只能被一个进程使用
  2. 请求保持条件:一个进程对资源产生阻塞的时候,对其获得的资源保持不放
  3. 不可剥夺条件:进程已获得的资源,在未使用完之前不能强行剥夺
  4. 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
并发和并行的区别
  1. 并发表示你可以处理事情,但不是同时,可以理解为很多人去挖一个坑,并发是逻辑上同时进行
  2. 并行表示你可以同时处理多个任务,但是他确实多个人去挖不同的坑,并行是物理上同时进行
C++语法相关漏洞
  1. 一个类只能由一个析构函数
  2. 在C++中不能重载的运算符有 “.”,".*",“::”,“sizeof”
  3. 虚函数在基类中定义,在子类可重写,也可以不用重写,但是纯虚函数在子类中必须实现
  4. 虚函数是普通函数,可以直接继承重写
  5. 纯虚函数不管怎么样都不能有实例
  6. 类的定义,如果一个类的构造函数不是共有属性,则不能被构造
  7. 对于char *p=“sssasd”,他的指向是字符串常量,而对于char buf[]=“sadasf”,他的储存地址则在栈区
  8. 引用可以添加const,使用const执行一个常量
  9. this指针,他是一个常量指针,他的指向不能被修改,同时在析构函数内delete this指针会造成递归调用,因为delete的过程就是调用析构函数
  10. 智能指针也会造成泄露,两个对象使用shard_ptr成员变量指向对方,会造成循环引用导致引用失效,从而导致内存泄漏,解决方法是引入weak_ptr来检测是否释放
  11. map和set的区别,首先他们的底层都是由红黑树实现的,区别map是key-val,set是key格式,所以他们都不允许修改key值
4种强制类型转化
  1. const_cast 将const转化为非const
  2. static_cast 主要用于各种类型的隐式转化,非const转化为const,void *类型和各种指针类型的转化,还可与用于多态向上转化,向下转化时候结果未知
  3. dynamic_cast 动态类型转化,只能用于有虚函数的类,用于类层次间的向上转化和向上转化,只能转指针或者引用,向下转化的时候非法则会返回NULL
  4. reinterpret_cast,几乎什么都可以转,但是会出问题,尽量别用
网络方面

路由和交换机的区别:一个是在网络层(路由),一个是在数据链路层,交换机
套接字的概念:是一个特殊文件,表示网络通信,本质是内核生成的伪文件
IP地址:是Internet为每一个主机分配的专业地址
子网掩码:他和IP地址一起使用,他只有一个作用,将IP地址和主机地址分成两部分
网关:网络通向其他网络的IP地址
DNS:域名服务器,为主机分配域地址和IP地址

输入一个URL会发生什么
  1. DNS解析
  2. TCP连接
  3. TTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 解析结束
http相关

由于http是无状态协议,也就是无法根据之前状态进行本次请求处理
cookie技术:通过技术请求和响应写入cookie信息来控制客户端状态,客户端会发送一个set-cookie信息,他会对比之前信息,得到状态信息

http协议的特点

  1. 简单快速,客户端向服务器请求的时候,只需请求方法和和路径
  2. 灵活,http允许传送任何类型的数据对象
  3. 无连接,限制连接过程每次只处理一个请求,受到应答即断开连接
  4. 无状态,http是无状态的协议
  5. 默认端口为80
get和post的区别
  1. get:浏览器会把head和data一起发送过去,服务器响200
  2. post:浏览器会将head发送过去,响应100,然后再连接响应200
  3. get参数放在url传输,而post通过request body传输
  4. get再url是有长度限制的,而post没有
  5. get没post安全
  6. get只能url编码,而post可以支持很多方式
TCP连接过程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值