- 博客(4)
- 收藏
- 关注
原创 计算计专业很值得读的经典书籍,深入理解计算机系统
以hello world为切入点,讲述运行hello world的整个生命周期,后续以每个周期为顺序线,介绍每个阶段,全书是以C语言为例来进行介绍的,所以如果是从事C语言或者C++的伙伴们,这本书就是非常非常值得阅读,当然,其他语言的小伙伴们也可以读,帮助非常非常大,因为编程语言都是相通的,目前我是看到第七章,链接,觉得整个人醍醐灌顶,虽然我是从事Java的,但是我不可否认这本书给我带来的提升很大,后续可能会在博客更新自己对这本书的理解,欢迎大家与我交流。
2024-03-07 15:49:06
429
1
原创 Switch和if else哪个执行效率高?如何去选择?
好处就是,无论情况是多少,对执行效率没有影响,但是if else就不一样了,想要更加详细的探讨这个问题,我们要了解现代计算机处理器是采用流水线来获取高性能,采用了分支预测的方法,针对if else语句不是执行到了才被加载到处理器,而是处理器会提前将指令加载到流水线,如果条件成立则继续执行,否则,就会受到处罚,代价就是将已经加载处理的指令和结果丢弃掉,所以这是非常消耗性能的。那么既然switch那么好,能否替代if else呢?从执行效率来看,switch的执行效率更高。
2024-03-05 15:57:41
2723
1
原创 为什么Java和C++支持重载而C语言不支持
主要是编译机制不一样,C语言的在编译的时候,生成的可重定位目标文件,函数名是唯一的,在符号表里面,链接器只能唯一的根据函数名去识别函数,而Java和C++就不一样了,以Java为例,在编译时,能将方法名和参数列表编译成可以被链接器唯一识别的符号,所以哪怕出现了方法名一致参数列表不一致(重载),链接器也不会报错,但是C语言就不同了,编译时是把函数名和参数分别放在不一样的地方(详情可以查看elf文件),在链接的时候,根据函数名来链接的,所以一旦出现了相同的函数名,链接器就会报错!恢复:重整的相反过程。
2024-03-05 15:06:16
346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人