본문 바로가기

프로그래밍/Java11

JAVA의 변수(필드) 종류 - 클래스 변수, 인스턴스 변수, 지역 변수 public class test { int num; // 인스턴스 변수 static int numTest; // 클래스 변수 public void testM(){ int numM; // 지역변수 } } #인스턴스 변수 인스턴스가 생성되고나서 인스턴스 변수가 생성됨. 여러 인스턴스(객체)가 있다면 인스턴스 변수는 각 객체마다 가지고 있다( 클래스 변수와 다름 ) #클래스 변수 인스턴스 변수 앞에 static 만 붙여주면 됨. 인스턴스 변수와 달리 모든 인스턴스가 해당 변수의 값을 가지게 됨. 클래스가 로딩될 때 생성되어 딱 한 번만 메모리에 올라간다. 그래서 인스턴스를 생성할 필요가 없으므로 클래스명.클래스변수로 접근 가능하다. #지역 변수 메소드 내에서 선언되어 메소드가 끝나면 소멸된다. 2019. 9. 18.
스택과 힙 ( + 가비지 컬렉션 ) 자바를 쓸 때 두 가지 메모리 공간을 다룬다. #힙 - 객체가 사는곳 크기가 정해져 있지 않음. 객체, 배열, 인터페이스 등의 크기가 정해져있지 않은 값들을 주소형식으로 메모리에 저장. 참조하는 변수가 없다면 자동으로 힙 영역에서 제거된다. 몇 개의 스레드가 존재하던 단 1개의 heap 영역만 존재한다. #스택 - 메소드 호출과 지역변수가 살아가는 곳 기본형 변수처럼 크기가 정해지는 실제값을 저장한다. 메소드 작업이 종료되면 메모리 공간이 비워지며 반환된다. 스레드마다 stack이 존재한다. #가비지 컬렉션 힙 영역의 올려진 데이터가 있는데, 스택 영역에서 해당 힙 영역의 참조주소를 잃어버리면 힙 영역의 올려진 데이터는 쓰레기 값이 되어 가바지 컬렉션이 정리해버린다. 2019. 9. 18.
클래스, 인스턴스, 객체 간단 정리 #1 클래스 객체를 구현하기 위한 설계도. 건축물의 설계도... #2 인스턴스 소프트웨어 세계에 구현된 실체. 실제 구현하려고 하는 객체 같은 것을 소프트웨어 세상에 구현한 것. #3 객체 소프트웨어 세계에 구현할 대상. 인스턴스도 포함되며 추상적인 인스턴스의 개념. 객체가 코딩이되어 만들어지면 인스턴스가 됨. 2019. 9. 9.