[ 알고리즘 세션 ]
의사코드 (pseudo-code)
: 코드를 흉내내서 읽기 쉽게 적어놓은 것. 문법보다는 코드의 흐름을 미리 적는 것!
시간복잡도 (time complexity)
: 알고리즘이 얼마나 효율적인지 평가하는 기준
- Big-O 표기법
: O(n^2) : n^2에 비례하는 시간이 소요된다는 뜻
O(1) < O( 𝑙𝑜𝑔𝑛 ) < O(n) < O(n 𝑙𝑜𝑔𝑛 ) < O( 𝑛2 ) < O( 2𝑛 ) < O(n!)
[ 개인과제 (Calculator) ]
level 2 - 7에서 final과 static을 어디에 선언하면 좋을지에 대해 고민했다.
[ final ]
:오직 한 번만 할당할 수 있는 entity를 정의할 때 사용된다.
final 변수
1. 원시타입 : 로컬 원시 변수에 final로 선언하면 한번 초기화된 변수는 변경할 수 없는 상수값이 된다.
public void test_final_primitive_variables() {
final int x = 1;
//x = 3; //한번 assign되면 변경할 수 없음.
}
2. 객체 타입
public void test_final_reference_variables() {
final Pet pet = new Pet();
//pet = new Pet(); //다른 객체로 변경할수 없음
pet.setWeight(3); //객체 필드는 변경할 수 있음
}
3. 메서드 인자 : 메서드 안에서 변수값을 변경할 수 없다.
public class Pet {
int weight;
public void setWeight(final int weight) {
weight = 1; //final 인자는 메서드안에서 변경할 수 없음
}
}
4. 멤버변수 : 상수값이 되거나 write-once 필드로 한 번만 쓰이게 된다.
final 메서드
- 상속받은 클래스에서 오버라이드할 수 없음.
- 구현한 코드를 변경하고싶지 않을 때 사용함.
final 클래스
- 상속이 되지 않고, 그냥 클래스 그대로 새용해야 함.
- 여러 상수 값을 모아둔 constants클래스를 final로 선언함
[ static ]
: 정적인, 고정된
: 딱 한번만 할당되어 메모리를 효율적으로 사용할 수 있다.
- 어떤 객체에 소속되는 것이 아닌, 클래스에 고정되어 있는 것
- 특징
- 메모리에 고정적으로 할당된다.
: 각 객체들에서 공통적으로 하나의 값이 유지되어야 할 경우 유용하게 사용할 수 있음 - 객체 생성 없이 사용할 수 있다
- 프로그램이 시작되면 메모리의 static영역에 적재되고, 프로그램이 종료될 때 해제된다
- static 메서드 내에서는 인스턴스 변수를 사용할 수 없다.
- 메모리에 고정적으로 할당된다.
- 사용목적 : 모든 클래스에서 호출 가능한 전역변수나 전역함수를 만들기 위해 사용
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #8. SRP, OCP, (Git)PR (0) | 2024.04.30 |
---|---|
[TIL] #7. thread (0) | 2024.04.29 |
[TIL] #5. Abstract, Interface, Exception (0) | 2024.04.25 |
[TIL] #4. 객체지향 프로그래밍 (0) | 2024.04.24 |
[TIL] #3. 연산자, 반복문, 배열, 컬렉션 (0) | 2024.04.23 |