컴퓨터(Computer)란?
지시(Program)에 따라 논리적인 계산을 수행하는 기계
Computer
- 프로세서
- 메모리(RAM)
외부저장장치
- HDD/SSD
- USB
- 클라우드
입출력장치
- 입력: 키보드, 마우스
- 출력: 모니터, 프린터
프로그래밍(Programming)이란?
Programming = Coding
컴퓨터가 실행할 프로그램(지시, 명령)을 작성하는 행위
- 작성한 프로그램은 외부저장장치에 파일로 저장
- 프로그램을 메모리에 로딩
- 프로세서가 로딩된 프로그램을 실행
컴퓨터는 0과 1의 이진수로 인코딩된 기계수준 언어만 해독 가능하다
- 프로그램을 사람수준 언어(High-Level-Language)로 작성
- 기계수준 언어로 번역(컴파일Compile)하여 메모리에 로딩
- 프로세서가 기계수준 프로그램을 실행
- 프로그램을 Java 로 작성하여 파일에 저장
- 프로그램을 Java bytecode 로 컴파일하여 가상 메모리에 로딩
- 가상 프로세서가 Java bytecode 를 실행
Java Virtual Machine(JVM)
- 가상 프로세서
- 가상 메모리(RAM)
JVM을 쓰는 이유
- 한 번 작성하면 어디서나 실행된다(Write Once, Run Anywhere)
- 자바로 작성된 프로그램은 JVM이 설치된 어떤 운영체제나 하드웨어에서도 실행될 수 있다.
- JVM은 자동으로 메모리를 관리해주는 기능을 제공.(Garbage Collection)
- 보안성
- 성능 최적화
자바 프로그램의 작동 개념
- 등장 객체들 끼리의 메시지를 전달하는 소통의 연속
- 키보드에서 키 누르기
- 모니터에서 문자 읽기 등 사용자가 메시지 전달
IDE(Integrated Development Environment)
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello, world"); } }실행 추적
애플리케이션 시동: main메소드 호출 --> println("hello, world") --> PrintStream내의 println 실행
- 자바 애플리케이션 내의 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.out은PrintStream클래스의 객체입니다.
-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에 전달하여 대화상자에 표시합니다.