TIL/Java (27) 썸네일형 리스트형 [Java] 입출력(IO) - 2. 보조스트림(BufferedInputStream, BufferedOutputStream, DataInputStream, DataOutputStream, ObjectInputStream, ObjectOutputStream,) java.io 패키지의 입출력 스트림은 기본 스트림과 필터 스트림으로 분류할 수 있다. 기본 스트림은 외부 데이터에 직접연결이 되는 스트림이고 필터 스트림은 외부 데이터에 직접 연결하는 것이 아니라 기본 스트림에 추가로 사용할 수 있는 스트림이다. 주로 성능을 향상시키는 목적으로 사용되며 생성자를 보면 구분이 가능하다. 생성자 쪽에 매개변수로 다른 스트림을 이용하는 클래스는 필터 스트림이라고 볼 수 있다. 보조스트림 - 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해서 사용 -보조 스트림은 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리가 불가능 - 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림을 생성 종류 - 입출력성능 (BufferedInputStream / Buffe.. [Java] 입출력(IO) - 1. 입력스트림, 출력스트림 File클래스 - JDK 1.0부터 지원하는 API로 파일 처리를 수행하는 대표적인 클래스 - 대상 파일에 대한 인스턴스를 생성하고 파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 삭제 기능을 제공 File 클래스를 이용해서 인스턴스 생성 - 대상 파일이 존재하지 않아도 인스턴스를 생성할 수 있다. - 최초 실행 시 새롭게 파일이 만들어지면 true가 반환되며, 파일이 한 번 생성되고 난 이후는 새롭게 파일을 만들지 않기 때문에 false를 반환한다. - try-catch까지 작성 후에 실행해보면 true반환, 패키지 Refresh 한 후에 test.txt 파일 생성이 된다. File file = new File("src/com/greedy/section01/file/test.txt"); .. [Java] 예외 처리(Exception) - Throws, try-catch, multi-catch, 사용자정의 Exception, try-with-resource, Exception 오버라이딩 오류(Error) - 시스템 상에서 프로그램에 심각한 문제를 발생하여 실행중인 프로그램이 종료되는 것 - 이러한 오류는 개발자가 미리 예측하여 처리하는 것이 불가능하다. 오류에 대한 처리는 할 수 없다. 예외(Exception) - 오류와 마찬가지로 실행 중인 프로그램을 비정상적으로 종료시키지만 발생할 수 있는 상황을 미리 예측하고 처리할 수 있는 미약한 오류 - 개발자는 이러한 예외에 대해 예외 처리를 통해 예외 상황을 적절히 처리하여 코드의 흐름을 컨트롤 할 수 있다. 예외클래스 계층 구조 - Exceptio과 Error클래스 모두 Throwable 클래스 자손이다. - 예외 클래스들의 최상위 클래스는 Exception 클래스이며 예외처리를 해야하는 Checked Exception과 해주지 않아도 되.. [Java] 컬렉션(Collection) - 4. Map(HashMap, Properties) Map - Collection 인터페이스와는 다른 저장 방식을 가진다. - 키(key)와 값(value)으로 구성되어 있으며 키와 값은 모두 인스턴스이다. (키(key) : 값(value)을 갖기 위한 이름 역할을 하는 객체를 의미) - 저장순서 유지X - 키는 중복을 허용하지 않지만 키가 다르면 중복 되는 값은 저장 가능 - HashMap, HashTable, TreeMap 등 대표적인 클래스가 있다. HashMap HashMap 인스턴스 생성 HashMap hmap = new HashMap(); //Map hmap2 = new HashMap(); 키와 값 쌍으로 저장한다. 키와 값 둘 다 반드시 객체여야 한다. hmap.put("one", new Date()); hmap.put(12, "red app.. [Java] 컬렉션(Collection) - 3. Set(HashSet, LinkedHashSet, TreeSet) Set - Set인터페이스를 구현한 Set컬렉션 클래스 - 저장 순서 유지X, 같은 요소의 중복 저장X (null값도 중복되지 않게 하나의 null만 저장) - 구현클래스 : HashSet, LinkedHashSet, TreeSet HashSet 클래스 - Set 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이다. - JDK 1.2부터 제공되고 있으며 해시 알고리즘을 사용하여 검색 속도가 빠르다는 장점을 가진다. - 동일 인스턴스 뿐 아니라 동등 인스턴스도 중복하여 저장하지 않는다. (동일 : 완전히 같음 / 동등 : 다른 인스턴스이지만 속성 값 같음) HashSet 인스턴스 생성 HashSet hset = new HashSet(); 다형성 적용하여 상위 인터페이스를 타입으로 사용가능 //Set .. [Java] 컬렉션(Collection) - 2. List(LinkedList), Stack, Queue LinkedList - ArrayList가 배열을 이용해서 발생할 수 있는 성능적인 단점을 보완하고자 고안되었다. - 내부는 이중 연결 리스트로 구현 되어 있다. 단일 연결 리스트 - 저장한 요소가 순서를 유지하지 않고 저장되지만 이러한 요소들 사이를 링크로 연결하여 구성하며 마치 연결된 리스트 형태인 것 처럼 만든 자료구조이다. 요소의 저장과 삭제 시 다음 요소를 가리키는 참조 링크만 변경하면 되기 때문에 요소의 저장과 삭제가 빈번히 일어나는 경우 ArrayList보다 성능면에서 우수하다. 하지만 단일 연결 리스트는 다음 요소만 링크하기 때문에 이전 요소로 접근하기 어렵다. 이를 보완하고자 나온 것이 이중 연결 리스트이다. 이중 연결 리스트 - 단일 연결 리스트는 다음 요소만 링크하는 반면 이중 연결 .. [Java] 컬렉션(Collection) - 1. List(ArrayList) 컬렉션(Collection)이란? - 여러 개의 다양한 데이터들을 쉽고 효과적으로 처리할 수 있도록 표준화된 방법을 제공하는 클래스들의 집합 (데이터를 효율적으로 저장하는 자료구조와 데이터를 처리하는 알고리즘이 이미 구현되어 있음) -Java.util.패키지에 포함 컬렉션의 주요 인터페이스 인터페이스 분류 특징 구현 클래스 Collection List 계열 순서를 유지하고 저장 중복 저장 가능 ArrayList, Vector, LinkedList Set 계열 순서를 유지하지 X 중복 저장 안됨 HashSet, LinkedHashSet, TreeSet Map 계열 키와 값이 쌍으로 저장 키는 중복 저장 안됨 HashMap, HashTable, TreeMap, Properties List - 자료들을 순차적.. [Java] 제네릭(Generic), WildCard 제네릭(Generic)이란? - 데이터의 타입을 일반화한다는 것을 의미 (사전적 의미는 일반적인) - 제네릭을 활용하면 타입 변환 및 타입 검사에 들어가는 코드 생략이 가능하다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 지정하는 방법을 말한다. 컴파일 시에 미리 타입 검사를 시행하게 되면 클라스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있으며, (잘못 된 타입인 경우 컴파일 에러를 발생시킴) 반환 값에 대한 타입 변환 및 타입 검사에 들어가는 코드 생략이 가능해진다. (instanceof 비교 및 다운캐스팅 작성 불필요) JDK 1.5 버전부터 추가된 문법이다. 제네릭 작성 방법 - 제네릭 설정은 클래스 선언부 마지막 부분에 다이아몬드 연산자를 이용하여 작성하게.. 이전 1 2 3 4 다음