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