목록분류 전체보기 (175)
가자미의 개발이야기
a. 컬렉션 프레임워크 란? 데이터 군을 저장하는 클래스들을 표준화한 설계 인터페이스 특징 List 순서가 있는 데이터 집합. 중복 허용 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set 순서가 없는 데이터 집합, 중복 허용하지 않음 구현 클래스 : HashSet, TreeSet 등 Map key와 value의 쌍으로 이뤄진 집합. 순서가 없고, key는 중복 허용하지 않고, value는 중복을 허용한다. 구현 클래스 : HashMap, TreeMap, Hashtable 등 a-1. Collection 인터페이스 메서드 메서드 설명 boolean add(Object o) boolean addAll(Collection c) 객체나 콜렉션에 담긴 객체들을 콜렉션에 추가..
1. 공간 복잡도 : 알고리즘 실행에 필요한 저장공간의 정도 2. 시간 복잡도 : 알고리즘 실행에 필요한 시간의 정도 일반적으로 공간보다 시간에 예민한 환경이 많기 때문에 시간 복잡도를 주로 사용. 시간 복잡도에는 두가지 유형이 있다 a. 실제 걸리는 시간 측정 b. 실행되는 명령문의 개수 계산 c. 빅오(big o)계산법 빅오계산법은 명령문 계산 함수에서 가장 큰 영향을 주는 항만 남기고 모두 무시한 다음, 그 항의 계수마저 제거하여 남은 것으로 복잡도를 측정하는 것이다. 예를 들어 실행되는 명령문의 개수가 3n+2인 알고리즘이 있다하면, 여기서 가장 큰 영향을 주는 항은 3n이고 계수인 3을 제거해 이 알고리즘의 빅오계산은 O(n)이다. 이때 빅오 계산은 n에 들어가는 수의 형태에 따라 크기가 달라진..
a. 와일드카드 위가 제네릭 메소드, 아래가 와일드카드 메소드이다. 기능적으로는 동일하지만 와일드카드가 더 간결하므로 와일드 카드를 선호한다. 제네릭 타입에 다형성을 적용하기 위함. 표현 와일드카드 종류 설명 와일드카드 제한 없음. 모든 타입 가능
a. 제네릭 클래스와 상속 제네릭 클래스가 상속하려면 타입매개변수가 같아야한다.. SteelBox은 Box를 상속받지 않는다! b. 타겟 타입 제네릭 클래스 Box와 제네릭 메소드 EmptyBoxFactory의 상황을 유심히보자 Box의 타입 매개변수에 맞춰 EmptyBoxFactory의 메소드도 결정된다. 이걸 타겟 타입이라고 부른다. c. 제네릭 메소드와 일반 메소드의 차이 위는 제네릭 메소드 아래는 일반 메소드이다. 제네릭과 일반메소드 모두 Box의 인스턴스를 요구한다. 이때 일반 메소드는 오직 Object를 타입으로 한 Box인스턴스만 가능하다!!!(제네릭 클래스의 상속 참고) 제네릭 메소드는? Integer String...모두 가능!
a. 제네릭 자바의 제네릭은 프로그래머의 실수를 막기 위해 탄생했다. 번거로운 형변환 등 코드 작성할 때 고민해야될 부분을 줄여준다. -제네릭은 어떤 클래스를 생성할 때 클래스 멤버의 자료형을 상황에 따라 맞추겠다는 의미이다. -제네릭을 사용할 때 클래스 이름 뒤에 로 표시하면 된다. 이렇게 제너릭화 된 클래스를 인스턴스 선언할 때 Box aBox = new Box(); 이렇게 제너릭에 해당하는 부분을 어떻게 채울지를 선언하면 된다. 여기서 T를 타입 매개변수라고 하고 Apple을 타입 인자라고 한다. Box는 제네릭 클래스라고 하고, Box는 원시타입이라고 한다. b. 다중 매개변수 기반 제네릭 클래스 타입 매개변수 이름의 규칙 대문자로 한 문자로 이름을 짓는다. E Element K Key N Num..
a. Arrays 클래스 java.util.Arrays 에 정의되어 있는 클래스. 모든 메소드는 static(정적) 메소드이므로, Aarays 클래스로 바로 사용이 가능 b. 배열 복사 메소드 메소드 매개변수 반환 값 비고 int[] copyOf(int[] arr, int len) 원본 배열, 길이 원본의 특정 길이까지 복사된 배열 int말고도 다양한 배열 가능, 원본보다 더 길게 복사하면 기본값(0)으로 초기화 int[] copyOfRange(int[] arr, int start, int end) 원본 배열, 시작, 끝 원본의 시작~끝-1까지 복사 끝-1에 유의 int 말고도 다양한 배열 가능 void arraycopy(int[] arr, int index1, int[] arr2, int index2,..
a. 래퍼 클래스 -기본 자료형 값을 갖고 있는 인스턴스를 생성하는 클래스 -인스턴스를 인자로 요구할 때 기본 자료형 값을 전달해야 되는 경우 -Boolean, Character 등... 임의적인 박싱언박싱 -박싱: 기본 자료형 값을 래퍼클래스로 인스턴스화 한 행위 -언박싱: 래퍼클래스의 인스턴스로부터 값을 꺼내온 행위(인스턴스명.자료형명Value();) -래퍼클래스는 immutable인스턴스를 갖기 때문에 연산을 위해서는 새로운 인스턴스를 만들어야함. -빈번한 연산을 해야하는 경우 비효율적. int i = 1; Integer i2 = new Integer(i); //boxing int i3 = i2.intValue(); //unboxing 오토 박싱과 오토 언박싱 -인스턴스 생성이나 메소드를 활용하지 ..
a. Object 클래스 모든 클래스의 최고 조상 Object클래스의 멤버들은 모든 클래스에서 바로 사용가능 b. Object 클래스 메서드 메소드 명 설명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 자신과 obj가 같은 객체인지 참거짓 protected void finalize() 객체가 소멸될 때 가비지 콜렉터에 의해 자동적으로 호출(사용빈도 낮음) public Class getClass() 객체의 정보를 담고 있는 Class 인스턴스 반환 public int hashCode() 객체 자신의 해시코드 반환 public String toString() 객체 자신의 정보를 문자열로 반환 public void noti..
자바 가상머신의 메모리 모델은 메소드 영역-메소드의 바이트코드, static 변수 스택 영역-지역변수, 매개변수 힙 영역-인스턴스 이렇게 세가지로 나뉜다. 메소드 영역은 한번 저장된 내용은 프로그램이 종료될 때 소멸 스택 영역은 변수들을 임시저장 힙 영역은 둘 이상의 영역에서 참조 될 수 있는 인스턴스를 저장(따라서 스택에 저장하지 않음) 참조 관계가 끊기면(아무도 해당 인스턴스를 가르키지 않으면) 사라지게 된다.(가비지콜렉터로 보내지게 된다.)
a. 에러와 예외 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 : 프로그램 코드에 의해 수습될 수 있는 미약한 오류 b. 에러의 종류 컴파일 에러 : 컴파일 시 발생 런타임 에러 : 실행 시에 발생 논리적 에러 : 의도와 다르게 실행 c. 예외 클래스의 계층 구조 Exception클래스와 그 자손들 RuntimeException클래스와 그 자손들 Exception클래스들 : 사용자의 실수. 외적인 요인에 의해 발생 RuntimeException클래스들 : 프로그래머의 실수로 발생 이렇게 두가지로 예외 클래스를 분류할 수 있음. d. try catch 예외 발생에 대비한 코드 작성. 프로그램의 비정상 종료를 방지. 정상적 실행 상태 유지 try { 관찰 영역 } catch(예외 클래스..