Java? JDK? J2SE?
- J2SE(Java 2 Standard Edition), J2EE(Java 2 Enterprise Edition), JRE(Java Runtime Environment), JDK(Java Development Kit) ⇒ 자바 플랫폼을 사용한 개발 혹은 실행을 위한 API
**플랫폼: 특정 소프트웨어를 구동할 수 있는 갖추어진 공간
**API: 프로그램 작성을 위한 도구의 모음(함수, 라이브러리 등)
**라이브러리: 소프트웨어를 개발할 때 유용하게 사용할 수 있는 변수, 함수 등의 모음
자바의 특징
- Garbage Collector: 메모리에 다양한 데이터 값을 넣고 삭제하는 작업을 하면서 메모리가 지저분해지는 경우가 발생. java는 자동 메모리 정리 기능을 갖고 있음
- JVM(Java Virtual Machine)
- 프로그램이 동작하고 있는 운영체제의 기계어로 다시 번역해줌 ⇒ 운영체제와 상관없이 프로그램 실행 가능
JVM(Java Virtual Machine)
- Java는 JVM이라는 프로그램을 통해 동작함
- Java 프로그램은 *.java 확장자로 이루어져 있음 → JAVAC Compiler를 통해 *.class라는 파일로 변환 → 각 운영체제에 설치되어있는 JVM이 *.class 파일을 실행하는 방식으로 동작
- Java 프로그램을 실행하고자 하는 컴퓨터에 JVM이 설치되어있지 않으면 실행시킬 수없음
- 같은 Java 소스코드는 여러 운영체제에서 수정하지 않고 사용할 수 있음
- Managed Language: Java와 같이 여러 운영체제에서 사용할 수 있는 프로그래밍 언어
- Managed Language는 Native Language보다 실행속도가 느림 ⇒ JVM이 각 운영체제에 맞는 Native 언어로 변환해주는 작업이 필요하므로
SDT(Strict Data Type)
- Managed Language의 특징
- 자료형(Data Type) : 프로그래머가 Compiler에게 알려주는 데이터의 속성
- SDT: Managed Language를 다룰 땐 사용하고자 하는 자료형이 무엇인지 정확하게 표현해야 하며, 상황에 따라 꼭 맞는 자료형을 사용해야 함
POP(Procedure Oriented Program)
- 기능을 우선시하여 프로그래밍 ⇒ OOP에 비해 빠르게 프로그래밍 가능
- 대부분의 함수가 전역 데이터**를 사용함 ⇒ 데이터 접근 용이(but 보안성 낮다)
- POP는 데이터의 모듈화**가 어려움
**전역 데이터: 프로그램 내부에서 어디서든 사용 가능한 데이터
**모듈화: 프로그램을 관리가 용이하도록 기능 단위로 분리하는 작업
OOP(Object Oriented Program)
- 기능위주의 POP와 달리 ‘객체’라는 개념을 통해 데이터 및 함수를 모듈화함 ⇒ 프로그램의 유지 보수와 보안성 강화
- 특징
- 캡슐화: 데이터를 캡슐화(은닉화)함으로써, 상황에 따라 프로그램 외부에서 접근 가능한 데이터를 지정할 수 있음 (ex. public, private, protected) ⇒ 내부적으로 숨겨야하는 데이터의 접근을 막음으로써 데이터의 보안성 좋아짐
- 추상화: OOP에서 제공하는 함수/데이터 모듈화의 일종. 객체의 기본적인 틀(뼈대)만 미리 만들어 놓을 수 있음, 상속을 사용하여 구체적인 객체로 만들어 사용할 수 있음
- 상속: OOP에서 제공하는 함수/데이터의 모듈화의 일종. 피상속 객체(부모 클래스)의 데이터 및 함수들을 상속 객체로 그대로 이어 받아 사용할 수 있는 기능 ⇒ 코드의 재사용성 높임
- 다형성: 객체가 다양한 형태로 표현될 수 있다는 개념. 추상화된 객체와 같이 ‘틀’을 가진 객체가 구체화된 객체로 표현가능하다는 뜻
콘솔 출력
- 콘솔: 컴퓨터와 소통하는 창
- Java에서 콘솔 출력
- Systme.out.print(" ") : 개행 없이
- System.out.println(" ") : 개행
- 세미콜론(;) : 이 줄에서 실행될 내용은 여기까지임을 뜻함
'바로 실행해보면서 배우는 java'를 학습하며 정리한 문서
'Java' 카테고리의 다른 글
Java 문법(6) - 클래스와 객체, 접근제한자 (0) | 2022.02.07 |
---|---|
Java 문법(5) - 배열 기초, String (0) | 2022.02.06 |
Java 문법(4) - 메소드 (0) | 2022.02.06 |
Java 문법(3) - 연산자, 조건문, 선택문, 반복문 (0) | 2022.02.06 |
Java 문법(2) - 메모리, 자료형 (0) | 2022.02.06 |