2021.06.08
JAVA - 12 에서 공부했던 내용을 다시 알아보고자 한다.
생성자 함수를 통해서 받은 매개변수값들을 출력을 하고 싶다면 toString을 오버라이딩 해주면 된다.
재정의 하여 두 인스턴스가 논리적으로 동일함을 구현할떄에는
equals() 메서드를 활용
--> 같은 학번, 같은사번, 같은 아이디 등등
heap메모리에 저장된 주소값을 hashcode라고 한다.
-> 나중에 배울것이지만 hash(key) = index
--> hash값에 key를 넣고 index를 반환받는 java의 저장 방식
equals를 오버라이딩 하면 hashcode도 오버라이딩 해주어야 한다
clone같은 경우에는 따로 생성을 하는것이 아니라 상태를 그대로 복제를 하여 리턴해준다.
-> 복제 대상의 값이 바뀌게 되면 clone도 같이 바뀌게 된다.
String 같은 경우에는 연결되는 것이 아니라 새로운 문자열이 생성된다(메모리 낭비 발생가능)
String java = new String("java");
String android = new String("android");
java = java.concat(android);
// java에 이어진 String이 아니라 완전 새로운 객체가 만들어짐
// java에 데이터메모리가 붙여지는것이 아니다.
// 실제로 hashcode를 보면 주소값이 다르다.
// 좋은방법이 아니기 떄문에 StringBuilder, StringBuffer을 활용해야 한다.
String java = new String("java");
String android = new String("android");
StringBuilder buffer = new StringBuilder(java);
buffer.append(android);
// buffer에 android를 붙여주는것
String test = buffer.toString();
// buffer값을 반환
System.out.println(test);
// 새로운 메모리가 아니라 값이 변하는것이기 떄문에 주소값이 동일하다.
forName(String classname) : 변수에 해당하는 것을 동적 로딩을 해준다.
: 종종 사용한다.
======== 느낀점 ========
패스트 캠퍼스를 통해서 공부하는 java는 잠시 멈춰보려고 한다.
일단 이번 챕터가 이해가 안되는 부분이 많아서 기본부터 다시 천천히 복습해보고자 한다.
복습은 programmer의 자바 입문, 자바 중급, 자바 플레이그라운드를 통해서 정말 완벽하게 기초를 쌓고 나아가고자 한다.
그러기 떄문에 JAVA라는 태그를 가진 글은 일단 잠시 멈추고 새로운 글을 작성할 예정이다.