JAVA Basics

김지원·2022년 5월 21일
0

Java

목록 보기
2/38

Java를 배우는 이유
어떤 프로젝트를 만들어 볼건지 목표를 설정하자.

  • 소프트웨어(인디게임)
  • pos기(관리자를 위한)
  • 채팅
  • .....

컴파일

사람의 언어를 컴퓨터의 언어(2진법)로 바꿔주는 작업

  1. 디버그 : 오류 검사 (문법에 맞게 썻니?)
  2. 빌드 : 실행프로그램을 만들어 주는 작업.
  3. 링크 :
  4. 실행프로그램
    -> 컴파일러(eclipse)

JAVA는 이식성이 높다.

<JAVA 프로그램이 돌아가는 내부 설계>

  • JVM
  • OS (운영체제) : 하드웨어에 적절한 전기신호를 흘려보내주는 것
  • 하드웨어
    JAVA는 어떠한 운영체제(OS)를 만나도 JVM을 통해 그 OS에 맞게 바꿔준다.

JDK

JVM(Java virtual Machine)

  • JAVA 프로그램을 실행해 줌. (JVM을 구동시키려면 JRE가 필요함)
  • JVM (JAVA 고유의 환경 구축)
  • OS
  • Hardware
  • Class Loader : 메모리 적재 (컴퓨터가 기억하는 것들을 불러온다.)
  • Runtime Data Areas : RAM 영역 관리
  • Execution Engine : 소스코드 일고 실행 (엔진을 실행하다.)

JRE(Java Runtime Environment)

  • JVM을 생성하는 부분
  • JVM에서 실행할 때 필요한 라이브러리 파일들과 기타파일들을 가지고 있음.
  • JVM에서 사용하는 정보들을 JRE가 가지고 있음.(도서관처럼)

JDK(Java Development Kit) : 개발 도구

  • JVM과 JRE에 의해 실행되고
  • 구동될 수 있는 자바 프로그램을 생성할 수 있게 해줌.
  • JRE외에 개발에 필요한 도구들을 가지고 있음.(우리가 코드를 치고 소스를 만들어 낼 때 사용)

RAM(메모리)

동시에 작업할때 필요한 영역들을 보관하는 것.
영역별로 기억을 한다.

RAM

(높은주소)
OS Kenel Space : 드라이버가 설치되는 곳 (키보드, 마우스의 전기신호를 보낸다.)
*--------------
Stack ↓         : 지역변수, 매개변수 
*---------------(점선)
Free             -> Stack이 꽉 차면 밑방향으로 점선이 증가 Heap은 위쪽방향으로 증가. 
                 거기서 점선끼리 만나게 되면 stack overflow 라고함.
*---------------(점선)
Heap ↑          : 동적메모리 (new)초기화 되지 않은 변수
*---------------
BSS             : 초기화 되지 않은 변수
*---------------
Data 영역        : 전역변수, static뱐수
*---------------
Text             : 상수

(낮은주소)

0개의 댓글

관련 채용 정보