c, c++ -> 직접 메모리에 접근해서 제어.

java -> 중간에 매개체를 두어 c,c++에 비해 상대적으로 무거움.

java 특징

1. 객체지향언어를 지원(추상화, 캡슐화, 다형성, 상속성)

2. jre를 이용하여 운영체제로부터 자유로움

(리눅스용 jre만 설치하면 리눅스에서도 돌아간다)

3. java는 메모리에 직접 접근할 수 없다. 미리 사용할 메모리를 가져와서 작업하고

남은 메모리는 GC(Garbage Collect)가 다시 복원해줌.(자동 메모리 관리)

4. 네트워크와 분산처리 지원

5. 멀티 쓰레드 지원

*JDK(Java Development Kit) : java언어로 개발하기 위해 필요한 도구의 집합.

javac(자바 컴파일러), jdb(자바 디버거) 등의 도구가 포함되어 있음.

*JRE(Java Runtime Environment) : jvm을 실행할 수 있도록 라이브러리와 도구의 집합.

java로 개발한 프로그램을 실행하기 위해 필요함. os마다 준비되어 있어서 그에 맞는 jre를 다운받으면 된다.

*JVM(Java Virtual Machine): 클래스 파일을 읽어들일 수 있는 가상머신. java언어로 개발된 프로그램을 실행시키는 핵심 엔진.

자바 프로젝트 파일 생성

-> .src : .java 소스 파일들이 저장됨

-> .bin: 컴파일 된 후 컴퓨터가 이해할 수 있는 코드로 저장됨

순서는

.src > package > .java 클래스 파일

 


패키지(package)

: 클래스를 구분해줌.

예) 같은 이름을 가진 클래스가 있을때 패키지로 구분을 해줄 수 있다.

> math.java

package plus; // plus 패키지로 선언해줌.
class math
{
     public int plus(n1,n2)
     {
          return (n1+n2);
     }       
}

 

> math.java

package minus;
class math
{
     public int minus(n1,n2)
     {
          return (n1-n2);
     }
}

 

> test.java

class test
{
     public static void main(String[] args)
     {
          plus.math p1 = new plus.math(); // p1이라는 변수명으로 plus.math객체 생성
          minus.math m1 = new minus.math();
          int n1=1; 
          int n2=2;
          System.out.println("plus_result = "+p1(n1,n2));
          System.out.println("minus_result = "+m1(n1,n2));          
     }
}

 

클래스(class)

: 붕어빵틀

위의 예시에서 .java 파일

객체

: 붕어빵

위의 예시에서 p1, m1

 

 

+ Recent posts