코딩/2-JAVA

B0305주소공유_개념 ~ B0306리턴변수_개념

tree0505 2025. 4. 9. 12:10
반응형
  • 주소공유 개념 
  • 메서드 주소공유의 핵심 
    • 변수는 값이 안 바뀜
    • 배열은 바뀜 

B0305개념01_함수와변수
변수는 바뀌지 않는다.


  • 배열은 주소공유 개념이다. 
  • 변수의 대 원칙
    • 1개에 1개만 저장 가능하다. 

변수는 1개에 1개만 저장 가능
B0305개념02_배열의주소공유

  • int[] arr = new int[3]
  • int[] arr = {1,2,3}; //변수가 4개이다. 
  • 위의 2개는 같은 말이다. 
  • new는 힙에 있다. 2번째 칸 e
  • = new  => 주소가 저장이 된다. 
  • 1번째 메모리는 머리
  • 2번째 힙은 몸통 
    • 즉 몸통에 =new는 주소가 저장 
    • = 값이 저장 
    • = new는 주소가 저장이 된다. 
  • 변수가 5개라는 사실 
  • 얕은 복사 / 깊은 복사
    • 용어에 심취하면 안된다.
    • 용어는 기술을 만들고 이름을 같다 붙인것 

  • 함수 메서드에서 깊은 복사를 하게 되면. 불필요하게 메모리를 많이 쓰게 된다.
    • 모두 앝은 복사로 데이터를 옮기게 되어 있다.
  • jsp 파일이 많다.
    • session 계속 꺼내 쓴다
    • 데이터를 낭비함 
    • 그래서 얕은 복사로 꺼낸다.
  • 실제로는 배열 한개만 만들고  
    • 배열은 2번째 힙에 몸통에 저장되어있고
    • 배렬은 주소. 즉 머리에 대한 주소가 있으니 
    • 머리에서만 꺼내는 거다. 
  • 원리만 알면 된다.
    • 배열은 바뀐다.
    • 변수는 바뀌지 않는다. 
  • 주소 공유
    • 함수에 들어가서 바뀐게
    • 즉 배열이 바뀐게 주소 공유이다. 

B0305개념03_함수와배열



  • 리턴변수 개념 
    • 리턴은 함수를 강제 종료 시킨다. 

B0306개념01_리턴


  • 변수의 값을 바꾸고 싶은데 어떻게 하냐. 
    • 리턴을 사용하면 된다.
  • 리턴이 2가지 역할
    • 함수를 끝내는 역할
    • 되돌려 주는 역할 
  • 지금까지는 실행하고 끝났다. 
  • 결과물을 밑에다가 전달하고 싶으면 리턴을 사용하면 된다. 

B0306개념02_변수수정해결법



 

B0306개념03_리턴제곱

  • 함수할때 하는 얘기
    • 함수는 어떤 기준으로 만드나요
    • 못 만든다. 학생은 그냥 있는 예제만 외워도 충분하다.
    • 만드는 기준 : 그냥 이름을 지을 수 있으면 만드는 것
    • 제대로 된 프로그램을 만들어야 함수가 필요한 것  


B0306개념04_리턴문자열


  • 주소공유 문제 

B0305문제01

  • 주소공유가 어디서 되나
    • 토탈이 바뀌는 거다.
    • solution (student,total)
      • 이게 함수에 들어가서
      • total은 원래 0 0 0 이었는데
      • total 배열이 바뀌는 것 

B0305문제02


  • 리턴 변수 문제 

B0306개념연습01.java
B0306개념연습02.java


  • 리턴 사용하는 이유
    • 그냥 코드 간결하게 할려고
    • 리턴을 사용하지 않았을때는 위에서만 출력할 수 있었다.
    • 리턴을 사용하면. 밑에서도 출력이 가능하다. 

B0306문제01
B0306문제01



  • 리턴을 사용하지 않았을때. 

리턴을 사용하지 않았을때

반응형