2.到底是多语言的平台好还是跨平台的语言好,这在几年前或许是.net和java之间的一个争论,.net作为一个多语言的平台显得要比跨平台的语言java更有优势,为什么呢为现在的应用软件离平台越来越高,很少有人再关注自己的平台了,很少有人会认为在不同的平台上构建一遍程序会很麻烦,更重要的是,.net应用与使用十分广泛的windows家族平台,其本身就拥有压倒的优势,使得java的跨平台的优势大大缩水,毕竟有多少平台可跨呢过半数的都是windows,这也是09年5月《程序员》杂志中的一句话的深刻含义:谁控制了操作系统谁就是赢家。然而.net马上就打赢战争的时候忽略了一个事实,那就是标准的开放性更加重要,jvm除了保证其上的java程序跨平台外,其本身就是一个平台,而且是一个开放的平台,越来越多的语言搬运到了这个平台,比如ruby,比如python…如此一来jvm就要比.net高出不止一截了,让它们PK一下,它们都是操作系统之上的平台,并且上面都支持多个开发语言,这一点打平,.net不跨平台,虽然有 区正致力于这方面的工作,但是java原生的就是跨平台的,这一点上java胜出;考虑一下和操作系统的关系,.net严重依赖windows操作系统家族,而jvm却什么也不依赖,最后一点java胜出,java vs .net的结构3:1.
3.知道并行编程最大的障碍吗是状态,状态在程序中用变量来表示,一个变量被多个执行绪访问就构成了竞争。
4.C语言中的指针不单单是提供了操作动态内存的把手,更重要的,几乎所有的语言机制都是C指针的胶合剂。
附:忍不住谈谈OS设计
记住,操作系统是个服务者,它不应该并且永远不应该过于大,特别是内核更是如此,当你的操作系统占用了你的磁盘的百分之10以上的时候,你就要质疑一下你的操作系统是否应该精简一下了,在这里windows和linux无论从OS架构还是磁盘分区都代表了两种模式,windows的内核基本包含了很多的模块而linux却只有vmlinuz,windows提倡将磁盘进行分区而linux却尽量避免将整体的磁盘分离,linux中提供的mount挂载是为了挂载外来磁盘或者是扩展用的,刚刚从windows转向linux的可能会将/home分为一个区,然而你可以很简单的在进入系统之后使用mount -t XXX /dev/YYY /home轻松做到这一点,因此linux的目标是最大效率的使用磁盘而不要发生有一个大文件,最大剩余空间的分区放不进去,然而所有空闲空间加和却超过的该大文件的情况,linux的树形磁盘管理结构是基于挂载的,而windows的平行的线性管理结构是实现确定的,比较符合磁盘MSR的建议。
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24975 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!