[자바] 구조적 프로그래밍

동일한 프로그램이지만 방법을 달리 만들 수 있다.

20210623_130922

프로그래밍은 절차이다.

함수 가지는 능력: 코드를 잘라낼 수 있다.

20210623_131736

1 함수들하고 공유되지 않을 전역변수는 불필요 하다.

2 공유되지 않을 전역 변수를 지역화 하는게 부품화 하는데 용이하다


구조체 배열

구조체 : 데이터를 구조화 함 자바에서는 클래스 자체가 데이터 구조화 하는거 뿐 아니라 함수까지 포함하는거로서 데이터 구조화 했다고 하기도 한다.

20210623_150902


가변길이 구조체

자바에서 주소라는 걸 잘 쓰지 않는다.

기본 자료형 쓸거면 임시변수로 쓰거나 제어변수로 쓰는거지 관리되는 경우로 쓰는 경우가 거의 없다.

20210623_155501

20210623_160604

20210623_160618

연습문제

20210623_160639


함수 오버로딩

  • 같은 기능하지만 다른 인자 가지는 함수 추가

두번 구현할 필요가 없다. 하나만 구현해도 위를 카버 가능하다.

20210623_161840

오버해서 로드하는 방식이라고 함수 오버로드라 한다. 엌


클래스 함수 호출과 스택

프로그램 실행 될 때 메인함수가 실행될 떄 준비하고 한가지 알아야 할 것이 메모리에 올라가는 코드는 컴파일 된 결과인 이진코드가 올라간 다.

이걸 메모리에 올라간 걸 프로세스라 한다.

20210623_164113

프로그램은 main함수 4부분은 데이터 영역인 스택 부분에 미리 준비되어야한다.

보라색은 참조변수, 녹색은 값이다.

1,2,3 을 통해 힙에 공간이 생긴다.

그럼 힙 부분에 4에서 초기화가 되고 5 연산이 진행되면 참조변수가 힙을 가리키게 된다.

그 다음 연산은 input으로 함수 호출하게 된다.

20210623_165105

함수 호출되면 위에 쌓이고 사라지면 내려가는 이런식으로 메모리가 사용되고 이 공간이 스택이다.


자바는 런타임 환경에 의해 참조되지 않는 객체가 힙에 있으면 메모리 누수가 일어남으로 자바환경에서 알아서 지워준다.





© 2021.03. by yacho

Powered by github