자바 총 정리 2탄

한강섭·2025년 1월 23일
1

JAVA

목록 보기
2/2
post-thumbnail

총 정리를 계속 수정 보완 추가 하여 포스팅 할 예정 완성된 자바 정리본을 만들자!! 😊

Java 총 정리 👍

  1. 메모리 구조

    Fish f = new Fish();
    static stack Heap

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은 참조 타입이지만 Copy by Value처럼 작동. 문자열 변경 시, 기존 객체를 수정하지 않고 새로운 문자열 객체를 생성함.
String s1 = "hello";
String s2 = s1; // 주소 복사
s1 = "world";   // 새로운 문자열 생성
System.out.println(s2); // 여전히 "hello"
  1. String은 참조타입
    Copy by value, deep copy
    concatnation이 있는데 값을 버린다 메모리 낭비 심함
    VS StringBuilder 는
    Copy by reference, shalow copy

  2. OOP => A PIE

  3. Inheritance
    부모것은 내것, extends, extends object
    cf) private, 생성자 (비자금, 이름)

  4. Object 메모리 관리
    4대 메소드
    getClass, toString, hashCode, equals

  5. 메특
    자생부생 자식이 생성되면 위로 부모도 다 생성됨 Heap
    자설부설 자식의 설계도가 올라가면 부모 설계도도 올라감 Static
    생주부주 생성된 주소는 부모의 주소다 (부모님하고 같이 사니깐 부모 주소로 놀러감)
    설공메사 설계도에 공개되면 메소드를 다 사용가능 하다

  6. 다형성
    부타자생 부모의 타입으로 자식을 생성하면
    부타자참 부모의 타입으로 자식을 참조하면
    부메자호 부모의 메서드로 자식을 호출할 수 있게 함 (override)

  7. final
    더 이상 자식이 없어
    메소드에다가 하면 Overriding 금지!

  8. 배열
    같은 타입의 나열
    참조타입 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;
  1. Wrapper Class
    b s i l f d boolean char
    Byte Sort Integer Long Float Double Boolean Character
Integer aa = 10;
int ab = aa;

JAVA에서는 실수 연산에서 변수는 int 형으로 연산됨 byte쓴다고 메모리 안아껴짐

  1. static
    가장 바깥에 있는 class 는 static class 없다
    생성 없이 쓰자! 클래스 이름으로 변수 써야 한다! 영역은 static 영역에
    스 -> 논스 못부름 / 논스 -> 스 부를 수 있음
    static 끼리 overriding 없음 overloding 만 있음

  2. 의존
    동그라미 - 인터페이스, 라인 글러브 - implements

  3. extends
    클래스와 클래스를 물려받겠다.
    모든 클래스는 Object를 extends한다(생략되어있음)

  4. abstract
    반드시 자식에서 구현해야한다는 의미를 명시적으로 표시

  5. 오버로딩
    같은 역할! 인데 변수로 구분하여 편의성

  6. 오버라이딩
    상속하면서 아버지 성격을 완전히 엎을 때
    heap에서만 일어남

  7. 접근 제한자 기존 public , private , default, protected

  8. package 물리적 묶음 단위, 소문자 다르면, 다른 클래스, import 해야하지만 안해도 되는 java.lang , Object String Wrapper

  9. arrays

  10. abstraction 추상화

  11. polymorphism

  12. 제네릭

  13. encapsulation

  14. solid

  15. Singleton 디자인패턴

2차 정리 하는데 양이 좀 되네;; 좀 더 학습하면서 내용들을 추가하면서 흐름을 이해합니다!! 😭

profile
2025년 1년동안 기록

0개의 댓글

관련 채용 정보