Java

Java 문법(1) - 시작

sangchu 2022. 2. 6. 21:16

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)
    • 프로그램이 동작하고 있는 운영체제의 기계어로 다시 번역해줌 ⇒ 운영체제와 상관없이 프로그램 실행 가능
    컴파일링을 거쳤을 때 Linux용 C 프로그램 소스코드는 Linux 기계어로, Windows용 C 프로그램 소스코드는 Windows 기계어로 번역되기 때문에 서로 다른 운영체제에서 사용할 수 없음 ⇒ 이러한 소스코드의 언어를 Native Language라 함)

 

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'를 학습하며 정리한 문서