본문 바로가기
학교공부

[JAVA 기초] JAVA 시작하기2

by 자라자 2020. 9. 3.

프로그래밍 언어

1. 프로그램은 `일의 순서를 합리적으로 나열해놓은 것`울 의미합니다. 

2. 컴파일러: 프로그래밍 언어를 기계어로 번역해줍니다.

3. 기계어란 0과 1로 구성된 형태의 언어로, 컴퓨터가 이해할 수 있는 언어입니다.

4. 프로그래밍 언어는 고급언어(C, C++, JAVA 등)과 저급언어(어셈블리어 등) 등으로 나뉩니다.

 

JAVA의 특성

1. 이식성이 높습니다. Windows 환경에서 짜고 Linux에서 실행해도 됩니다.

2. 객체지향형 프로그래밍 언어입니다. 레고 조립과 비슷합니다.

3. 함수 스타일을 지원합니다. 

4. 메모리를 자동으로 관리해줍니다.(동적 할당 등)

5. 멀티 스레드가 구현이 가능합니다.(병렬 처리가 가능합니다.)

6. 동적 로딩: 프로그램을 실행할 때 프로그램을 구성하는 객체에 한꺼번에 메모리가 할당되는 게 아니라, 객체가 할당되는 시점에 메모리가 할당됩니다.

7. 오픈 소스가 풍부합니다. 

 

클래스, 객체, 상속

1. 클래스

클래스는 현실 세계의 사물을 컴퓨터 안에서 구현하려고 고안된 개념으로, 사물의 속성이 담긴 설계도의 개념으로 생각하면 됩니다. 

 

2. 객체/인스턴스

클래스를 통해서 만들어진 실체를 의미합니다. 같은말이지만 혼자쓰일 때는 객체, 클래스에 대한~ 으로 쓰일 땐 인스턴스로 많이 쓰입니다.

 

3. 상속

기존 클래스에 있는 필드와 메서드를 물려받는 것을 의미합니다. 상위 클래스의 개념을 하위클래스가 받아 쓸 수 있습니다.

 

JVM

자바는 바이트 코드로 해석이 됩니다. 이를 기계어로 바꿔주는 운영체제가 JVM입니다. 즉, `자바소스파일>(컴파일러)>바이트 코드 파일>(JVM)>기계어`의 과정을 거쳐서 실행됩니다. JVM은 운영체제에 종속적으로 실행이 됩니다.

 

JAVA 프로그램의 구성

1. 자바 실행 프로그램은 클래스 블록 안에 메소드 블록으로 구성되어 있습니다.

2. 클래스 이름은 `소스파일명과 대소문자가 일치`해야 합니다.

3. `메인메소드 블록은 하나만` 있어야 합니다.

4. 메인메소드는 `항상 클래스 블록 안에 작성`이 되어야 합니다.

 

프로그램 작성하기

1. 모든 실행문의 마침표에는 `세미콜론(;)`을 찍어줘야 합니다.

2. 한 줄 주석은 `//`, 두 줄 주석은 `/* ... */`을 이용합니다. 

3. `System.out.println`은 자동개행합니다. `System.out.print`는 줄바꿈이 없습니다.

 

예제

1. 이클립스 실행 후 `File>New>Project` 에서 새로운 프로젝트를 생성합니다.

2. `Package Explorer>src폴더 우클릭>new>class`에서 Package 이름을 비워두고 클래스 이름만 설정합니다.

3. 아래와 같이 코딩해서 `print`와 `println`을 차이를 확인합니다.

public class ex01 {
	public static void main(String [] args) {
		System.out.println("랑꾼의 리뷰");
		System.out.println("println은 자동개행을 지원합니다");
		System.out.print("print는 아님");
		System.out.print("print는 아님");

	}
}

 

main 앞에 붙은 것들

1. `package`는 클래스가 모여있는 디렉토리를 의미합니다.

2. 접근제한자

예약어를 입력해서 접근을 제한할 수 있습니다. `public`, `default`, `private`, `protected`가 있습니다.

public: 같은 패키지 뿐 아닌 다른 패키지의 클래스도 접근할 수 있도록 합니다.

default: 같은 패키지 내의 클래스만 접근이 가능합니다.

private: 같은 패키지 안에 있어도, 나만 사용할 수 있습니다.

protected: 같은패키지 안에 있어도, 내가 지정한 클래스 내에서만 접근할 수 있습니다.

3. 자바는 동적로딩을 하는데, main같은 경우 미리 실행을 시켜놔야 동작을 할 수 있습니다. 그래서 메모리에 우선적으로 로딩하는 역할을 합니다.

4. void는 리턴값이 없음을 의미합니다.