分享

Java学了这么久,我们可以从“HelloWorld”中能知道到什么?

 AnonymousV脸 2018-07-13

我们在学习Java的时候(除了Java还有很多语言)都是以“HelloWorld”这几个字符开始的,这是每个Java程序员都知道的程序。这很简单,但简单的开始可以深入理解更复杂的概念。在这篇文章中,我将探讨从这个简单的程序中可以学到什么。以下面程序为例:

一,我们为什么把“HelloWorld”当做第一堂课?

首先我们要搞清楚,为什么各种编程第一堂课都要教这个,为什么不直接开始学习实用内容呢?在Java中,Java程序是从类构建的,每个方法和字段都必须在类中。这是由于其面向对象的特性:一切都是一个对象,它是一个类的实例。面向对象的编程语言比函数式编程语言具有许多优点,例如更好的模块化,可扩展性等。这也就是为什么从最简单的“HelloWorld”开始了。

如果有对java感兴趣的同学,可来我们的java技术学习扣qun的哦:63090,

2208里面免费送整套系统的java教程!我自己是一名从事了5年java开发的全栈工程师,辞职目前在做线上教育讲师,创了一个交流裙,每晚都会在裙内直播,今年年初我花了一个月整理了一份最适合2018年学习的java干货,从最基础的HTML+CSS+JS+javaweb到javase,javaee各种框架都有整理,送给每一位java小伙伴,这里是java学习者聚集地,欢迎初学和进阶中的小伙伴。

二,为什么总有“主要”方法?

“主要”方法是程序入口,它是静态的。“static”表示该方法是其类的一部分,而不是对象的一部分。

这是为什么?为什么我们不把非静态方法作为程序入口?

如果方法不是静态的,则需要首先创建对象以使用该方法。因为必须在对象上调用该方法。对于入口目的,这是不现实的。没有鸡肉,我们不能得到一个鸡蛋。因此,程序入口方法是静态的。

参数“String [] args”表示可以将一个字符串数组发送到程序以帮助程序初始化。

三,如何在JVM中执行?

现在的问题是JVM如何加载类并调用main方法?

在执行main方法之前,JVM需要加载,链接,以及初始化类。

1)加载将类/接口的二进制形式带入JVM。

2)链接将二进制类型数据合并到JVM的运行时状态。链接包括3个步骤:验证,准备和可选的解决方案。验证确保类/接口在结构上是正确的; 准备涉及分配类/接口所需的内存; 分辨率解析符号引用。

3)初始化为类变量分配适当的初始值。

此加载作业由Java类加载器完成。启动JVM时,使用三个类加载器:

Bootstrap类加载器:加载位于中的核心Java库 / jre / lib目录。它是核心JVM的一部分,并使用本机代码编写。

扩展类加载器:加载扩展目录中的代码(例如, /jar/ lib / ext目录)。

系统类加载器:加载在CLASSPATH上找到的代码。

所以HelloWorld类由系统类加载器加载。执行main方法时,如果存在其他依赖类,它将触发加载,链接和初始化。

最后,main()被推入JVM堆栈,并相应地设置程序计数器(PC)。PC然后指示将println()推送到JVM堆栈。当main()方法完成时,它将从堆栈弹出并执行完毕。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多