본문 바로가기

Java4

[Java | 자바] Java의 메모리 관리 1. 일반적인 메모리 관리 - Java 가비지 플랫폼은 자도으로 사용했던 메모리를 해제하는 가비지 컬렉션(Garbage Collection) 기능을 수행한다. - 프로그래머가 직접 메모리 관리를 하는 경우에 생길 수 있는 문제점 => 할당된 메모리 영역 초과 : Java 언어는 참조현 변수들에 대한 산술 연산을 금지시킴으로써 C언어의 포인터로 인해 발생되었던 메로리 초과 문제를 최소화 => 메모리 부족 : 프로그래머가 크기가 작은 메로리의 생성, 해제를 자주 반복할 경우, 실제 남아 있는 메모리는 충분하지만 연속적인 메로리 공간의 확보가 어렵게 되어 시스템에서 '메모리 부족' 에러가 발생 => 메모리 영역을 벗어남 : 객체를 생성하여 메모리 할당을 받았지만, 이를 해제하는 것에 대해서 고려하지 않은 채 .. 2017. 4. 12.
[Java | 자바] JVM의 메모리 구조 JVM의 메모리 구조 1. 메소드 영역(Method Area)프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class) 을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스 변수 Class variable도 이 영역에 함께 생성된다. 2. 호출 스택(Call Stack 또는 Execution Stack) 호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출 스택에 호출된 메서드를 위한 메모리가 할당되며, 메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간 결과 등을 저장하는 데 사용된다. 그리고 메서드가 작업을 마치게 되면, 할당되었던 메모리 공간은 반.. 2017. 4. 12.
[Java | 자바] 접근제어자 public/protected/default/private *이 글은 https://wikidocs.net/232를 참고하여 작성하였습니다. 접근제어자(Access Modifier) 클래스 내에서 변수나 메소드의 접근을 제한하는 역할을 하는 것을 접근제어자라고 한다.자바에는 4개의 접근제어자(public/protected/default/private)가 있다. 허용범위 public > protected > default > private public 어떠한 클래스가 접근하든 모두 접근이 가능하다.protected 상속받은 클래스 또는 같은 패키지에서만 접근이 가능하다.default 접근제한자가 선언되어 있지 않다면 default이다. 자신 클래스 내부와 같은 패키지 내에서만 접근이 가능하다.private 모든 접근을 허용한다. 어떠한 클래스가 접근을 하든 모두 .. 2015. 7. 12.
객체지향 프로그래밍의 개념과 특징, 그리고 설계원칙 ※ 이 글은 위키백과와 cjmyun.tripod.com, chs02.tistory.com을 참고하여 작성하였습니다. 객체지향 프로그래밍(OOP: Object-Oriented Programming)이란? : 현재 가장 활발하게 쓰이는 컴퓨터 프로그래밍 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. [구성요소] - 클래스(Class) : 같은 종류(또는 문제 해결을 위한)의 집단에 속하는 속성(변수)과 행위(메소드)를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형(user define data type)이라고 할 수 있다. 클래스는 프로그래머가 아니지만 해결해.. 2015. 1. 28.