본문 바로가기

프로그래밍 언어 (プログラミング言語)

toString() 호출에 의한 무한 루프 더보기
Proxy 객체의 equals(),hashCode()는 꼭 [Getter]로 값 비교를 해야 한다~~~~~~~~~~~~~~~!!!!!!!!!!! 더보기
JAVA 정렬 [최종본] 배열 정렬 : 1] Arrays.sort(객체 배열, Collections.reverseOrder()); // 내림차순 2]Arrays.sort(객체 배열, new Comparator(){ @Override public int compare (Integer a, Integer b){ return a-b; } }); EX) public static void main(String[] args) { List a = new ArrayList(); a.add(1); a.add(5); a.add(4); a.add(3); a.add(5); a.add(6); a.add(7); a.add(3); a.add(5); a.add(12); Collections.sort(a, new Comparator() { @Override .. 더보기
equals()와 hashCode()의 오버라이딩은 [자동 완성 기능]을 사용하자 위와 같이 equals()의 오버라이딩은 꽤나 복잡하다. 그래서 강사 왈 " equals()의 오버라이딩은 왠만해서는 자동으로 완성하는 기능을 사용해서 오버라이딩 해라"라고 하심 그리고, equlas()를 오버라이딩할 때, 꼭 hashCode()도 같이 오버라이딩을 해줘야 한다. 왜냐하면, 그래야지만 HashMap과 같안 JAVA Collection을 사용할 때, Hash Function을 효율적으로 사용할 수 있다고 함 (솔직히 이 부분은 나도 잘 파악이 안됨) 더보기
equals()의 default " == " 비교, 즉 같은 인스턴스인가에 대한 비교이다. ( 참조값이 같은지를 비교해버린다) equals()에 대한 overriding을 통해 값을 비교하도록 재정의해야 한다. 더보기
불변 객체(Immutable Object) Immutable Object : 객체 생성 시점 이후에는 절대 값을 변경할 수 없는 객체 How?? 1. 생성자(Constructor)로만 값을 설정 2. 수정자(Setter)를 만들지 않음 -> Wrapper Class, String은 JAVA가 제공하는 대표적인 Immutable Obejct 더보기
레퍼런스 배열과 실제 객체의 메모리 할당 in JAVA 우선 Stack 영역에 변수 name이 할당되고, 그 안에 heap 내의 레퍼런스 배열의 시작 주소가 담겨 있다. 이때, 유념해야 할 것이 있다. 배열이란 본래, 같은 타입의 [연속적인] 메모리 공간이다. 고로, 배열의 메모리 상의 위치가 연속적으로 할당이 될 것 같이 생각을 한다. 반은 맞고 반은 틀리다. Heap 내의 [레퍼런스 배열]에 대해서는 물리적으로 연속적으로 위치하지만, 실제 String 객체는 java를 비롯한 대부분의 High Level Language는 위 그림과 같이 heap내에서 연속적이 아니라 띄엄 띄엄 위치해 있다. 더보기
Collectino Framework Hierarchy in JAVA(컬렉션 계층도) 자바에서의 자료구조 유형은 다음과 같다. ① 순서가 있는 목록인 List형 ② 순서가 중요하지 않은 목록인 Set형 ③ 먼저 들어온 것이 먼저 나가는 Queue형 ④ KEY-VALUE의 형태로 저장되는 Map형 더보기