码迷,mamicode.com
首页 > 编程语言 > 详细

.NET码农学Java - 1. 起步

时间:2015-04-03 23:51:38      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

因为各种原因,计划学习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)创建。

 

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

 

.NET码农学Java - 1. 起步

标签:

原文地址:http://www.cnblogs.com/woodylic/p/4391052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!