Java 기초

Java 개론

Kw_w 2024. 2. 26. 10:16

 

프로그램은 set of instruction

 

Q. 프로그램이 실행된다는 의미

프로그램, 프로그래밍 → 컴퓨터가 일을 수행하도록 프로그래밍 언어로 명령어를 만드는 것

프로그래밍을 통해서 프로그램이 실행된다

→ Memory에 탑재된다

 

프로그램 실행과정

  1. fetch
  2. decoding
  3. excution
  4. write back

 

컴파일이란?

  • 텍스트로 작성한 프로그램을 시스템이 이해할 수 있는 기계어(byte code:0,1)로 변환하는 과정
  • 보통 컴파일 과정과 라이브러리 링크 과정을 묶어서 수행하는 것을 의미

compile을 하기위해서는 compiler가 필요

ex) Linux : gcc

 

int i = 10
String str = "Kim"
  • Java에서 Compiler
    • JVM (Java Virtual Machine)
    → Write Ones, Run Anywhere
    •  JVM이 인식할 수 있는 Java Bytecode로 변환
  • JRE ( Java Runtime Environment)→ JVM
  • JRE는 자바로 개발(쓰기)은 안되고 실행(읽기)만 된다.
  • 자바로 만들어진 프로그램을 실행 시키는데 필요한 라이브러리들과 각종 API
  • JDK (Java Development Kit)→ Java compiler, 문서 및 개발도구등이 포함 → JRE, JVM
    • 개발자들이 자바로 개발하는데 사용

→ Java 프로그램을 직접 개발하려면 JDK가 필요하고, Java로 만들어진 프로그램을 실행하려면 JRE가 필요

  • Java 실행 구조→ window, mac, linux등 .class파일만 전달하면 실행이 가능하다. JVM위에서
  • Myprogram.java → compiler → Myprogram.class → JVM → OS
  • 객체지향 언어 (c++, python, java, …)
    • 객체 지향 언어의 반대 개념 - c, pascal, cobol, … : 절차 지향 언어
  • Object Oriented Programming : 시간순이 아닌 객체(class)간의 협력을 기반으로 하는 프로그램
// c style
int calculator (int size) {
 ....
}

int main() {
 ....
	int sum = calculator(size)
}
// java style
public class Myprogram {
	public static int calculator(int size) {
		....
		return num;
	}	
	public static void main(String[], args) {
		....
		int sum = Myprogram. calculator(size)
	}	
}
int main(){
	int *ptr = (int *)malloc(5* sizeof(int)	
	ptr[0] = 10

	free(ptr)
}
public class MemoryMem{
	public static void main(String[] args) {
		int arr[] = new int[5]
		arr[0] = 10

		// Java에서는 메모리를 명시적으로 해제하지 않습니다.
	}
}
  • Object (객체)객체는 특성과 행동 학생의 예를 들자면
  • attr = 이름, 학년, 학번 method = 공부하다, 밥먹다, 놀다
  • 객체는 자신만의 고유한 특성(=attr)과 행동(=method)을 가진다.