# 1️⃣ 프로그래밍?
프로그램(progream) : 일정한 기능을 수행하는 컴퓨터가 인식할 수 있는 명령어들의 집합
프로그래밍(Programming) : 프로그램을 작성하는 과정
프로그래머(Programmer) : 프로그램을 작성하는 사람
# 2️⃣ 프로그래밍 언어
- 우리가 사용하는 언어는 컴퓨터 입장에서 "이해할 수 없는 문자 집합"
- 컴퓨터가 사용하는 언어는 우리의 입장에서 "0과 1의 이상한 반복"
- 사람과 기계가 커뮤니케이션 할 수 있도록 중간다리 역할을 하는 것
# 3️⃣ 자바의 특징
3 - 1. 장점
1. 객체 지향 언어
OOP : Object Oriented Programming
- 부품에 해당하는 객체를 만들고, 이것을 조립/연결해서 프로그램을 완성할 수 있다
- 모든 ‘객체’를 부품처럼 사용하기 때문에, 개발/유지보수가 용이함.
- 캡슐화 , 상속, 다형성이라는 특징을 가진다 (추상화)
2. 이식성이 좋다.
: 어떤 운영체제에서도 사용 가능함
3. 메모리를 스스로 관리
Garbage Collection (가비지 컬렉션)
- 개발자가 직접 관리해야 하는 C언어와 달리, 자바는 가비지 컬렉션이라는 청소부가 알아서 불필요한 객체를 지워 주면서 메모리를 관리해 준다.
4. 운영체제에 독립적이다.
‘한번 작성하면, 어디서든 실행된다’
- 자바 가상머신 (JVM) 때문
- 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신
- JVM이 자바 응용프로그램으로부터 잔달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
5. 동적로딩을 지원한다.
- 자바는 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용
- 그 외에 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일X
- 변경사항이 발생해도 비교적 적은 작업만으로 처리
6. 멀티쓰레드를 지원한다.
: 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다. → 일반적으로 멀티쓰레드의 지원은 사용되는 운영체제에 따라 구현방법도 상이, 처리 방식도 다름
7. 사용하기 쉬운 언어이다.
: 다른 언어들에 비해 쉽다
- 자바는 고급 언어들에 들어 있는 여러 가지 요소들 중에서 반드시 필요하지 않다고 생각된 부분들은 모두 제거함.
3 - 2. 단점
- 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느림
- 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함
- 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편
# 4️⃣ 자바 개발 환경
- JDK(Java Development kit)
- JVM은 자바가 실제도 구동하는 환경, 자바 개발 키트이다.
- JVM(Java Virtual Machine)
- 자바 가상 머신(JVM)은 라이브 자바 프로그램 실행을 담당하는 실행 소프트웨어 시스템이다.
- JRE(Java Runtime Environment)
- JVM이 자바 프로그램을 동작시킬 때, 필요한 라이브러리 파일과 기타 파일을 가지고 있음
- 자바로 만들어진 프로그램을 실행하려면 JRE만 있어도 됨, 개발하려면 JDK있어야함
- Java SE(Java platform Standard Edition)
- java api의 집합체
- Java EE(Java platform Enterprise Edition)
- java를 이용한 서버측 개발을 위해 필요한 플랫폼
- 웹 애플리케이션 장애복구 및 분산 멀티티어 제공
- Java ME(Java platform Micro Edition)
- 제한된 자원을 가진 휴대전화, PDA, 세톱박스 등에서 Java 프로그래밍 언어를 지원하기 위해 만들어진 플랫폼
# 5️⃣ 자바 프로그램의 실행 과정
1. 소스코드 작성 단계
- Java 언어로 코딩을 하면 확장자가 .java인 텍스트 파일이 생성된다. 자바 소스 파일이라고 한다.
2. 컴파일 단계
- 프로그램 실행을 시도하면 .java 파일이 컴파일이되고 컴파일이 완료되면 .class 파일이 생성된다.
- 컴파일이란 java 소스코드를 java 컴파일러(javac.exe)가 바이트코드(2진수)로 변환하는 것이다.
3. 실행 단계
- JVM(java.exe)이 .class 파일을 메모리로 로드하고, 기계어(0101001)로 변환 후 실행한다.
#6️⃣ JVM 메모리구조
'📚Programming > Java' 카테고리의 다른 글
[자바] 출력메소드 (1) | 2022.09.16 |
---|---|
[자바] 형변환 (0) | 2022.09.16 |
[자바] 상수와 리터럴 (0) | 2022.09.16 |
[자바] 변수 (0) | 2022.09.16 |
[이클립스] JAVA 프로그래밍 순서 (1) | 2022.09.16 |