Java(1): Java프로그램 소개

이규현·2024년 9월 6일

컴퓨터와 프로그래밍

컴퓨터

컴퓨터(Computer)란?

지시(Program)에 따라 논리적인 계산을 수행하는 기계

Computer

  • 프로세서
  • 메모리(RAM)

외부저장장치

  • HDD/SSD
  • USB
  • 클라우드

입출력장치

  • 입력: 키보드, 마우스
  • 출력: 모니터, 프린터

프로그래밍

프로그래밍(Programming)이란?

Programming = Coding
컴퓨터가 실행할 프로그램(지시, 명령)을 작성하는 행위

  • 작성한 프로그램은 외부저장장치에 파일로 저장
  • 프로그램을 메모리에 로딩
  • 프로세서가 로딩된 프로그램을 실행

컴퓨터는 0과 1의 이진수로 인코딩된 기계수준 언어만 해독 가능하다

  • 프로그램을 사람수준 언어(High-Level-Language)로 작성
  • 기계수준 언어로 번역(컴파일Compile)하여 메모리에 로딩
  • 프로세서가 기계수준 프로그램을 실행

Java Programming

  • 프로그램을 Java 로 작성하여 파일에 저장
  • 프로그램을 Java bytecode 로 컴파일하여 가상 메모리에 로딩
  • 가상 프로세서가 Java bytecode 를 실행

Java Virtual Machine(JVM)

  • 가상 프로세서
  • 가상 메모리(RAM)

JVM을 쓰는 이유

  • 한 번 작성하면 어디서나 실행된다(Write Once, Run Anywhere)
  • 자바로 작성된 프로그램은 JVM이 설치된 어떤 운영체제나 하드웨어에서도 실행될 수 있다.
  • JVM은 자동으로 메모리를 관리해주는 기능을 제공.(Garbage Collection)
  • 보안성
  • 성능 최적화

자바 프로그램의 작동 개념

  • 등장 객체들 끼리의 메시지를 전달하는 소통의 연속

  • 키보드에서 키 누르기
  • 모니터에서 문자 읽기 등 사용자가 메시지 전달

통합 개발환경


IDE(Integrated Development Environment)

구현1

public class HelloWorld{
	public static void main(String[] args){
    	System.out.println("Hello, world");
    }
}
실행 추적

애플리케이션 시동: main메소드 호출 --> println("hello, world") --> PrintStream내의 println 실행

구현 2

  • 자바 애플리케이션 내의 Swing 패키지 활용
import java.time.*;
import javax.swing.*;
public class Clock {
    public static void main(String[] args) {
        System.out.println(LocalTime.now());
        JOptionPane.showMessageDialog(null,LocalTime.now());
    }
}
  • 실행결과
  • 실행 추적
    애플리케이션 시동 --> main 메소드 호출 --> JOptionPane 의 showMessageDialog메소드 호출 --> 실행

객체와 메시지 전달과정

import java.time.*;
public class Clock {
  public static void main(String[] args) {
    System.out.println(LocalTime.now());
  }
}
  • LocalTime 클래스의 now() 메서드 호출:
    - 프로그램이 시작되면 main 메서드가 실행됩니다.
    - LocalTime.now()가 호출되면서, 시스템의 현재 시간을 나타내는 LocalTime 객체가 생성됩니다.
    - LocalTime객체는 시스템 시계를 참조하여 현재 시간을 반환합니다.
  • System.out 객체:
    - System.outPrintStream 클래스의 객체입니다.
    - println 메서드는 생성된 LocalTime 객체의 toString() 메서드를 호출하여 시간을 문자열로 변환한 후, 이를 콘솔에 출력합니다.
import javax.swing.*;
import java.time.*;
public class Clock {
  public static void main(String[] args) {
    JOptionPane.showMessageDialog(null, LocalTime.now());
  }
}
  • LocalTime 클래스의 now() 메서드 호출:
    - 마찬가지로 main 메서드가 실행되면 LocalTime.now()가 호출되고, 현재 시간을 나타내는 LocalTime 객체가 생성됩니다.
  • JOptionPane 객체:
    - JOptionPane.showMessageDialog 메서드는 GUI 창을 통해 메시지를 출력하는 스윙 라이브러리의 메서드입니다.
    - showMessageDialog는 내부적으로 여러 가지 스윙 컴포넌트 객체(프레임, 다이얼로그 창 등)를 생성하고, 사용자가 지정한 메시지(현재 시간)를 포함하여 대화상자를 표시합니다.
  • 메시지 전달 과정:
    - LocalTime.now()가 반환한 LocalTime 객체의 toString() 메서드를 호출하여 시간 정보를 문자열로 변환한 후, 그 문자열을 JOptionPane.showMessageDialog에 전달하여 대화상자에 표시합니다.

0개의 댓글