学编程,来源栈;先学习,再交钱
当前系列: 其他 修改讲义

今天,老码农QQ群里收到了一条消息:

飞哥,我们被鄙视了。

给了我一张截图:



我只能说:.NET是语言吗?


连平台和语言都分不清的文章,我也是无语了。



这就是现在公众号的素质。而且Title吓死人的那种,阿里哟,架构师哟,还是小秘圈哟!

原文:天天敲代码会使人变聪明嚒?


要搞清楚这个问题,你首先要明白:程序是跑在哪里的?最简单的说,是跑在计算机(硬件)上面的,是不是?计算机硬件,本质上只能处理0101011之类的二进制代码,是不是?带你写的代码,大概是这个样子的:

namespace DataTypeApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

计算机怎么认识呢?是不是需要编译?在上古时代,代码可以直接编译成二进制格式的机器码。但是,因为不同的计算机(操作系统)具有不同的机器码识别格式,所以,源代码需要被编译成适应不同操作系统的可执行代码。就像现在你下载APP需要区分iOS还是Android版的一样(不,类似,只是类似)。题主提到的C++,就还是这样的。源代码需要编译成不同的操作系统的可执行文件,然后才能正确运行。

(图也没了,o(╥﹏╥)o)


好了,然后Java横空出世,它:

  • 不需要针对不同的操作系统进行不同的编译;
  • 只需要在操作系统上安装一个JVM

完成JAVA源代码的编写之后,只要把它编译成JVM可识别的“字节码”就OK了。“字节码”运行在JVM上,由JVM识别并适配不同的操作系统。如图所示:

(图也没了,o(╥﹏╥)o)


既然你学过C++和Java,上面这些,应该是你很熟悉的知识。好了,.NET是什么呢?大致就相当于JVM。其实.NET本身就是为了和Java竞争,而由微软推出的一个平台。但和JVM不同的是(感谢@SherlockGy同学提醒,JVM也可以支持多种语言,此处略有不妥),.NET上可以支持更多的语言,包括:C#、VB.NET、F#……之前,微软出于公司利益考虑,.NET平台(framework)只能运行在Windows上,但后来发现这个策略不行,于是在2014年,微软宣布.NET的开源和跨平台(操作系统)计划。目前进度非常顺利,新的跨平台的.NET平台被称之为.NET core(和之前的.NET Framework相区别)。



所以,你就能明白:

  1. 最开始的那个公众号错得有多离谱;
  2. 告诉你.NET不支持跨平台的人早就out了。
学习笔记
源栈学历
键盘敲烂,月薪过万作业不做,等于没学

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 其他 中继续学习:

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码