자바가 왜 탄생했는지? - 개발 언어의 역사
A 언어
✓ 1960년에 첫 개발언어라는 의미에서 A Programming Language 의 약자로 탄생했다.
✓ 핵심 기능은 입출력/ 문맥으로 기본적으로 필요한 입출력 구현만 가능한 언어이다
B 언어
✓ 1960년대에 벨 사에서 개발해서 B 언어라고 명칭
✓ A 언어 기능 + 연산 기능, 함수 기능이 가능하며 데이터를 연산하고 관리할 수 있는 함수 구현이 가능함
C 언어
✓ 1970년대에 B 언어보다 더 좋은 언어라는 의미로 알파벳 C를 따서 C언어라고 명칭
✓ B 언어 기능 + 자료형 데이터 타입(배열) + 자료구조. 데이터 타입을 정의하고 자료 구조에 담을 수 있음
Java
✓ 어디서나 마시는 자바 커피처럼 어디서나 동작 가능한 언어라는 뜻에서 자바라고 명칭됨
✓ 제임스 고슬링 (James Gosling) 을 필두로 1995년에 개발된 객체 지향 프로그래밍 언어.
Java의 주요 장점
✅ 이식성 : 한 번 작성한 Java 프로그램은 거의 모든 디바이스에서 실행 가능
➡️ "한 번 작성하고 어디에서나 실행한다"는 Java의 철학은 1991년 Sun Microsystems(현재 오라클에 인수됨)의 제임스 고슬링이 개발할 당시부터 지금까지 이어져 오고 있다.
✅ 안정성, 보안성
1. 컴파일 : 작성한 코드를 컴파일러를 사용해 컴파일 한다. 컴파일러는 우리가 작성한 Java 코드를 Java 바이트 코드라는 중간 형태로 변환한다. 컴파일러가 먼저 오류를 체크해서 오류를 미리 방지할 수 있다.
2. 바이트 코드 실행 : 컴파일된 바이트 코드는 JVM (Java Virtual Machine)에서 실행되며 JVM은 Java 바이트 코드를 실제 기기에서 실행 가능한 명령어로 변환해 준다.
✅ 다양한 개발 도구와 라이브러리
➡️ Java API는 다양한 라이브러리 세트를 제공해 Java는 엔터프라이즈 앱 개발에 적합한 기술
Java 플랫폼의 구성 요소
1. JVM
- Java 바이트 코드를 읽고 실행하는 역할.
- JVM이 설치된 시스템에서는 Java 프로그램이 수정 없이 실행될 수 있고 Windows, macOS, Linux 등 어떤 운영체제에서도 동일하게 작동한다.
2. Java API
- Java 프로그램에서 사용할 수 있는 미리 만들어진 기능과 라이브러리의 모음. 파일을 읽고 쓰는 기능, 네트워크 연결 기능 등이 포함되어 있다.
3. 개발 환경
- 프로그램을 작성, 디버그, 테스트할 수 있는 도구를 제공. Eclipse, IntelliJ IDEA 같은 통합 개발 환경(IDE)이 있다.
Java 용어
바이트 코드 : 내가 작성한 코드가 운영체제가 읽을 수 있는 코드로 변환한 코드
Java 컴파일러란?
내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드(.class 파일)로 변환하는 변환기
인터프리터 : 운영체제가 읽은 바이트 코드를 기계어로 번역하는 Java .class 코드 해석기
JIT 컴파일러 : 인터프리터 보조 해석기
메모리 영역 : 컴퓨터 C드라이브처럼 자바의 데이터를 저장하는 영역
🛻 클래스 로더
로더(loader) 가 짐꾼이라는 뜻이므로 바이트 코드를 메모리 영역에 운반하는 친구.
JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함
가비지 컬렉터 : 가비지가 쓰레기라는 뜻이므로 사용하지 않는 데이터를 주기적으로 청소
런타임 : 프로그램이 실행 중인 상태
오늘 할 일
✅ 삼시 세끼 저탄고지로 챙겨 먹어서 체력 관리하기
✅ 자바 변수 개념과 타입에 대해 추가 정리하기
✅ 오후 4시 자바 학습법 특강 듣기

'내배캠_Java 6기 > Java 문법 종합반' 카테고리의 다른 글
20240726_TIL_캠프 2주차 5일_자료구조 배열 (0) | 2024.07.26 |
---|---|
20240726_TIL_캠프 2주차 5일_조건문과 반복문 (0) | 2024.07.26 |
20240725_캠프 2주차 4일_연산자 (0) | 2024.07.25 |
20240723_TIL_캠프 2주차 2일_변수의 종류, 형변환, 강의 과제 (8) | 2024.07.23 |
20240722_TIL_ 캠프 2주차 1일_자바 첫 프로젝트 생성과 변수에 대해 알아보기 (0) | 2024.07.22 |