Java11 메모리 영역 메모리 영역 코드 영역 데이터 영역 스택 영역 힙 영역 JAVA로 작성된 프로그램은 JVM이 이해할 수 있도록 .class 파일 형태로 컴파일돼 파일에 저장된다. 코드 영역은 실제 파일 내의 프로그램에 대한 전체적인 코드 자체가 올라가는 영역이다. 정적 변수는 프로그램이 실행되는 동안 항상 접근할 수 있는 변수이다. 데이터 영역은 정적 변수가 저장되는 메모리 영역이다. 지역 변수는 메소드 내에서 선언된 변수이다. 스택 영역은 지역 변수가 저장되는 메모리 영역이다. 힙 영역은 자바에서 'new'를 통해 생성되는 객체가 저장되는 메모리 영역이다. 동적으로 할당되는 메모리 공간이다. 힙 영역은 코드, 데이터, 스택 영역을 할당하고 남은 공간이다. 동적 할당은 어느 시점에 어느 정도의 공간으로 할당될지 정확하게.. 2022. 3. 30. 클래스, 변수, 메소드 프로그래밍에서 객체를 어떻게 생성할까? 클래스를 사용해 객체를 찍어낸다. 객체 생성 이때, String은 클래스이고 str은 객체 참조자이다. str에는 주소 값이 들어있고, 이 주소 값을 따라가면 String으로 생성된 객체가 있다. 클래스 이름은 식별자 명명 규칙을 따른다. 식별자 명명(네이밍) 규칙 문자, 숫자, 특수문자(_, $)만 사용 가능 첫 문자는 문자나 특수문자만 가능(숫자 불가능) 자바 예약어 사용 불가능 대소문자를 구분함 공백 포함X, 길이 제한X *클래스의 이름은 대문자로 명시한다(관례) 클래스 선언 위에서는 자바 lang패키지에 이미 존재하는 String클래스를 통해 객체를 생성했다. public class MyClass { } MyClass라는 새로운 클래스를 선언하는 코드이다. .. 2022. 3. 30. 객체 지향 프로그래밍이란? 객체 지향 프로그래밍은 컴퓨터 프로그램을 객체의 모임으로 간주하는 것이다. 절차 지향 프로그래밍이란 컴퓨터 프로그램을 명령어의 목록으로 보는 것이다. 대표적인 절차 지향 언어는 C언어이다. 객체 지향 언어의 장점 절차 지향 언어에 비해 코드의 재사용이 비교적 용이 쉬운 코딩 유지보수 및 업그레이드 원활 쉬운 디버깅 분석과 설계의 전환이 쉬움 대형 프로젝트에 적합 객체 실제 세계에는 다양한 객체들이 있다. 학생, 강의실처럼 눈에 보이는 객체(물리적으로 존재)와 강좌, 수강과 같은 추상적인 개념의 객체(논리적으로 존재)도 존재한다. 실제 세계는 객체로 구성돼있지만 컴퓨터 상의 프로그램은 바이너리로 구성돼있다. 프로그래밍 언어가 중간에서 이를 도와주는 것이다. 프로그래밍 언어는 절차 지향 언어에서 객체 지향 .. 2022. 3. 30. 다차원 배열 사용자로부터 값을 입력받아서 5층 빌라의 세대주를 저장하는 String형 배열을 만들어보자. 한 층에는 한 집만 있다고 가정한다. String apartment = new String[5]으로 5개의 문자열 데이터를 저장할 수 있는 배열을 생성했다. 만약 한 층 당 집이 2채 있다면 new String[10]으로 10개의 문자열 데이터를 저장할 수 있는 배열을 생성하고 순서대로 세대주를 저장할 수도 있다. 하지만 이차원 배열을 생성하면 이를 더 효율적으로 저장할 수 있다. new String[5][2]를 5행 2열이라고 생각하면 쉽게 이해할 수 있을 것이다. 이차원 배열도 일차원 배열과 같이 배열을 생성하면서 초기화할 수 있다. String[][] householders = new String[3][5].. 2022. 3. 29. 이전 1 2 3 다음