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