본문 바로가기

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

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형 더보기
JAVA에서의 Lamda ( = call back or call - after - function ) 자바 언어에서 콜백 자바 언어에서 실행 가능한 코드를 인수로 넘기려면 [객체]가 필요하다. 자바8부터는 람다를 사용할 수 있다. 자바 8 이전에는 보통 하나의 메소드를 가진 인터페이스를 구현하고, 주로 익명 내부 클래스를 사용했다. 최근에는 주로 람다를 사용한다. 즉, 람다라는 실행 가능한 코드는 인수로 넘어 갈때, 객체의 형태로 넘어가서 뒤(back)에서 호출이 된다. 더보기