TIL(Today I Learned)

[Java] Java란 ?

yunseohhe 2024. 7. 23. 19:23

안녕하세요.

오늘은 Java에 대해 알아보겠습니다.

Java 란,

  • C언어 기능에 여러 기기에서 실행 가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는 클래스를 통해 객체를 만들 수 있는 언어
  • 핵심 기능 : C언어 기능 + 공통 실행환경(놀이터), 클래스(바구니 틀), 객체(바구니)

1. 특징

  • 개발 언어의 역사에 따라서 발전해 온 언어 중 가장 많이 쓰이는 개발 언어 중 하나입니다.
  • 공통 실행환경이 있어서 여러 기기에서 실행 가능합니다. 특히, 앱 개발에 적합!
  • 세상과 닮아있는 개발 언어라 코드를 이해하기 쉽고 유지 보수가 쉽습니다.
  • Java 언어로 작성된 문맥을 바이트 코드로 변환하는 변환기(Compiler)가 먼저 오류를 체크합니다.
  • 대규모 앱 개발이 가능합니다.

 

2. JVM

  • Java Virtual Machine의 약자로자바 가상 머신이라는 뜻을 가지고 있습니다.
  • 여러 가지의 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것을 의미합니다

JVM 참고 이미지(출처: 스파르타 내배캠 노션)

 

3. JRE

  • Java Runtime Environment 즉, 자바 실행 환경이라는 뜻을 가지고 있습니다.
  • JVM 을 설치하는 방법은 JRE를 설치하는 것입니다.
  • 그러나 JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있습니다.

 

4. JDK

  • Java Development Kit 즉, 자바 개발 키트라는 뜻을 가지고 있습니다.
  • JRE 기능도 포함하고 있기때문에 JDK만 기억해주셔도 됩니다.
  • '.java' 파일들을 '.class' 파일들로 변환해 주는 Java Compiler(javac) 기능이 있습니다.
  • 코드를 따라가면서 변수를 볼 수 있는 “디버깅” 기능을 제공합니다.

JDK 참고 이미지(출처: 스파르타 내배캠 노션)

5. main 메서드

  • JVM의 약속 : Java 앱은 실행되면 제일 먼저 클래스의 main 메서드를 실행시키는 것
  • 밑의 main 메서드 코드를 해석해보면, 

  • public class Main : "클래스 정의" 한 것
  • public - "접근 제어자", 클래스 경로 외부에서 실행시킬 수 있다고 표시( cf : 그 외 private, protected 도 있음)
  • class - 객체를 만드는 클래스라고 선언한 것
  • Main - 클래스 명 ( cf : 파일명을 꼭 일치 시켜야 함!!)

 

  • public static void main : 메인 메서드 정의한 것
  • public - "접근 제어자", 외부에서 실행시킬수 있다고 표시한 것
  • static - Java컴파일러가 바이트 코드로 변환할 때 미리 정의되는 메서드 표기한 것( cf : 앱 실행 시 한 번만 정의되며, static 메서드 또는 변수(데이터) 끼리만 호출할 수 있습니다.)
  • void - "응답할 값이 없다"라고 정의한 것( cf : 메서드의 응답 값을 정의하는 곳입니다. [예시 : int(정수), char(문자) 등등 ])

 

  • (String[] args) : 메서드가 시작될 때 넘겨받을 데이터들(변수들)
  • String[] - 문자열 여러 개 데이터 타입
  • args - 문자열 여러 개 데이터의 이름 (사용자가 정의한 값 아무거나 써도 됩니다)

 

6.  저장 공간의 선언

(출처 : 스파르타 내배캠 노션)

 - 선언을 할 때에는 항상 저장 공간(그릇)에 담을 값의 타입(그릇의 종류)과 이름(그릇의 이름)을 명시하여 선언해야 합니다.

 - 밑에는 예시 )

int number; // number 라는 이름의 int(숫자)타입의 저장공간을 선언
String name; // name 이라는 이름의 String(문자열)타입의 저장공간을 선언

 

7. 값의 저장

(출처 : 스파르타 내배캠 노션)

  - 선언과 동시에 저장을 하면 이것은 "초기화"라고 합니다.

 

(출처 : 스파르타 내배캠 노션)

  - 선언 이후에 값을 저장한다면 이것은 "덮어쓰기"라고 합니다.

  - 밑에는 예시 )

int number = 10; // 1. 선언과 동시에 값을 저장공간에 저장 (=초기화)

number = 11; // 2. 선언 이후에 다른값을 저장공간에 저장

 

 

8. 입력 & 출력

  - Java 프로그램에서는 기본적으로 'System.in' 객체의 'next()' 명령을 사용해서 입력받습니다.

Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다.
String input = sc.next();  // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다.

 

  - Java 프로그램에서는 기본적으로 'System.out' 객체의 'println' 명령을 사용해서 출력합니다.

Scanner sc = new Scanner(System.in);
String input = sc.next();  

System.out.println("입력값 : " + input);  // 입력한 글자를 출력합니다.

// 실행 결과
{입력}
입력값 : {입력}