컴퓨터와 프로그래머, 소프트웨어의 관계 : 만능 요리 기계, 요리설계사와 요리순서와 같다고 볼 수 있다.
- 컴퓨터는 혼자서 아무 것도 할 수 없고, 반드시 프로그래머가 설계한 소프트웨어가 있어야 움직인다는 점입니다.
- 좋은 프로그래머는 좋은 설계사처럼, 효율적이고 정확한 소프트웨어(레시피)를 만들어 더 나은 결과물을 얻게 합니다.
프로그래밍 언어
- 프로그래밍 언어 : 컴퓨터가 실행한 프로그램을 작성하기 위한 언어
- 기계어(machine language) : 0,1의 이진수로 구성된 언어
- 어셈블리어 : 자주 사용하는 명령어들을 쉬운 단어로 미리 만들로 대응시킨 언어 (기계어에 가까움)
- 고급언어 : 사람이 이해하기 쉽고, 복잡한 작엄, 자료 구조, 알고리즘을 표현하기 위해 고안된 언어/ 크게 절차 지향 언어와 객체 지향 언어로 나눌 수 있다.
(여기서 고급 : 인간에 가깝다는 뜻! , 저급 : 컴퓨터에 더 가깝다는 뜻!)
컴파일
- 소스 : 프로그래밍 언어로 작성된 텍스트 파일
- 컴파일 : 소스파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정!
- 컴파일러 : 중간역할(번역가!!)
- ex) java : .java -> .class / C : .obj -> .exe / C++ : .obj -> .exe
자바 플랫폼 독립성, WORA(Write Once Run Anywhere)
- 한번 작성된 코드는 모든 플래폼에서 바로 실행되는 자바의 특징
- C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복 (OS, 하드웨어에 상관없이 자바 프로그램이 동일하게 실행)
- 네트웨크에 연결된 어느 클라이언트에서나 실행 (웹 브라우저, 분산 환경 지원)
WORA를 가능하게 하는 자바의 특징
- 바이트 코드(byte code) : 자바 소스를 컴파일한 목적 코드 / CPU에 종속적이지 않은 중립적인 코드 / JVM에 의해 해석되고 실행됨
- JVM(JAVA Virtual Machine) : 자바 바이트 코드를 실행하는 자바 가상 기계(소프트웨어) / 자바 가상 기계 자체는 플랫폼에 종속적임. (ex. 자바 가상 기계는 플랫폼마다 각각 작성됨.) / 적은 메모리로 실행 가능.
JDK(Java Denvelopment Kit)
- 자바 응용 개발 환경, 개발에 필요한 도구 포함
- 컴파일러, 컴파일된 자바 API 클래스들이 들어 있는 모듈 파일들, 샘플 등 포함.
*모듈 : 패키지의 상위 묶음
자바 API(Application Progrmming Interface)
- JDK에 포함된 클래스 라이브러리 : 주요한 기능들을 미리 구현한 클래스 라이브러리의 집합
- 개발자는 API를 이용하여 쉽고 빠르게, 자바 프로그램 개발
자바의 특성
- 플랫폼의 독립성 : h/w, os에 종속되지 않는 바이트 코드로 플랫폼 독립성
- 객체지향 : 캡슐화, 상속, 다형성 지원
- 클래스로 캡슐화 : 자바의 모든 변수나 함수는 클래스 내에 선언, 클래스 안에서 클래스(내부 클래스) 작성 가능
- 소스(.java)와 클래스(.class) 파일 : 하나의 소스파일에 여러개 클래스 작성 가능! / 소스파일(.java)의 이름과 public으로 선언된 클래스 이름은 같아야함! / 클래스 파일에는 하나의 클래스만 존재!
- 가비지 컬렉션 : 사용하지 않는 메모리는 자바 가상 기계에 의해 자동 반환됨.
- 실시간 응용프로그램에 부적합 : 실행 도중 예측할 수 없는 시점에 가비지 컬렉션 실행 때문 - 일시적 중단 발생
'EWHA_2nd grade > Java프로그래밍과실습1' 카테고리의 다른 글
Chap3 - 배열과 예외처리 (1) | 2025.04.10 |
---|---|
Chap3 - 반복문 (0) | 2025.04.06 |
Chap2 - 자바 프로그래밍 (0) | 2025.04.05 |