총 정리를 계속 수정 보완 추가 하여 포스팅 할 예정 완성된 자바 정리본을 만들자!! 😊
stack은 == 로 비교하고
해시코드는 equals로 비교
== 은 별로 안좋음
new 하면 hashcode
원래 hashcode는 전부 다 다르다!
참조 타입은 다 다르다 new 하면 다 다름!
BUT String만 내용이 같으면 hashcode가 같음!!
new 안하면 래퍼런스도 같음! new 쓰면 래퍼런스는 다름
그래서 주의할 것이 string은 == 쓰지 마라!
equals 써라!
2. Type
기본타입
B S I L F D boolean char
스택에 저장됨
참조타입
주소값(참조값)을 저장, 객체를 참조
Heap에 객체 저장되고 스택에 참조 변수가 저장됨
Copy by Value vs Copy by Reference
Copy by Value
기본 타입은 값 자체를 복사.
새로운 변수에 복사해도 원본 값에 영향을 미치지 않음.
int a = 10;
int b = a; // 값 복사
b = 20; // a는 변하지 않음
Copy by Reference
참조 타입은 주소 값을 복사.
새로운 참조 변수를 통해 원본 객체를 변경 가능.
int[] arr1 = {1, 2, 3};
int[] arr2 = arr1; // 주소 복사
arr2[0] = 10; // arr1[0]도 10으로 변경됨
String s1 = "hello";
String s2 = s1; // 주소 복사
s1 = "world"; // 새로운 문자열 생성
System.out.println(s2); // 여전히 "hello"
String은 참조타입
Copy by value, deep copy
concatnation이 있는데 값을 버린다 메모리 낭비 심함
VS StringBuilder 는
Copy by reference, shalow copy
OOP => A PIE
Inheritance
부모것은 내것, extends, extends object
cf) private, 생성자 (비자금, 이름)
Object 메모리 관리
4대 메소드
getClass, toString, hashCode, equals
메특
자생부생 자식이 생성되면 위로 부모도 다 생성됨 Heap
자설부설 자식의 설계도가 올라가면 부모 설계도도 올라감 Static
생주부주 생성된 주소는 부모의 주소다 (부모님하고 같이 사니깐 부모 주소로 놀러감)
설공메사 설계도에 공개되면 메소드를 다 사용가능 하다
다형성
부타자생 부모의 타입으로 자식을 생성하면
부타자참 부모의 타입으로 자식을 참조하면
부메자호 부모의 메서드로 자식을 호출할 수 있게 함 (override)
final
더 이상 자식이 없어
메소드에다가 하면 Overriding 금지!
배열
같은 타입의 나열
참조타입 null , 기본타입 0
int [] a = {1,2,3};
int [] b = new int[3];
b[0] = 1;
int [] c = new int[]{1,2,3};
int [] d = a;
Integer aa = 10;
int ab = aa;
JAVA에서는 실수 연산에서 변수는 int 형으로 연산됨 byte쓴다고 메모리 안아껴짐
static
가장 바깥에 있는 class 는 static class 없다
생성 없이 쓰자! 클래스 이름으로 변수 써야 한다! 영역은 static 영역에
스 -> 논스 못부름 / 논스 -> 스 부를 수 있음
static 끼리 overriding 없음 overloding 만 있음
의존
동그라미 - 인터페이스, 라인 글러브 - implements
extends
클래스와 클래스를 물려받겠다.
모든 클래스는 Object를 extends한다(생략되어있음)
abstract
반드시 자식에서 구현해야한다는 의미를 명시적으로 표시
오버로딩
같은 역할! 인데 변수로 구분하여 편의성
오버라이딩
상속하면서 아버지 성격을 완전히 엎을 때
heap에서만 일어남
접근 제한자 기존 public , private , default, protected
package 물리적 묶음 단위, 소문자 다르면, 다른 클래스, import 해야하지만 안해도 되는 java.lang , Object String Wrapper
arrays
abstraction 추상화
polymorphism
제네릭
encapsulation
solid
Singleton 디자인패턴
2차 정리 하는데 양이 좀 되네;; 좀 더 학습하면서 내용들을 추가하면서 흐름을 이해합니다!! 😭