Java의 동적 및 정적 컴파일 인스턴스 상세 정보

2943 단어 Java동태정태
Java의 동적 및 정적 컴파일 인스턴스 상세 정보
우선, 우리는 동태와 정태 번역의 문제를 이야기한다.
Q:java와javascript는 어떤 차이가 있습니까?
요약: 다음과 같은 몇 가지가 있습니다.
      1.우선 실행 환경에서 자바 코드는 JVM에서class 파일로 컴파일되고, 자바스크립트는 브라우저에 직접 불러와서 실행합니다.
      2.첫 번째에서 알 수 있듯이 자바 코드는 컴파일이 필요하고 자바스크립트는 컴파일이 필요하지 않습니다.
      3.언어 성질에서 볼 때 자바는 고급 프로그래밍 언어로 변수 검사에 대한 요구가 엄격하다. 자바스크립트는 간단한 해석적인 스크립트 언어로 변수 검사와 요구가 약하다.
      4.자바스크립트는 동적 언어이고 자바는'반동적'이다.
javascript는 동적입니다. 의심할 필요가 없습니다.왜 자바는 반동적입니까?다음 코드를 참조하십시오.

public class Color{ 
  
   public void changeColor(){ 
     System.out.println(" "); 
   } 
 
} 

 public class Frame{ 
 
    public static void main(String args[]){ 
      Color c=new Color(); 
      c.changeColor(); 
    } 
 
} 
 
Frame 클래스에서 직접 new 하나의 Color 대상을 통해 그 방법을 호출합니다. 이것은 컴파일할 때 대상을 확정하고 관계를 확정하는 것입니다.나는 이것이 자바 언어의 정태성의 구현이라고 생각한다.그리고 만약 컴파일된 컬러가class 파일을 잃어버리면 오류가 발생합니다.
   java.lang.NoClassDefFoundError........
다음 코드를 통해 java의 동적 특성을 확인할 수 있습니다.

public interface Color{ 
  
   public void changeColor(); 
 
} 

public class ColorImp implements Color{ 
 
     public void changeColor(){ 
       System.out.println(" "); 
     } 
} 

public class Frame{ 
 
    public static void main(String args[])throws Exception{ 
      System.out.println(" "); 
      //  
      java.util.Scanner sc=new java.util.Scanner(System.in);  
      String s=sc.next(); 
      //  
      Class c=Class.forName(s); 
      //  
      Object obj=c.newInstance(); 
      //  
      Color color=(Color)obj; 
      color.changeColor(); 
    } 
 
} 
Frame 클래스를 주의하십시오. 우리가 그것을 컴파일할 때, 두 개의class 파일--Frame만 나타날 것입니다.class와 Color.class, 그리고 이 프로그램을 실행합니다. ColorImp를 컴파일하지 않았기 때문에 이상-java를 던집니다.lang.ClassNotFoundException.
따라서 다른 cmd 프로세스를 열고 ColorImp 클래스를 단독으로 컴파일하고 이전 cmd 대화상자에서 ColorImp를 입력하면 프로그램이 정상적으로 실행됩니다.
이렇게 하면 우리는 프로그램의 운행을 멈추지 않는 상황에서 하나의 종류를 동적으로 불러올 수 있다.나는 이것이 자바의 동적성을 나타낸다고 생각한다.위의 예를 통해 나는 자바 언어는 일종의'반동적'언어라고 생각한다.
우리는 상술한 예에서 Color 인터페이스 클래스를 사용했다는 것을 알 수 있다.인터페이스에 대한 나의 작은 감명을 언급하지 않을 수 없다.
데이터베이스를 사용할 때 자바 언어는 데이터베이스 인터페이스를 정의한 다음에 서로 다른 데이터베이스로 이 핑계를 실현한다.이것들은 (mysql 데이터베이스를 예로 들면) 포함된다
데이터베이스 드라이브 로드:

Class.forName("com.mysql.jdbc.Driver"); 
데이터베이스에 대한 링크 설정:

java.sql.Connection conn = java.sql.DriverManager.getConnection( 
          url, user, password); 
컴파일 대상과 결과 집합 대상 등을 얻는 것은 모두 인터페이스를 정의했을 뿐이고 구체적인 실현은 데이터베이스 개발 업체에 맡기고 이 인터페이스만 실현하면 된다.이것은 인터페이스의 확장성과 규범성을 구현하였다.  
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기