[Java] final,finally,finalize 차이점
1. Final 변수나 참조에 적용 가능하다. -변수인 경우, 값 변경이, 참조에 적용하면 다른 객체를 가르키는것이 불가하다 -메서드에 적용하면, 해당 메서드를 상속 받는 하위 클래스에서 오버라이딩이 불가하다.(사용은 가능하나, 변경은 불가 ) -클래스에 적용하면, 해당 클래스를 다른 클래스가 상속 받을 수 없다. 즉, final 클래스의 하위 클래스를 정의 할 수 없다. 2. Finally Finally는 try-catch 블록 뒤에 둘 수 있는 선택적인 블록인데, try-catch 문이 끝나기 전에 항상 꼭 실행되어야 하는 로직이 있을 경우 finally 절에 두면된다. 예외가 던져지더라도, 항상 실행될 코드를 지정하기 위해 사용된다. finally 블록은 try와 catch 블록이 전부 실행된 후,..
[Java] String, String Builder, StringBuffer
1. String String은 불변 객체이다. 한번 값이 할당되면, 변하지 않고, 메모리를 추가적으로 점유하게 된다. 해당 String 변수에 대한 값을 변경한다고 다른 값을 넣게되면, 기본타입이 아니기때문에 값이 변경되는 것이 아니고, 참조하고있는 데이터의 주소가 달라질뿐 기존 가리키는 주소가 삭제되거나 변경되는 것은 아니다. 2.StringBuilder StringBuilder와 StringBuffer는 우선 String 과 다르게, append나 delete등 api를 사용하여, 동일 객체 내에서 문자열을 변경하는 것이 가능하게 해준다. 즉, 신규 객체를 생성하는 것이 아니고, 기존 객체의 값을 변경할수 있게 해준다. 따라서 문자열 연산이 빈번하게 발생된다면, 해당 두가지를 쓰는 것이 좋다. St..
[Java] Primitive Type vs Reference type
1. Primitive Type 예) byte, char, short, int, long, float, double, boolean. - 기본형 변수는 참조하지않고, 할당될때 메모리를 검사한다. 또한 실제값을 저장한다 - ==가능 -저장 공간 : 스택 - Null 불가 -범위 이상이면, 컴파일 에러가 발생 -null 사용하려면 Wrapper 클래스 사용 필요 2. Reference type - 참조형은 , Primitive 타입을 제외한 모든 타입을 얘기하며, 해당 값이 아닌, 주소값을 가르킵니다. - Class/Interface/array//Enumeration - == 불가, equals 나 compareTo를 사용필요 -저장 공간 : 힙 -Null 일부 가능 -런타임 에러 발생