정적(static)
- 한 번 정해놓으면 변하지 않고 계속 유지되는 성질
정적할당
- 대체로 Stack 영역에 메모리를 할당
정적언어
- 변수의 Type을 컴파일 시에 결정하는 것
- Java, Kotlin, C 등의 언어
- 변수에 넣을 데이터에 따라 자료형을 지정해주어야 함
- 장점
- 실행 시점에 어떤 메서드를 호출할지 알아내는 과정 필요 없이 메서드 호출이 빠름
- 컴파일러가 프로그램 정확성을 검증하기 때문에 실행 프로그램이 오류로 중단될 가능성이 적음
- 유지보수 쉬움
- 단점
- Type 설정을 해줘야 함
동적(dynamic)
- 실시간으로 상황에 따라 변경이 가능한 것
- ArrayList나 객체 즉, 동적 메모리 Heap에 생성되는 것들
동적할당
- Heap 영역에 메모리를 할당
동적언어
- 변수의 Type을 컴파일 실행 시에 결정
- JavaScript, Python 등의 언어
- 장점
- 배우기 쉬움
- RunTime까지 Type에 대한 결정을 미룰 수 있음
- 단점
- Type Error가 생길 확률이 큼
'Programming Language > JAVA' 카테고리의 다른 글
[JAVA] 직렬화 & 역직렬화 (0) | 2024.06.12 |
---|---|
[JAVA] StringBuffer & StringBuilder 특징 (0) | 2023.10.20 |
[JAVA] 디자인패턴 (1) | 2023.10.20 |
[JAVA] 절차 지향 프로그래밍 (0) | 2023.10.20 |
[JAVA] 최대공약수, 최소공배수 (0) | 2023.10.20 |