[자바] 구조적 프로그래밍
동일한 프로그램이지만 방법을 달리 만들 수 있다.
프로그래밍은 절차이다.
함수 가지는 능력: 코드를 잘라낼 수 있다.
1 함수들하고 공유되지 않을 전역변수는 불필요 하다.
2 공유되지 않을 전역 변수를 지역화 하는게 부품화 하는데 용이하다
구조체 배열
구조체 : 데이터를 구조화 함 자바에서는 클래스 자체가 데이터 구조화 하는거 뿐 아니라 함수까지 포함하는거로서 데이터 구조화 했다고 하기도 한다.
가변길이 구조체
자바에서 주소라는 걸 잘 쓰지 않는다.
기본 자료형 쓸거면 임시변수로 쓰거나 제어변수로 쓰는거지 관리되는 경우로 쓰는 경우가 거의 없다.
연습문제
함수 오버로딩
- 같은 기능하지만 다른 인자 가지는 함수 추가
두번 구현할 필요가 없다. 하나만 구현해도 위를 카버 가능하다.
오버해서 로드하는 방식이라고 함수 오버로드라 한다. 엌
클래스 함수 호출과 스택
프로그램 실행 될 때 메인함수가 실행될 떄 준비하고 한가지 알아야 할 것이 메모리에 올라가는 코드는 컴파일 된 결과인 이진코드가 올라간 다.
이걸 메모리에 올라간 걸 프로세스라 한다.
프로그램은 main함수 4부분은 데이터 영역인 스택 부분에 미리 준비되어야한다.
보라색은 참조변수, 녹색은 값이다.
1,2,3 을 통해 힙에 공간이 생긴다.
그럼 힙 부분에 4에서 초기화가 되고 5 연산이 진행되면 참조변수가 힙을 가리키게 된다.
그 다음 연산은 input으로 함수 호출하게 된다.
함수 호출되면 위에 쌓이고 사라지면 내려가는 이런식으로 메모리가 사용되고 이 공간이 스택이다.
자바는 런타임 환경에 의해 참조되지 않는 객체가 힙에 있으면 메모리 누수가 일어남으로 자바환경에서 알아서 지워준다.