1. 程式人生 > >java的編譯過程

java的編譯過程

The alt 虛擬機 emp for each 技術分享 struct created pan

用記事本編寫兩個java文件

第一個Employee.java

技術分享圖片
import java.io.*;
public class Employee{
   String name;
   int age;
   String designation;
   double salary;

   // This is the constructor of the class Employee
   public Employee(String name){
      this.name = name;
   }
   // Assign the age of the Employee  to the variable age.
public void empAge(int empAge){ age = empAge; } /* Assign the designation to the variable designation.*/ public void empDesignation(String empDesig){ designation = empDesig; } /* Assign the salary to the variable salary.*/ public void empSalary(double empSalary){ salary
= empSalary; } /* Print the Employee details */ public void printEmployee(){ System.out.println("Name:"+ name ); System.out.println("Age:" + age ); System.out.println("Designation:" + designation ); System.out.println("Salary:" + salary); } }
View Code

第二個EmployeeTest.java

技術分享圖片
import java.io.*;
public class EmployeeTest{

   public static void main(String args[]){
      /* Create two objects using constructor */
      Employee empOne = new Employee("James Smith");
      Employee empTwo = new Employee("Mary Anne");

      // Invoking methods for each object created
      empOne.empAge(26);
      empOne.empDesignation("Senior Software Engineer");
      empOne.empSalary(1000);
      empOne.printEmployee();

      empTwo.empAge(21);
      empTwo.empDesignation("Software Engineer");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}
View Code

打開cmd

進入文件所在目錄

運行 javac Employee.java

看目錄變化,會出現一個Employee.class

在運行 javac EmployeeTest.java

又會多出來一個EmployeeTest.java

在運行 java EmployeeTest

會出現運行結果

這說明了什麽呢?

命令 javac 是編譯器,將java源文件編譯成了可以被JVM(java虛擬機)讀懂的文件

命令 java 是執行代碼,JVM將class文件編譯為字節碼文件 讓計算機可以讀懂

所以 常常說的編譯,是將源文件編譯成JVM(虛擬機)需要的class文件

常常說的執行 是JVM讀class文件並讓計算機運行代碼

C :> javac Employee.java
C :> javac EmployeeTest.java
C :> java EmployeeTest
Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0

java的編譯過程