一行JAVA代码如何运行起来?
在程序员的世界中,您将始终听到“PHP是世界上最好的语言”的嘲笑。但是,在进入软件程序开发后,您会发现即使开发语言是数百万,最普遍的是Java。我们可以从淘宝技术的变化中看到一些线索。当早期电子商务开始时,互联网当时很简单。您可以使用PHP + MySQL + Apache + Linux快速构建电子商务系统。随着电子商务平台和支付平台的改进,网上购物变得更加容易。越来越多的人使用淘宝购物。淘宝的技术架构也开始不断升级,增加服务器的数量,以提高系统可用性。通过操作和维护扩展资源是一种解决症状但不是根本原因的一种方式。最根本的原因是PHP的语言不够可扩展。当用户数量是十万,一百万或一百万时,可以得到支持,但是当到顶端时,它将在数十亿或数十亿的时候展开如何扩展。所以淘宝系统开始分离前后一点,后端是以Java语言开发的,而业务则逐步迁移。目前,在我们使用的淘宝制度中,在Java中开发了超过80的后端程序。可以看出,赢家是最后一次笑。然而,Java语言入门的难度远高于PHP和前端的难度,所以今天我们将向您解释下一行Java代码运行。 Java海报可以使用此作为Java入门的基础,启动Java开发,并在生活中获胜。马路。 Java是一种半解释语言,而不是解释语言?? Python&PHP,并编译语言?C&C ++。解释语言意味着它可以在客户端属于代码后运行并实时查看结果。编译的语言意味着需要构建并编译到二进制文件中以在机器上运行的源代码。半解释语言在其中介绍,它编译了输入代码并在编译后在JVM虚拟机中运行它(注意:JVM虚拟机在实际机器中运行)。半解释语言的优势在于它可以是跨平台,编译一次并执行多次。我们使用以下Java程序将Java程序的整个过程从编译解释到最终执行。 JVM有两种方法运行Java程序,即JAR包和类文件。罐装包装是一个高级方式。所有程序都包装成JAR包,方便送货测试者测试,操作和维护人员释放,其操作逻辑是通过Java.exe找到Java附带的GetMainclassName函数。此函数获取JNienv实例,并调用JARFileJnienv实例中的GetMainFest()函数以获取MainClass函数。然后主函数然后调用Java.c中的LoadClass方法来加载主类。类方法是通过上层进行上层并直接在Java.c中呼叫LoadClass方法以通过主函数加载类。所以jar运行模式本质上是类的运行模式,因此让我们侧重于如何加载和运行类。以下代码想要实现的功能是打印字符代码。整体代码如下。我们首先定义一个类HelloJava,在此类中创建一个新对象以打印代码字符,此对象调用类产品.java
整个代码的操作有两个步骤。第一步是编译,第二步是运行。创建源文件后,Javac可用于编译.java程序,程序将编译为.class文件,并且java命令可用于运行.class文件。编译文件具有在代码中出现的类名和变量名称和方法引用名称,以及分别存储在常量池和方法字节码中的类中的每个方法的字节码。在汇编Java程序期间,如果尚未编译类的依赖类类,则编译器将首先编译依赖类,如果依赖类被编译,则会被直接引用它。在Java类的操作中,加载和运行有两个步骤。 .class文件通过类加载器传输到JVM。 Java中有三种类型的装载机,从右下角是自定义类加载器userclassloper(负责加载自定义类文件),以及应用程序类加载程序appclassloper(负责加载类路径指定的jar包和类目录中的文件)),扩展类加载器Exclassloader(负责加载Java平台中的扩展功能的JAR包),启动类加载器BootstrapClassLoader(负责在$ java_home中加载JRE / lib / RT.jar中的所有类类) 。当appclassloader收到类加载命令时,它不会首先加载,而是向扩展的类加载器加载。同样,扩展的类加载器本身不首先加载类,但将其赋予启动类加载。加载设备,如果它失败,则按层将其递减。所以Java是动态加载类。
返回我们的示例,在编译Java程序后,我们得到Hellojava.class文件。在终端中,我们输入javahellojava,系统将启动JVM进程。 JVM进程从类路径的路径查找hellojava.class的文件。二进制文件,将hellojava类加载信息加载到运行时数据区域的方法区域中,找到hellojava的主要功能条目,并执行主函数。主要功能的第一个命令是ProductProduct = NewProduct(“代码”),这需要JVM创建产品对象,但此时在方法区域中没有产品类信息,因此JVM加载产品类和设置产品类的类型信息将其放在方法区域中。加载产品类后,JVM虚拟机为堆区域中的新产品实例分配内存并初始化类。打电话在Roduct.PrintName()方法中,JVM根据产品参考查找产品对象,根据产品对象所持的触发器定位在方法区域中的动物类的类型信息方法表,获取字节码地址printName()函数,并运行PrintName()函数,打印出“代码”。在介绍微编译和执行后,让我们来看看Meso的执行。在将Java引入作为解释语言时,我们提到JVM是跨平台执行,即在编译Java代码的副本之后,可以在Linux,UNIX,Windows和MacOS等操作系统平台上执行它。让我们来看看它是如何实现的? Java程序,JVM,JDK和JRE的操作有三种概念。所谓的JVM是JavaVirtual Machine,Java虚拟机,执行Java代码;所谓的JDK是指Javadevelopment Kit,它由Java开发人员使用;所谓的JRE是javaruntimeenvironment,Java运行时环境。 JVM属于JRE,JRE属于JDK。在安装JDK的安装中,存在不同的版本,例如LinuxX86和WindowsX64。只要安装JDK,JDK就会区分操作系统。 JVM在操作系统上运行。区分操作系统的任务由JDK完成。只要您的计算机配备JDK,任何类副码都将在JVM中运行,JVM可以在任何操作系统中运行,从而实现“跨平台编译一次,多次执行一次”。在谈论中间级执行后,让我们来看看宏级执行。当我们编程写Java代码时,我们将程序编译为JAR包并通过JAR包运行程序。 jar包代表了功能模块的实现。如果jar包具有我们要使用的功能,则可以在程序中引用它。但是,在开发和实现业务功能时,可以运行许多JAR包,并依赖于业务功能。如果每个函数实现的JAR包放在自己的JAR包中,则资源和操作效率将非常浪费。此时,我们可以将程序包中的所有JAR包取决于单独的文件夹中,然后在JAR包中的“meta-Inf”目录中修改“Manifest.mf”清单文件。在清单文件中,我们指定清单文件的版本,运行的主类的名称,程序依赖于程序所取决于的jar包的类路径路径,并且可以在Java时加载清单文件程序执行。
本文详细介绍了JVM系统中的一行Java代码如何运行。对于那些有兴趣加入互联网行业并为Java语言的发展做出贡献的人来说,他们可以深入了解Java代码在初学者时如何运行。什么是JDK&JRE&JVM?在采访中,您可以更容易和平静地返回面试官的问题