之前我们把重点放在硬件 - 组成计算机的物理组件,比如电,电路,寄存器,RAM,ALU,CPU。但在硬件层面编程非常麻烦,所以程序员想要一种更通用的方法编程,一种"更软的"媒介,没错,我们要讲软件!...
葛丽丝·霍普博士(作为美国海军军官,她是哈佛1号计算机的首批程序员之一)也遇到了这个问题,这台机器我们在前面提过。这台巨大机电野兽在 1944 年战时建造完成,帮助盟军作战。程序写在打孔纸带上,放进计算机执行。顺便一说,...
作为一种编程语言,本身是谈不上工作原理的,实际上C语言所有的语法,正是C语言编译器的工作原理或者工作机制的具体实现。要细致的讨论起来是不可能,但是作为C语言程序员,必须了解这个大致的流程。一个程序,从C语言源码,到系统...
既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢?
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10....
本文以InterlockedIncrement为例,来说明Windows Interlocked系列函数的实现原理。 一、InterlockedIncrement反汇编代码
当年写程序,不像现在这样,都是用一种古老的物理设备,叫作“打孔卡(Punched Card)”
2017年5月的一个凌晨,华为某实验室里,方舟编译器上第一个Java程序“Hello, World”跑通了。
偏向锁的诞生背景和基本原理在上文中已经讲过了,强烈建议在有看过上篇文章的基础下阅读本文。
JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的.class字节码文件,与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编...