[2020.11.05.목] TIL

노을·2020년 11월 10일
0

TIL

목록 보기
4/81

👨‍💻 오늘 배운 것

  • 매직 넘버 X
    - int health = 100 (X)
    - final 상수 사용할 것
  • 자바 배열은 0으로 자동 초기화
  • 잘못된 지식) 클래스와 객체는 붕어빵틀과 붕어빵 관계 (X)
    • class Player 와 Player1,Player2 각 객체들
    • Player1=Player2=Player 이지만
    • 붕어빵 틀 != 붕어빵
  • Java의 경우 함수에 전달되는 인자의 데이터 타입에 따라서 함수 호출 방식이 달라진다.
  • 자바의 변수 타입
    • Primitive Type(원시 자료형)
      • int, double, float, Boolean, char 과 같은 일반형
      • Call by Value로 동작
    • Reference Type(참조 자료형)
      • String, Array, Class ..
      • Call by Reference로 동작
  • Call by Value
    • 함수 호출시 메모리 임시 공간 생성 및 종료시 삭제
    • 함수 호출시 전달되는 변수 값을 복사하여 함수의 인자로 전달
    • 복사된 함수는 지역변수 특성을 가짐.
  • Call by Reference
    • 함수 호출시 메모리 임시 공간 생성 및 종료시 삭제
    • 함수 호출시 전달되는 변수가 가리키는 주소(레퍼런스)를 함수의 인자로 전달
    • 함수 안에서 인자의 값이 변경되면, Argument로 전달된 객체의 값도 변경.
  • Call by Value와 Call by Reference 차이점
    • 함수 안에서 인자값이 변경됬을때 영향도
  • 프로세스
    - 실행중인 프로그램
    - 자기만의 메모리 공간을 가짐.
  • 메모리 영역 (간략화)
    - 코드 : 기계어 또는 바이트코드
    - 데이터 : (중요*)정적변수 (static)
    - 스택 : 함수, 지역변수
    - 힙 : 객체
  • 자바는 무조건 메인 메소드에서 시작
  • 스택은 함수가 끝나는 순간 메모리에서 사라짐,
  • 자바에서 new라는 것은 힙 메모리를 쓰겠다는 것.
    		Player p = new Player[];
      p: 지역변수이자 참조변수로 Player 객체를 가리키고 있음.
  • Static 변수
    • 클래스 인스턴스화를 안해도 사용 가능함.
    • 쿨래스를 아무리 많이 만들어도 하나만 생성됨.
    • 멤버변수 = 인스턴스 변수 + 클래스 변수
  • 데이터 영역, 스택 영역을 많이쓰면 StackOverflow
  • 가비지 컬렉션(gc)
    • 힙 영역에서 동작

👀 느낀점

static 변수가 객체를 안만들어도 사용할 수 있고 클래스를 많이 생성해도 하나라는 것은 처음 알았다. 또 간략하지만 데이터 영역을 배웠는데 잘 몰랐던 개념이라 좀 더 시간내서 공부 해야할 거 같다.

📆 앞으로 할일

  • 비교 대상은 어제의 나
profile
카르페디엠

0개의 댓글