计算机基础
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
读《编译原理实战课》有感
1 词法分析、语法分析、语义分析是编译前端技术,核心就是为了让后端技术能理解代码,进行做操作 2 词法分析核心就是构造自动机,通过状态流转来解析出一个个的“单词”,为token 3 语法分析主要是搞成一个ast树,使用递归下降,识别出程序的语法结构,诸如优先级、结合顺序等,都是通过ast树的层次来实现的,越下越优先 4 作用域、生存期等核心就是封装成栈帧 5 语义分析,比如类型系统,核心就是做类型检查、类型推导和类型转换,通过写类似于业务逻辑的逻辑来实现就好 6 IR充分体现了中间层的作用,适配器来着 to原创 2020-11-25 20:58:55 · 733 阅读 · 1 评论 -
读《深入浅出计算机组成原理》有感
1 冯诺依曼体系本身就是一个值得学习的架构,为什么需要计算机?如何解决计算问题?如何解决存储问题?如何解决交互问题?等等引出了cpu、内存、外存、输入输出系统 2 cpu有很多思想值得借鉴,为了性能等东西,搞出了流水线、冒险、预测、SIMD等等骚操作,还有高速缓存,又牵扯出了数据一致性的问题 3 DMA本质就是用来减少冗余操作的,也是一个值得借鉴的思想:通过中间层来减少冗余 4 异常和中断,在做架构设计时可以当成任何系统的出错处理手段 todo ...原创 2020-11-25 20:53:06 · 320 阅读 · 0 评论 -
关于重构的学习
参考《重构_改善既有代码的设计》 1 有注释的代码,往往可以提取出一个函数出来;查询函数和修改函数也单独提取出来,同时使用时,使用一个新方法,加上sync锁就行 2 变化频繁的地方可以使用多态来进行重构,争取每次的变化只需要新增一个对应类和修改配置 3 ifelse过多/嵌套过深,可以考虑使用策略模式 4 方法应该决定好归属的类,而不是都堆到一起,否则类会太大,实例变量也是一个道理,尽量将属于同一类的抽取出来成为单独的类,善用继承 5 ifelse、while、for往往可以提取成一个单独的函数 6 参数列原创 2020-10-07 20:54:07 · 175 阅读 · 0 评论 -
《深入理解计算机系统》 CMU15213 笔记(一)
看看第一个例子: 1.看看一个计算: 5000050000会产生一个负数hei man!为什么呢? 因为此计算机的int是32位,50000*50000超出了它的最大值 2.再看看另一个计算: 这个结果同样令人惊奇,它溢出了 那么,接下来继续看例子 正整数还是很符合的,但是浮点数呢? 可以猜得出来,结果并不为3.14,这就涉及到了浮点数的设计了 问题本质:计算机用有限的位组合形式...原创 2019-04-28 23:37:02 · 2241 阅读 · 0 评论 -
im聊天系统的基础:WebSocket
WebSocket是实时系统的协议基础,下面来看看此协议 一、websocket与http WebSocket是HTML5出现的协议,也就是说HTTP协议并没有变化,,但注意,HTTP是不支持持久连接的(长连接,循环连接不算),这是WebSocket出现的前提 首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其...转载 2019-04-29 15:57:39 · 1219 阅读 · 0 评论 -
《深入理解计算机系统》 CMU15213 笔记(二)
性能优化: 如下图,两个方法功能一致,只是嵌套顺序不同,左边为行优先(填满),右边为列优先(填满) 那么,哪个效率更好呢? 运行的时候你会发现,左边的比右边快得多!性能差了差不多20倍 这是为什么呢? 看看下图: 这张图片显示了四种不同的内存访问模式 可以看到,copyij获得的MB/S更多,所以它的性能更好。 这与内存层次结构中的缓存有关 这一部分以后将会探讨 最后一部分则跟网络相关 ...原创 2019-04-30 23:59:53 · 388 阅读 · 0 评论 -
《深入理解计算机系统》 CMU15213 笔记(三)
第一部分:Bits、Bytes、Integers 本部分了解数字的位级表示、操作数字时对数字其他属性的影响、溢出时我们不能做和期望电脑做的事情。 笔记1:二进制表示浮点数的核心思想:小数点右边的数。权重依次为2的-1次方、-2次、-3。。。 笔记2:对一个非零数运用两次!,会得到1 笔记3:左移都是右边补0,右移则分两种,为什么呢? 因为底层表示为补码,最高位为1,表示负数,为0表示正数,因此...原创 2019-05-15 23:18:48 · 856 阅读 · 1 评论 -
关于HTTPS请求和响应的流程
数字签名+数字证书现的原理 1 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。 在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。 2 将该发送方报文摘要值用发送方的私人密钥加密(即为数字签名),然后连同原报文和数字证书一起发送给接收者。 3 证书中心(CA)用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数...原创 2019-07-24 22:46:23 · 879 阅读 · 0 评论