java의 동작 원리

  1. java 언어로 쓰여진 source code는 우리의 컴퓨터는 인식을 하지 못하기 때문에
  2. java 기반으로 이루어진 java virtual machine이 필요하다.
  3. java 언어로 쓰여진 source code를 컴퓨터 언어로써 인식을 하기 위해서 compile을 진행하게 되고,
  4. 컴파일을 진행하게 되면 java application.class로 인식을 하게 된다.
  5. class로 인식이 된 source를 실행시키게 되면, virtual machine으로 컴퓨터 내에서 동작하게 된다.

출처 : 생활코딩 https://www.opentutorials.org/course/3930/26656

 

  • class : binary(bin)=컴퓨터가 읽을 수 있는 언어 >> Application(Program)
  • java : 소스코드(src)=사람이 읽을 수있는 언어
  • Compile이란? 확장자가 .java인 파일을 기계가 이해할 수 있도록 전환하는것 (.java 를 .class로 전환)
  • JVM이란? Java Virtual Machin 즉 자바를 실행하는 가상기계 (.class 파일을 읽어서 동작시킴)

 

java의 기본 구조와 개념 정리

  • 자바에서 패키지(package)는 관련된 클래스 또는 인터페이스를 그룹으로 묶어 놓은 것
  • 자바 프로그램은 한 개 이상의 클래스로 구성된다.
  • 클래스는 한 개 이상의 필드(field)와 메서드(method)로 구성된다.

 

출처 : 생활코딩 https://www.opentutorials.org/course/3930/26656


① 패키지 

  • 클래스는 물리적으로 하나의 클래스 파일(확장자 .class)인 것처럼 패키지는 물리적으로 하나의 디렉터리이다.
  • 따라서 하나의 패키지는 디렉터리에 저장된 클래스 파일들이다.

 

② 클래스(Class)

  • 클래스는 객체에서 공통된 상태와 행동을 모델링한 것으로 설계도와 유사하며, 다음과 같은 구성요소로 이루어 진다.

         - 필드(field): 객체에 속한 데이터(객체의 상태, 속성, 특징, 정보, 명사적 의미)를 저장할 변수
         - 메서드(method): 필드 상태를 조작할 수 있는 함수
         - 객체의 행위(behavior, 행동, 동작, 기능, 방법, 데이터 조작, 동사적 의미)

  • 객체란 실 세계에 존재하는 모든 것(일상 생활에서 볼 수 있는 사물)과 아이디어 같은 개념을 총칭한다.
  • 모든 객체는 상태(state)와 행위(behavior)로 구성되고 객체는 클래스로부터 생성된다.
  • 클래스 정의란 클래스를 구현하는 것으로 클래스 헤더와 몸체로 구성된다.
  • 클래스 헤더는 class 예약어로 시작하여 이 뒤에 클래스 이름을 기술한다. 관례상 클래스 이름(클래스명)은 대문자로 시작한다.
  • 클래스 몸체는 스텁(메서드의 기능은 없지만 컴파일이 가능하도록 빈 중괄호) 안에 넣어 정의한다. 즉, 중괄호 { 와 } 내부에 필드와 메서드가 구성됨

출처 : https://palpit.tistory.com/

 

 

③ 메서드와 main() 메서드

  • 클래스에서 꼭 필요한 행위를 포함하려면 메서드를 정의해야 한다.
  •  메서드(method: 함수)는 어떤 특정한 행위(동작, 기능)을 구현하는 함수
  • 클래스의 메서드는 해당 클래스로부터 만들어지는 객체에게 메서드로 표현된 기능을 부여하는 것이고, 객체에게 메서드로 표현된 행위 능력을 갖게 하는 것
  • 클래스를 실행하기 위해 반드시 main 메서드를 정의해야 한다. main 메서드는 자바 프로그램 실행이 시작되는 특별한 메서드이다.
  • 메서드 정의는 클래스(또는 인터페이스) 안에 정의(메서드 기능 구현)한다.
접근지정자    반환 자료형    메서드명(매개변수)  {

        // 몸체 (메서드 처리 내용)

  }

 

메서드의 정의 형태는 마치 제품을 만든(몸체) 후 그 제품을 담기 위해 포장(중괄호 {}) 하고 제품명을 붙이는 것(메서드 명)과 유사

 

 

메서드의 구성 요소

  메서드 헤더(Header)   접근 지정자, 반환형(return type), 메서드 명, 매개변수로 구성
  접근 지정자(access specifier)   멤버 변수와 메서드에 접근을 허락하는 레벨을 나타냄 (public, static)
  반환형(return type)   객체가 메서드 호출의 결과로 돌려주어야 하는 정보.
  (void라고 지정된 메서드는 메서드 호출의 결과로 돌려줘야 할 정보가 없다는 것)
  메서드 명   사용자가 해당 기능에 부합하는 이름을 지정
  매개변수(parameter)   메서드가 호출될 때 요구되는 입력 값을 받아서 저장하는 변수.
  메서드 명 다음에 오는 소괄호 (와 )에 표기함
  인자(argument)   메서드를 호출할 때 함께 전달하는 정보. 인자는 매개변수에 대응하여 치환된다.
  매개변수와 인수는 반드시 동일한 자료형과 동일한 순서, 동일한 개수대로 사용해야 함
  ( ※ 두 개 이상의 값을 전달받는 메서드라면 각 매개변수마다 자료형을 반드시 표기해야 한다.
  각 매개변수는 콤마로 구분.)
  메서드 몸체(body)   실제로 객체가 할 행위를 적어주는 곳. 스텁 안에 메서드 기능을 기술하여 정의
  식별자(Identifier)   식별자는 클래스, 변수, 메서드 등에 붙이는 이름
  예약어(Keyword)   예약어는 미리 용도가 정해진 이름으로 식별자로 사용할 수 없다.
  접근 지정자(Access specifier)   접근 지정자는 멤버 변수와 메서드에 접근을 허락하는 레벨을 나타냄

 

 


[출처]

출처 : 생활코딩 https://www.opentutorials.org/course/3930/26656

          https://palpit.tistory.com/entry/Java-1-Java-%EA%B8%B0%EB%B3%B8-%EA%B5%AC%EC%A1%B0

'Coding > Java' 카테고리의 다른 글

[06] Java 참조 타입  (0) 2022.11.11
[05] Java 조건문과 반복문  (0) 2022.11.11
[04] Java 연산자와 연산  (0) 2022.11.11
[03] Java 시작하기(설치), 변수와 타입  (1) 2022.11.11
[02] 생활코딩 Java 입문 강의 정리 (2)  (0) 2022.11.04

+ Recent posts