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
'JAVA' 카테고리의 다른 글
[JAVA]객체지향 프로그래밍(oop), 클래스, 메소드, 객체, 인스턴스, equals(), contentEquals() (0) | 2021.01.05 |
---|---|
[JAVA] 반복문(while, do~while, for), 탈출문(break, continue) (0) | 2021.01.04 |
[JAVA]삼항연산자, 대입연산자, 강제형변환, 자동형변환, printf(), if~else, switch ~ case (0) | 2021.01.01 |
[JAVA]식별자, 예약어, 로컬변수, 인스턴스변수, 클래스변수, 자료형, 논리연산자, 비트연산자 (0) | 2020.12.31 |
[JAVA]실행원리 (0) | 2020.12.30 |