
자바 표준 라이브러리 중 컬렉션collection에 있는 ArrayList와 LinkedList는 List 인터페이스를 구현한 것으로 JCFJava Collections Framework의 상속 구조는 다음과 같습니다. 그림 SEQ 그림 1 JCF성속구조 ArrayList는 내부적으로 배열을 사용하여 데이터를 저장하고 삽입/삭제 작업 시 해당 위치 이후의 모든 데이터를 이동하여 삽입/삭제시는 느리지만 데이터를 조회하는 작업에서는 인덱스를 통한 접근을 하여 빠른 성능을 제공합니다. LinkedList는 내부적으로 노드node로 구성이 되어 있어 삽입/삭제 작업 시 해당 노드의 위치만 변경하여 빠르지만 조회 작업 시 모든 노드를 검색하므로 느립니다. 그림 ArrayList As LinkedList 추가 또는..

1. Array와 ArrayList 차이점 일반적으로 Array 또는 ArrayList는 동일한 유형(Type)의 데이터 모음을 묶어서 그룹으로 사용하고 싶을 때 사용됩니다. 배열(Array)은 선언할 때 데이터가 들어갈 공간의 개수(길이)를 지정해야 합니다. 또한 크기가 지정되면 크기를 확장 또는 축소할 수 없습니다. 이것은 크기의 제약이 있는 것으로 주의가 필요합니다 1.1. Array Array는 크기를 가지고 있는 동일한 유형의 값을 저장하는 곳으로 int, long등과 같은 기본 테이터 유형과 코드에서 작성하는 데이터 객체를 요소로 가질 수 있지만 크기가 지정되어 있어서 축소나 확장을 하지 못하는 특성을 가지고 있습니다. 다음은 배열을 만드는 예제입니다. 코드 1.1-1 : 배열 만들기 1. S..

Class 내부에 Class가 있는 Class 1. 종류 Class Member처럼 사용하는 InstanceMember Inner Class, Static Member Inner Class Method내부에서 한정적으로 사용하는 Local Inner Class 이름을 알 수 없는 객체로 한 번만 사용하고 버려지는 객체 ( Anonymous Class : 익명 ) Static Inner Interface 2. Instance Member Inner Class 객체 내부에 있는 클래스로 Instance Member의 특성을 가지고 있다. 모든 접근 지정자를 사용할 수 있으며 실제로는 Outer Class이다. ( 클래스$이너클래스 ) 2. Static Member Inner Class 객체 내부에 있는 클래..

포괄적인, 총칭의, 회사 이름이 붙지 않은, 일반 명칭으로 판매되는 사전적 의미로, 딱 하나를 정하지 않고 범용적이고 포괄적이라는 의미 Data type을 특정한 type하나로 정하지 않고 사용할 때마다 바뀔 수 있게 범용적이고 포괄적으로 지정한다 라는 의미 Object Class의 한계를 극복 호출되는 시점에 실제 Generic 타입을 지정 1. 왜 Generic가 만들어졌을까? List list = new ArrayList() 에서 List처럼 호출되는 시점에 실제 Generic 타입을 지정한다. 2. Generic Class Class or Interface로 정의할 수 있음 클래스 내부에서 사용하는 데이터의 타입(Type)을 클래스의 인스턴스를 생성할 때 결정하는 것. 기본 데이터 타입(int, ..

클래스 상속은 객체 지향 프로그램에서 가장 기본적인 문법 요소로 부모 클래스를 성질을 자식 클래스가 포함시키는 문법 요소로 객체(사물)의 공통 적인 성질(특성)을 모아서 클래스를 만들고 독립적인 성질을 각각 클래스로 만들면 이때 공통적인 성질을 부모 클래스라 하고 개별 클래스를 자식 클래스라 한다. 상속은 코드 중복 제거와 다형성을 위함이다. 중복되는 속성(상태)과 행동을 별도로 관리하여 중복 코드를 제거한다. - 이름, 나이, 몸무게, 키, 먹기, 잠자기 학생은 사람이다, 직장인은 사람이다. 직장인은 성인이다. 일반인도 성인이다.처럼 다양한 표현을 할 수 있는 것을 다양성이라 한다. 1. Extends ( Class 상속 ) class 자식클래스 extends 부모클래스 { …. } 다중 상속 -> 자..

1. Package package 패키지이름 비슷한 목적으로 생성된 클래스 파일을 모아 둔 폴더 - 물리적으로 하나의 디렉터리를 의미 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분한다. import 패키지이름.클래스이름; import 패키지이름.*; 자바 컴파일러에 코드에서 사용할 클래스의 패키지에 대한 정보를 미리 제공하는 역할 - import 문을 사용하면 다른 패키지에 속한 클래스를 패키지 이름을 제외한 클래스 이름만으로 사용 선언 시 별표( * ) 의미는 하위 패키지의 모든 Package의 Class까지 포함해 주는 것이 아님 - 해당 폴더에 있는 Class에 대해서..

1. Field 인스턴스 변수 ( or 멤버 변수 ) : 클래스( Class )에 포함된 변수로 클래스 안에 있는 모든 곳에서 접근 가능하다 -> 클래스의 전역 변수 지역 변수 : 메서드( Method )에 포함된 변수로 해당 메소드에서만 유효하다. 1-1. Field 선언 private 자료형 변수이름 [ = 초기값 ] private int num; private int num = 20 ; // 선언과 초기화 동시 진행 1-2. 메모리 구조 인스턴스 변수는 객체 안에 저장 ( heap ) 지역 변수는 stack에 저장 1-3. 인스턴수 변수는 초기값 강제 설정 private int num; private int num = 20 ; num = 0 num01 = 20 1-4. 지역변수는 stack에 저장되..

1. Class Class : -분류 또는 종류라고 하는 동종의 모임 - 일반 Class, 추상 Class Instance : 구체적인 것 ( Class의 생성자로 객체를 만드는 과정 : Instance 화 ) 1-1. Class 구조 외부 구성 요소 - package : 자바 Class 를 모아 놓은 디렉토리 - import : 다른 package를 사용 할 때 포함 해야 함 - class : external class로 public를 키워드를 붙일 수 있다. 내부 구성 요소 - field : Class의 속성, Class내부에서 사용 하는 변수 - constructor : 객체를 생성하는 역할 담당. 생략 하면 기본 생성자 자동 생김 - method : Class가 가지고 있는 기능(함수) - inn..