객체 지향 프로그래밍 23

메모리 구조 - 스태틱, 스택, 힙 영역

코드 영역과 데이터 영역 메모리 공간은 코드 영역과 데이터 영역으로 분리됨 Static, Stack, Heap 영역 데이터 영역은 다시 Static, Stack, Heap영역으로 분리됨 Static 영역은 클래스가 저장되는 공간 클래스 멤버 변수가 할당되며 JVM이 종료될때까지 존재한다. Stack 영역은 메소드가 저장되는 공간 메소드로 넘겨 받은 매개변수, 메소드 안의 지역변수가 할당된다. Stack Frame이 소멸 시 지역 변수도 같이 소멸된다. Heap 영역은 객체가 저장되는 공간 객체 멤버 변수가 할당된다. 객체는 사용되지 않을 경우 가비지 컬렉터에 의해 소멸된다. 객체 소멸시 Heap에 저장된 객체 멤버 변수도 같이 소멸된다. 자바 코드 실행 과정 자바 실행 환경이 프로그램의 main() 메서..

[재귀] Recursion - Python

재귀 사용하기 1. Factorial 구하기 - Factorial(5) = 1*2*3*4*5 - Factorial을 for문과 재귀로 구현 def factorial(n): res = 1 for i in range(1,n+1): res = res*i return res print(factorial(10)) # 재귀로 구현하기 def factorial(n): if n == 1: return 1 else: return n*factorial(n-1) print(factorial(3)) print(factorial(5)) print(factorial(10)) 2. 최대공약수 구하기 - 두 수 a,b 중 작은 것으로 나누어 떨어지면 그 수가 최대공약수 - 나누어 떨어지지 않으면 작은 수를 1씩 감소시킨 값으로 a,..

[파이썬 기초] - List, Set (Python)

파이썬 기초 자료구조와 알고리즘 1. 1부터 n까지의 연속한 숫자의 합을 구하는 알고리즘 방법 1. def sum_n(n): sum = 0 for i in range(1, n+1): sum = sum + i return sum print(sum_n(10)) 방법 2. def sum_n(n): return n*(n+1)/2 print(sum_n(10)) 2. 최대값 구하는 알고리즘 : List 자료구조 - len(a), append(x), insert(i,x), pop(i), clear(), x in a def find_max(list_): max = -2147000000 for data in list_: if max < data: max = data return max list_ = [10, 5, 8, ..