//
Search
💟

07/04 [13일차]

C언어

문자열을 재사용한다. (주소 차이 1) = 공공재
공공재는 data 영역에 존재
나머지 문자열 변수 등 지역 변수는 stack에 존재
C언어 문자열 끝에는 \0 ( 0, null )이 붙는다.
문자열의 끝을 알리기 위함 ( char 주소 값으로는 시작 값만 표현 가능 )
문자배열, 배열도 자료구조
char* str = "문자열상수" //- 8byte(포인터) + 15byte(문자열 상수) char str[100] = "문자열변수" //- 스택에 생성-108byte
C
복사
// 문제 : 아래와 같이 출력되도록, change 함수를 구현해주세요. #include <stdio.h> void change(char**** pppp) { ****pppp = 'a'; *(***pppp + 1) = 'b'; *(***pppp + 2) = 'c'; *(***pppp + 3) = 'd'; *(***pppp + 4) = '\0'; // or (***pppp)[0] = 'a'; (***pppp)[1] = 'b'; (***pppp)[2] = 'c'; (***pppp)[3] = 'd'; (***pppp)[4] = '\0'; int main(void) { char str[10]; char* p = str; char** pp = &p; char*** ppp = &pp; change(&ppp); printf("%s\n", str); // 출력 => abcd return 0; }
C
복사

가비지 컬렉팅

사용하지 않는 메모리를 찾아 회수
과거 - reference count : 객체를 가리키는 개수를 카운트
현재 - mark and sweep : root부터 탐색해 내려가며 마크

JAVA

생성자를 사용하는 이유
객체 생성시 즉시 매서드를 정의하기 위함
추상클래스
본점 → 체인점
abstract는 리모콘 전용 클래스라는 것을 여러 개발자에게 명시적으로 알리기 위함
객체 생성 불가!
객체의 매서드는 무조건 실행된다는 보장이 있어야 한다.
→ 버튼을 누르는 입장에서 객체를 확인할 수 없음
>> 메서드 하나라도 abstract가 되면 클래스도 abstract

애자일방법론

짝 프로그래밍
TDD

TDD

1.
실패하는 테스트를 만들어라 ⇒ 빨간색
2.
꼼수를 써서 테스트를 통과하게 만들어라 ⇒ 그린
3.
리팩토링을 하라 ⇒ 블루
레드/그린/블루 반복
split에서 \\는 뒤에 기호가 진짜 기호라는 의미
모든 클래스는 기본적으로 디폴트 생성자를 가지고 있다.
→그것은 인자가 없다.