본문 바로가기
내일배움캠프(Sparta)/Java Handbook

[Java Handbook] Part 1-1

by mmm- 2023. 9. 11.

1. 언어의 역사

컴퓨터

  • 0과 1밖에 이해하지 못함
  • 매우 빠르고 정확

기계어

: 컴퓨터가 이해할 수 있게 표현되어 있는 언어

 

사람 입장에서는 기계어가 매우 복잡하고 어렵다.

이를 해결하기 위해 기계 명령어와 일상 용어를 일대일로 매칭하는 기계어와 니모닉의 매칭 코드표를 만들었다.


2. 어셈블리어

어셈블러

: 어셈블리어를 기계어로 번역해주는 SW

 

어셈블리어

: 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어

  • 어셈블리어의 등장으로 많은 개발자들이 편해졌다.
    하지만, CPU 마다 실행할 수 있는 기계어가 달랐기 때문에 어셈블리어도 다르게 만들어져 CPU에 따라 어셈블리어를 다시 공부해야한다는 단점이 존재했다.이를 해결하기 이후 많은 언어들이 등장했다.


3. C언어

  • 어셈블리어와는 달리 하나의 소스만 작성하면 모든 기종에서 실행이 가능하다.
  • But, OS들은 각각의 특성이 존재하기 때문에 C언어를 컴파일 하기 전에 각 기종별로 소스코드를 수정할 필요가 있다는 단점이 존재한다.
    (ex; 어떤 OS는 int타입을 2바이트로 인지하고 다른 OS는 int를 4바이트로 인지)
    • 컴파일 
      : 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정

4. Java의 등장

Java

  • 객체지향 언어
    : 프로그램을 다수의 객체로 만들고 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어
    • 객체지향 언어의 중심에는 클래스(Class)가 존재
  • Java는 클래스 없이는 개발이 불가능하다.
    • C++은 main() 메서드가 클래스와는 별개로 존재 가능하지만, Java는 무조건 클래스 내부에 존재
      (C++은 클래스 없이 개발 가능하므로, 객체지향지원 언어라고도 부름)
  • 단 하나의 소스파일로 모든 기종의 컴퓨터에서 실행이 가능하다. (그렇다고 C언어와 같은거 X) 

5. Java 버전별 차이

LTS (Long-term Support) 버전 non-LTS 버전
  • 장기 지원 버전
  • 후속 버전이 출시되어도 일정 기간 동안 지원을 지속
  • 후속 버전이 출시되면 지원이 종료됨

(안정적인 시스템 운용 및 호환을 위해서는 LTS 버전 사용 권장)


6. JDK vs JRE

JDK(Java Development Kit)

  • Java 어플리케이션 개발을 위해 반드시 필요
  • Java 컴파일러가 포함되어 있음
  • 일반적으로 OpenJDK + 제조사의 부가 기능으로 구성 (Oracle JDK가 대표적)
  • JRE가 포함되어 있어 별로도 분리하여 설치할 필요 X

 

JRE(Java Runtime Environment), JVM(Java Virtual Machine)

  • Java로 컴파일 된 어플리케이션을 실행하는 역할
  • 모든 Java 어플리케이션은 JVM이라고 하는 가상의 컴퓨터 공간에서 실행됨
  • 어떠한 운영체제라도 JVM이 설치되어 있다면 Java 어플리케이션 실행 가능

  1. Java 소스코드는 [파일명].java 라는 파일 형식으로 루트 디렉토리(최상위)에 패키지로 구분되어 작성됨
  2. 컴파일을 통해 바이트 코드로 바꿔줌
  3. 컴파일된 결과물이 out 디렉토리에 [파일명].class 형태로 저장


7. main 함수

 

main 함수로 진입한 후 작성된 소스의 작업을 모두 수행하면 main 함수가 종료되는데, 이는 프로그램의 종료를 의미

public class Hello {

    public static void main(String[] args) {
        
    }
}

8. Hello world

public class Hello {

    public static void main(String[] args) {

        System.out.println("Hello, Sparta!");
    }
}
  • System.out.println(); 
    → 콘솔에 값을 출력하기 위한 함수
  • 세미콜론은 하나의 명령 단위가 끝났다는 의미를 전달해주기 위해 반드시 붙여줘야함. 

'내일배움캠프(Sparta) > Java Handbook' 카테고리의 다른 글

[Java Handbook] Part 2-2  (0) 2023.09.12
[Java Handbook] Part 2-1  (0) 2023.09.12
[Java Handbook] Part 1-4  (0) 2023.09.11
[Java Handbook] Part 1-3  (0) 2023.09.11
[Java Handbook] Part 1-2  (0) 2023.09.11