Reference

[Java] 자료형 정리
Data Type자바에는 기본형 (Primitive Type)과 참조형 (Reference Type)이 있다.Java Data Type ㄴ Primitive Type ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type ㄴ Integer Type(short, int, long) ㄴ Floating Point Type(float, double) ㄴ Character Type(char)ㄴ Reference Type ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ etc.Primitive Type기본형은 다음과 ..

C++ 참조자(Reference)의 이해
참조자(레퍼런스)란 C에서는 없던, C++에서 새로 생긴 개념. 포인터랑 의도하는 바는 같은데 포인터의 단점이 보완되어 출시된 것. C++ 문서에서는 포인터보다 특정 경우가 아니라면 대부분 참조자를 사용하길 권장한다. 값으로 전달하는 방식의 한계 1. 큰 구조체나 클래스를 함수에 전달할 때 인수의 복사본을 매개변수로 만든다. 2. 함수의 호출자에 값을 전달하는 건 반환값을 사용하는 게 유일한 방법이나 함수에서 인수를 수정하는 게 확실하고 효율적이다. → 그래서 참조를 통해 문제를 해결한다. 변수를 참조로 전달하려면 매개변수를 참조로 선언한다. 함수가 호출되면 y는 인수에 대한 참조가 된다. int x=5; addOne(x); //int &y=x; 이런 의미 void addOne(int& y) { y=y+..
C++ (template, auto, decltype) 타입 추론 Universal reference
1. 정의 C++11의 새로운 피쳐들 중에서 아마 가장 의미있는 것은 RValue reference일 것이다. 이로 인해 move semantics와 perferect forwarding이 가능해졌기 때문이다. 문법적으로 &&(ampersands) 2개를 붙여 표시한다. void f(widget&& param); 위 예제를 보면 rvalue reference를 &&로 표기하는데 아무런 문제가 없어보인다. 하지만, 다음의 예제들은 &&로 rvalue reference를 의미할수도 그렇지 않을 수도 있다. Widget&& var1 = someWidget; // rvalue ref auto&& var2 = var1; // rvalue ref or lvalue ref (universal ref) template..
C++ 참조 대상 수 (Reference Counting)
Reference Counting은 객체의 소유권 관리( = 라이프 사이클 )의 방법 중 하나로 객체를 참조(포인팅) 하고 있는 횟수를 추적하여 그 횟수가 0이 되면 메모리에서 해제(소멸)한다. 대부분의 Managed Language (python, c#, swift등 메모리 관리를 직접 하지 않는 언어 ) 에서 널리 사용되고 있다. 장점 - 메모리를 직접 해제하는 번거로움이 사라진다. - 객체의 소유권을 공유할 수 있다 - 객체 관리 매커니즘이 비교적 단순해서 빠르다. (Garbage Collection) 단점 - 순환 참조 문제가 있다. c++ 에서의 구현방식에는 크게 두가지가 있다. Intrusive Reference Counting (침습성 참조 카운팅) - 객체에 대한 참조 카운트가 "내장" 되..