• .NET码农学Java


    因为各种原因,计划学习Java。自己已经做.NET开发几乎10年了,把语言级别的东西撸一遍估计不难。由于.NET和Java的相似性,准备比较着.NET/C#来学,一来自己容易理解,同时也巩固下.NET的知识。选择的参考书是《Java核心技术》。

    第一个程序

    第一个程序,hello world,代码很简单,更重要的是看清楚代码执行的原理。

    先从C#开始,创建文件FirstSample.cs,写入以下代码并保存:

    using System;
    
    public class FirstSample
    {
      public static void Main(string[] args)
      {
        Console.WriteLine("Hello C# World!");
      }
    }
    

      

    HelloWorld的代码总是很简单的,接下去可以编译了。打开一个shell窗口,定位到FirstSample.cs的同级目录,敲入

    csc FirstSample.cs
    

    同级目录下会生成一个新的文件,FirstSample.exe,直接执行,就可以在shell窗口看到“Hello C# World!”字样了。

    Java的Hello World会非常类似,首先,创建文件FirstSample.java,写入代码:

    public class FirstSample
    {
        public static void main(String[] args)
        {
            System.out.println("Hello Java World!");
        }
    }
    

    接下去同样是编译。打开shell窗口,定位到FirstSample.java的同级目录,敲入

    javac FirstSample.java
    

    同级目录下同样生成一个新的文件,FirstSample.class。跟C#不一样,这个不能直接执行,继续在shell窗口敲入

    java FirstSample
    

    成功执行后,在shell窗口看到“Hello Java World!”

    发生了什么?

    Java和.NET的工作原理,都是把源代码编译成中间语言(bytecode和IL),然后由虚拟机(JVM和CLR)编译为native code。老生常谈的内容,这里不多说。这里想谈谈我对Java和.NET工作原理的理解。

    想要执行中间语言,首先得启动JVM/CLR,所谓的启动,实际上是在OS上创建进程,然后把JVM/CLR host到该进程上。

    回顾两个hello world,C#编译成的exe,执行的时候实际上做了这么些事情:创建一个新的进程,在进程上host一个CLR实例,把IL code加载到CLR里,然后开始由执行IL code。

    Java的其实类似,只不过host JVM的进程是有java.exe(而不是FirstSample.class)创建。

    到这里第一天的学习结束,接下去准备看数据类型。

  • 相关阅读:
    POJ2524+并查集
    POJ3697+BFS+hash存边
    POJ1151+线段树+扫描线
    POJ2528+线段树
    ubuntu 和 win7 远程登陆 + vnc登陆
    POJ3690+位运算
    POJ3283+字典树
    POJ3282+模拟
    POJ2349+prim
    2016.6.13
  • 原文地址:https://www.cnblogs.com/woodylic/p/4391052.html
Copyright © 2020-2023  润新知