본문 바로가기
[스파르타코딩클럽]/Java 문법 종합반

Chapter 1. Java 소개, JVM, 첫 프로젝트 생성

by 진진리 2023. 10. 12.
728x90

Java

프로그래밍 언어: 사람과 컴퓨터 간의 소통을 위해 사용

  • 개발 언어의 역사
    1. A 언어
      • 첫 개발언어. 1960
      • 핵심기능: 입/출력, 문맥
    2. B 언어
      • Bell사에서 개발. 1960
      • 핵심기능: A언어 기능 + 기계식 데이터 타입, 연산기능, 메서드
    3. C 언어
      • B 언어보다 더 좋은 언어. 1970
      • 핵심기능: B언어 기능 + 자료형 데이터 타입, 자료구조
    4. Java 언어
      • 자바 커피에서 이름을 따옴. 1990
      • 핵심기능: C언어 기능 + 공통 실행환경(JVM), 클래스, 객체
  • Java가 많이 쓰이는 이유
    1. 공통 실행환경: 여러 운영 체제에서 실행 가능. 앱 개발에 적합.
    2. 객체 지향 언어: 이해, 유지 보수가 쉬움
    3. 안정성이 높아 보안상 안전: 컴파일러가 먼저 오류 체크, Java에서 지원하는 보안 기술이 많음
    4. 대규모 앱 개발 가능: 네트워크, DB 연결 및 통신 등의 작업을 처리하는 API 제공
    5. 다양한 개발 도구와 라이브러리 사용 가능

JVM

  • JVM(Java Virtual Machine, 자바 가상 머신): Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어줌
  • 구성
    • 바이트 코드: Java 컴파일러가 변환(.java -> .class)한 JVM이 읽을 수 있는 코드
    • 인터프리터: 바이트 코드를 기계어로 번역하는 코드 해석기
    • JIT 컴파일러: 빠른 바이트 코드 해석기. 인터프리터의 효율을 높여주는 서포터 해석기
    • 메모리 영역: 운영체제로부터 JVM이 할당받은 메모리 영역
    • 클래스 로더: JVM으로 바이트 코드를 불러와서 메모리 영역에 저장
    • 가비지 컬렉터: 메모리 영역에서 안쓰는 데이터를 주기적으로 청소
    • Runtime: 프로그램이 실행중인 상태
    • Runtime 시스템: 프로그램이 실행중인 상태를 관리하는 시스템

 

  • JRE(Java Runtime Environment, 자바 실행 환경)
    • JVM을 설치하는 방법은 JRE를 설치하는 것
    • JRE는 .class 파일만 실행 가능
    • JDK가 javac 명령을 통해 .java 파일을 실행가능한 .class 파일로 변환해줌
  • JDK(Java Development Kit, 자바 개발 키트)
    • JDK는 JRE(JVM)의 기능을 포함
    • .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능
    • 디버깅 기능(Jdb)
      • 디버깅 = 중단점 일시정지 + 코드 라인 단위 수행


코드 해석하기

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
  • public class Main {
    • 클래스 정의
    • public : 클래스 경로 외부에서 실행시킬 수 있다고 표시해주는 “접근 제어자”
      • 클래스 경로 외부에서 호출 못하도록 막는 “접근 제어자”는 private (그외 protected 도 있음)
    • class : 객체를 만드는 클래스 선언
    • Main : 클래스 명
      • 파일명과 일치 시켜야 합니다. (다르면 알림문구가 뜹니다.)
      • 그렇게 해야 Java 컴파일러가 바이트코드 변환했을때의 파일 확장명(.class )과 일치
  • public static void main(
    • main 메서드 정의 - 자바 프로젝트는 제일 먼저 클래스의 main 메소드를 실행시킴
    • public : 외부에서 실행시킬 수 있다고 표시해주는 “접근 제어자”
    • static : Java 컴파일러가 바이트 코드로 변환할때 미리 정의되는 메서드 표기
      • 따라서 앱 실행시 한번만 정의되며 static 메서드 또는 변수(데이터) 끼리만 호출할 수 있습니다.
    • void : 메서드의 응답값을 정의하는 곳인데 void 는 응답할 값이 없다는 정의
      • int 는 정수, char 는 문자, string 은 문자열 등
  • (String[] args)
    • 메서드가 시작될때 넘겨받을 데이터들(변수들)
    • String[] : 문자열 여러개 데이터 타입
    • args : 문자열 여러개 데이터의 이름 (사용자가 정의한값 아무거나 써도됨)
  • System.out.print()
    • 출력창에 괄호 안으로 전달된 데이터를 출력
  • System.out.println()
    • 출력창에 괄호 안으로 전달된 데이터를 출력 후 줄바꿈
  • // 주석
    • 프로그램 실행에 영향을 미치지 않음
    • 코드에 대한 설명을 추가하거나 주의사항을 적어놓을 때 사용

 

'[스파르타코딩클럽] > Java 문법 종합반' 카테고리의 다른 글

Chapter 6. 컬렉션  (0) 2023.10.13
Chapter 5. 배열  (0) 2023.10.13
Chapter 4. 조건문, 반복문  (0) 2023.10.13
Chapter 3. 연산자  (0) 2023.10.13
Chapter 2. 변수, 형변환  (0) 2023.10.12