[Java] - 자바 기초 (특징, 개발 환경)

서현이의 개발 기록장·2022년 10월 17일
0

Java Programming

목록 보기
2/4
post-thumbnail

컴파일 (Compile)

소스코드를 기계어로 번역하는 과정

컴파일 vs 인터프린터 (스크립트)

인터프린터

  • 소스코드를 실행코드로 변환하지 않고, 소스코드를 한줄한줄 바로 실행한다.
  • 에러 발생 시, 에러가 발생한 해당 라인 직전 라인 까지는 실행이 된다.

컴파일

  • 인터프린터와는 다르게 소스코드를 실행코드로 변환하고, 실행코드를 실행한다.
  • 에러가 있으면 해당 라인 까지 실행 되는 것이 아니라, 아예 실행이 되지 않는다. (실행파일을 만들지 못함 = 컴파일을 못함)


플랫폼 종속성

개발하는 환경에 따라 사용자의 프로그램 사용 환경이 결정 됨.

  • ISA (Instruction set architecture), OS (Operating System) 때문에 cpu가 프로그램을 해석하는 방식이 다 다르다.

자바의 플랫폼 독립성 (WORA)

사용자의 사용 환경이 개발하는 환경과 상관없이 범용성을 가짐

JRE (JVM)

  • 자바는 자바 가상 머신이 존재하여, 프로그램이 자바 가상머신 위에서 돌아간다.
  • 프로그래밍 언어를 구현하는데 번역의 징검다리 역할

자바 바이트코드

  • 바이트코드란? 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드
  • .class 의 확장자 형태를 가짐

플랫폼 독립성의 단점

종속적으로 개발했을 때보다 성능이 좋지 않음.

  • 플랫폼 독립적일 때 최적화 문제가 있음
    -> (instruction/data-level parallelism, cache optimization)

main 메소드

프로그램 실행을 시작시키는 메소드

  • 프로그램 객체가 메모리에 생성 -> Main 메소드 호출
  • 모든 자바 application은 main 메서드가 있어야 함

자바 IDE (Eclipse, JDK)

IDE (Integrated Development Environment)

  • 통합 개발 환경
  • 편집, 컴파일, 디버깅 등 여러 작업을 하는 툴

Eclipse (자바 IDE)

  • 자바 응용 프로그램 개발을 위한 통합 개발 환경
  • 프로젝트 생성 -> 패키지 생성 -> 클래스 생성 -> 소스코드 실행

JDK (Java Development Kit)

  • 자바 응용 개발 환경, 개발에 필요한 도구 포함 (컴파일러, 클래스 라이브러리, 샘플 등)
  • JRM과 JDK를 설치하면, Eclipse가 JRM과 JDK를 자동으로 선택해서 실행한다.

MVC 구조

모델 (Model)

  • 제어기의 메시지에 따라 계산을 하는 객체

뷰 (View)

  • 사용자와의 상호작용을 관장하는 객체

제어기 (Controller)

  • 정보를 전달하는 것을 관장하는 객체

간단한 프로그램 예제 (Hello World)

< 이름, 날짜, 시간을 출력하는 프로그램 만들기 >

import java.util.*; // Java package
/** NameAndDate는 이름과 날짜, 시간을 출력 */ 

public class NameAndDate
{
  public static void main(String[] args)
  {
    System.out.print(Hanyang ERICA --- ");
    
    // The next statement creates an object: 
    GregorianCalendar c = new GregorianCalendar(); // 객체 생성은 new로
    
    // c에게 시간을 물어보고 그 결과를 출력
  	System.out.println(c.getTime()); 
  	System.out.println("Finished");
	} 
}

Java 패키지와 API

Java에서 기본적으로 제공하는 패키지를 Java API (Application Programming Interface)라고 부른다.
ex) java.lang, java.util ...

  • 일부 기초적인 API는 import 하지 않아도 사용할 수 있다.
    ex) System.out.
profile
HanYang ERICA Univ. Department of Artificial Intelligence

0개의 댓글