Language43 메서드(Method) 메서드(Method) 💡 메서드 란? : 클래스의 행위. 클래스 내부에 존재해야 한다. ✅ main 메서드는 규칙이다. : 자바와 개발자 사이의 약속 : public static void main(String[] args) 가 이끄는 중괄호{} 안에 실행되기를 기대하는 로직을 위치시켜야 한다 메서드 Stack 메모리 1. JVM이 .class 파일을 로드하면 2. static 키워드 찾고 static 에 올린다.(main 메서드 포함) 3. main 메서드 실행 4. main 큐가 오픈되고(main 메서드가 실행할 작업 리스트) 5. stack 공간이 생기고 stack에 main stack 영역이 생긴다. (main 작업 리스트 중에 메서드를 호출하게 되면, 해당 메서드의 큐와 스택도 오픈된다.) 6. .. 2023. 2. 8. Java 코드 실행 원리 💡 Java 코드 실행 원리 자바의 모든 코드는 클래스 내부에 존재해야 한다. 1. 자바는 실행 전에 static 키워드를 가진 모든 것들을 static 메모리 공간에 올린다. 2. 자바를 실행하면 main 메서드 내부를 실행한다. 3. main 메서드가 끝나면 자바프로그램이 종료된다 📌 조금 더 자세히 이해하기 :) Ex.java 파일을 저장 → 컴파일되어(해석되어) → Ex.class 파일로 변경 Ex.class 로드 → JVM이 Ex.class를 가져와서 실행 JVM은 파일 내부에서 static 키워드를 찾아서 static 메모리 공간에 할당(allocate)한다. main 메서드 내부를 실행하면 main 메서드의 stack 공간이 열린다. 메서드가 끝나면 stack 공간도 사라진다. main 메서.. 2023. 2. 8. 자료형 저장 공간의 관리 이해하기 - 과일 창고 💡 창고 설계 과정 과일 장사에 필요한 창고를 설계한다고 가정해보자. 1. 포장 : 과일을 아무렇게나 창고에 넣을 수 없기 때문에 박스 포장해서 두자. (ex. 사과 6개는 박스 2개에 포장. 딸기 10개를 박스 4개에 포장.) 2. 들어올 과일 양 파악 : 모르면 창고가 부족할 수 있어. (ex. 만약 사과 30개, 딸기 100개가 들어온다고 하면 창고는 총 50칸이 필요하게 된다. 현재 나는 20칸을 가지고 있었기 때문에 30칸을 추가로 구매해야 한다는 사실을 알 수 있다.) 3. 최적 창고 칸 파악, 창고 칸 추가 or 제거 함으로써 창고 설계를 마치고 장사를 시작할 수 있다! 자바도 메모리를 설계한 뒤 프로그램을 시작하게 된다. 이 때 자바는 1번 포장 단.. 2023. 2. 8. JVM Architecture : 메모리의 구조, Static, Heap, Stack 메모리의 구조 💡 메모리(Memory) 란? : 컴퓨터에서 정보를 처리하기 위해 일시적으로 정보를 보관하는 기억장치(= 저장장치) 데이터는 메모리에 저장될 때 해당 메모리 공간의 주소를 가지게 된다. 연산이 필요할 때 CPU는 메모리에서 0번지 데이터, 1번지 데이터를 가져온다 연산 후 결과를 메모리에 저장하는 경우 비어있는 메모리 공간을 찾아서 저장한다. 모니터에 출력할 때 메모리에서 7번지 데이터를 가져온다. JVM 메모리 JVM이 .class 파일을 실행시킬 때 메모리(RAM)에 'JVM 영역'과 'OS 영역'을 나누어 사용하게 된다. 또한 JVM은 JVM 영역을 효율적으로 이용하기 위해 Static, Heap, Stack 세 공간으로 구분지어 사용한다. Static, Heap, Stack 📌 St.. 2023. 2. 8. Java Virtual Machine(JVM) Java Virtual Machine(JVM) 💡 JVM이란? : CPU가 JAVA를 인식하고 실행할 수 있게 하는 가상 컴퓨터 💡 JVM으로 생기는 Java의 특징 : OS에 맞는 JDK만 설치하면 어떤 OS에서든 실행할 수 있다 ! (크로스플랫폼) 운영체제 위에 프로그램을 올리고, 그 위에 또 프로그램을 돌리기 때문에 속도가 느리다 JVM의 작동 원리(Java로 작성된 파일의 작동 원리) 1️⃣ Java 언어로 작성된 .java 파일을 javac.exe가 .class로 컴파일 Java Compiler는 JDK를 설치하면 bin에 존재하는 javac.exe 이다. = javac 명령어를 통해 .java를 .class로 컴파일 할 수 있다. 2️⃣ .class 파일을 java.exe로 실행 3️⃣ JVM.. 2023. 2. 6. JDK 환경변수 Path 설정하기 / 환경변수는 왜 설정해야 하는가? 환경변수를 설정하는 이유? 💡 환경변수를 설정하는 이유는? : 실행파일은 해당 경로에서만 실행되기 때문에 어느 폴더에서나 실행파일을 실행할 수 있도록 하기 위해서 설정. ' Window 키 + R ' 을 눌러 실행창 띄운 후 'cmd' 검색 - 명령 프롬프트 실행하면 위와 같은 화면이 나온다. cd 를 이용해 폴더를 설정할 수 있다. dir 또한 확인이 되고 있는 모습이다. 엔터, 스페이스바 다 포함해서 114 바이트라고 한다. 메모장 실행도 잘 된다. 그런데 Java 버전은 확인할 수 없다고 나온다. 메모장이 들어있는 폴더는 이미 환경변수로 설정이 되어 있고 Java 폴더는 환경변수 설정이 되어있지 않기 때문이다. 환경변수 설정을 해보자 ! 환경변수 설정하기 - Path 설정 💡 환경변수 .. 2023. 1. 13. 이전 1 ··· 4 5 6 7 8 다음