본문 바로가기

Java18

가비지와 가비지 컬렉션 가비지와 가비지 컬렉션 가비지(Garbage) - 응용프로그램에서 더 이상 사용되지 않는 메모리(무효 영역)- new 연산자를 이용하여 시스템으로부터 할당 받아 사용되어오다가 더 이상 사용하지 않는 객체나 배열 메모리가 가비지에 해당- 더 이상 사용하지 않는다는 것은 객체나 배열을 가리키는 레퍼런스가 하나도 없음을 의미 가비지 컬렉션(Garbage Collection) - 가비지를 회수하여 가용 메모리 공간을 늘리는 것을 의미- 가비지 컬렉터(자바 가상 기계에 존재)가 수행- 가상 기계의 내부적인 알고리즘의 판단에 의해 수행되기 때문에 언제 가비지 컬렉션이 발생하는지 알기 어려움- System.gc() or Runtime.getRuntime().gc() 메소드를 통해 강제로 수행 가능- 메소드 실행시 바.. 2015. 7. 31.
string vs stringBuilder vs stringBuffer string - 계속 값을 더해가는 경우 새로운 String 클래스가 만들어진다.stringBuilder, stringBuffer - 새로운 객체를 생성시키지 않고 기존 객체의 크기를 증가시킴. stringBuilder vs stringBuffer - 동기화 지원 여부stringBuffer - 스레드에 안전하게 설계, 여러 개의 스레드에서 하나의 stringBuffer 객체를 처리해도 문제되지 않는다.stringBuilder - 단일 스레드에서의 안전성만을 보장, 여러 개의 스레드에서 하나의 stringBuilder 객체를 처리하면 문제가 발생. 2015. 6. 7.
배열 vs 벡터 배열과 벡터 배열- 크기보다 많은 구성요소를 추가할 수 없다. 벡터- 현재 담을 수 있는 크기보다 많은 원소들이 추가 될 경우 동적으로 자신의 크기를 증가시킨다. 2015. 6. 7.
오버로딩 vs 오버라이딩 오버로딩 vs 오버라이딩 오버로딩- 상속받지 않아도 가능. 같은 클래스 내에서 메소드 이름은 같게, 매개변수는 다르게 정의 하는것. 오버라이딩- 상속을 기반으로 한다. 부모로부터 상속받은 메소드 중 특정 메소드를 수정, 추가하여 재정의하는 기법. return 타입, 메소드 이름, 매개변수 리스트는 부모 메소드와 같게 정의. 2015. 6. 7.
Reflection Reflection 객체를 통해 클래스 정보를 분석하는 것을 의미한다. 보통 어떤 메소드가 클래스에 정의되어 있는지 알아내기 위해 사용. 2015. 6. 7.
Inner Class Inner Class 클래스 내에 선언된 클래스를 의미, 두 클래스가 서로 긴밀한 관계일 때 사용한다.두 클래스 간에 서로 쉽게 접근할 수 있다는 장점과 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다. 특별히 공유되어야 할 클래스가 아닌 경우에는 내부 클래스를 활용하는 것도 좋을 듯하다. 2015. 6. 7.
728x90