클래스 내에 선언되는 클래스. 두 클래스가 서로 긴밀한 관계에 있을 때 주로 사용한다.내부 클래스에서 외부 클래스 멤버들에 쉽게 접근 가능하다.캡슐화를 통해 코드 복잡성을 줄일 수 있다.내부 클래스 중 스태틱 클래스만이 static 멤버를 가질 수 있다.final st
간단히 말하면, 어플리케이션이 어떤 일을 하는지를 말한다. 구체적으로, 하나의 프로젝트에서 데이터베이스와 사용자 인터페이스 사이의 정보 가공 및 교환을 처리하는 알고리즘을 의미한다.웹 어플리케이션에서는 일반적으로 DB에 연결을 하고 서 데이터를 가져와서 적절한 가공을
a, b, c에서 오류가 발생한다.a: 참조형 b의 지네릭 타입 Object와 생성자 Box()의 지네릭 타입 String이 불일치한다.b: a의 문제점 + Object형의 객체를 Box<Object> 타입의 참조변수에 저장 불가하다.c: String만 받을 수
Collection(List, Set) 인터페이스에 저장된 데이터에 접근할 때 사용되는 인터페이스다.Iterator가 주로 사용되며, Enumeration은 Iterator의 구버전이다. (기능은 거의 동일하다)Iterator는 next로만 접근 가능하지만, ListI
Arrays 클래스는 배열을 다루기 편리한 static 메서드들을 제공한다.배열의 내용을 출력해준다. 일차원 배열은 toString(), 다차원 배열의 경우 deepToString()을 사용해야 한다.두 배열이 동일한지 비교한다. 일차원 배열은 equals(), 다차원
String 클래스는 char\[] 데이터와 관련 메서드로 구성된다.내용을 변경할 수 없는 불변(immutable) 클래스다. 따라서 만약 String을 편집하거나 두 개를 합치는 등을 통해 문자열이 달라지면, 새로운 객체가 생성된다.즉 문자열 결합을 할 때마다 계속
프로그램에서 일시적으로 사용되고 재사용되지 않는 객체에 대해서, 클래스를 모두 만들어준다면 코드가 복잡해지고 오히려 유지보수에 불리해질 수 있다. 따라서 이러한 경우 클래스를 별도로 만들어주지 않고 코드 내에서 익명클래스를 생성 및 정의하여 일회성으로 사용한다.부모클래
그래프 자료구조에서, 모든 노드에 대해 다른 노드로의 최단 경로를 구하는 알고리즘. 다이나믹 프로그래밍의 일종이다.다음과 같은 그래프가 있다고 가정하자.
파생 클래스에서 재정의할 것으로 기대하는 멤버 함수. 일반적으로 C++ 컴파일러는 함수 호출 시 어느 블록의 함수인지, 해당 함수의 메모리 상 위치 등의 정보를 요구한다. 함수 호출 코드로부터 이러한 정보를 해석하는 것을 바인딩(binding)이라 한다. 대부분의 함수
일반적인 함수는 매개변수, 리턴 주소 등을 스택에 저장한 뒤 프로그램의 제어 (PC)를 함수 내로 이동하다. 이 후 함수 내의 지역 변수 등을 스택에 저장하며 함수를 수행하고, 이 후 리턴값을 반환하고 리턴 주소로 복귀한다. 이러한 과정으로 인해 함수의 호출에는 약간의
접근 제어 지시자를 통해 구조체, 또는 클래스의 멤버들에 대한 접근 권한을 설정할 수 있다. 외부에서 사용자가 알 필요가 없는 정보는 사용자로부터 숨기는 것이 좋다. (정보 은닉) 이를 통해 사용자는 최소한의 정보로 프로그램을 쉽게 사용 가능하다.멤버가 어떠한 접근 제
서버와 클라이언트가 같은 키를 사용. 클라이언트에서 암호화한 키를 서버에서 똑같이 사용하여 복호화한다.서버와 클라이언트가 어떻게 같은 키를 가지게 할 것인가가 문제다. 만약 클라이언트에서 서버로 암호키를 전송한다면, 중간에 패킷 스니핑 등으로 해당 암호키를 탈취하면 보