반응형

프로그래밍/java 40

[자바/Java] 입출력(io) / 보조스트림 / BufferredInputStream / DataInputStream / OutputStreamWriter / ObjectInputStream

기본 스트림과 필터(보조) 스트림 java.io 패키지의 입출력 스트림은 기본 스트림과 필터 스트림으로 분류할 수 있다. 기본 스트림은 외부 데이터에 직접 연결이 되는 스트림이고, 필터 스트림은 외부 데이터에 직접 연결하는 것이 아니라 기본 스트림에 추가로 사용할 수 있는 스트림이다. 주로 성능을 향상 시키는 목적으로 사용되며 생성자를 보면 구분이 가능하다. 생성자 쪽에 매개변수로 다른 스트림을 이용하는 클래스는 필터 스트림이라고 볼 수 있다. 보조스트림 - 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해서 사용 - 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리 불가능 - 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림을 생성 보조 스트림의 종류 - 입출력 성능 향상 : ..

[자바/Java] 입출력(IO) / FileInputStream / FileReader / FileOutputStream / FileWriter

입출력(IO) - Input과 Output의 약자로 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는것 - 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리 할 공통적인 방법으로 스트림을 이용 스트림(Stream) - 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스 - 모든 스트림은 단반향이며, 각각의 장치마다 연결할 수 있는 스트림 존재 - 하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림이 필요 1) 바이트 기반 스트림(1byte) 구분 입력스트림 출력스트림 최상위 클래스 InputStream OutputStream 하위 클래스 XXXInputStre..

[자바/Java] File 클래스

File 클래스 - 파일 시스템의 파일을 표현하는 클래스 - 파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 삭제 기능 제공 파일/디렉토리 생성 및 삭제 메소드 File 객체 생성 : 대상 파일이 존재하지 않아도 인스턴스 생성 가능. File file = new File("파일의 경로와 이름") File file = new File("src/com/greedy/section01/file/test.txt"); createFile() 을 통해 파일 생성 File file = new File("src/com/greedy/section01/file/test.txt"); try{ 성공 실패 여부를 boolean으로 반환 boolean createSuccess = file.createNewFile()..

[자바 /Java] Map 인터페이스 (HashMap / Properties)

Map - Collection 인터페이스와는 다른 저장 방식을 가짐 - key와 value를 하나의 쌍으로 저장하는 방식 사용 - 구현 클래스 : HashMap, HashTable, TreeMap HashTable은 하위 호환을 남겨 놓았기 때문에 HashMap을 사용하는 것이 좋음 Map특징 1) 요소의 저장 순서를 유지 하지 않음 2) key는 중복 저장 허용x, 값은 중복 저장 가능 3) key가 중복되는 경우 기존에 있는 key에 해당하는 value을 덮어 씀 Map 계열 주요 메소드 HashMap : key와 value을 묶어서 하나의 데이터(entry)로 저장 hashing을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 성능이 뛰어남 1 . HashMap 객체 생성(test를 위해 제..

[자바/Java] Set 인터페이스 ( HashSet, LinkedHashSet, TreeSet )

Set - 저장 순서가 유지되지 않고, 같은 요소의 중복 저장을 허용하지 않음 (null값도 중복되지 않게 하나의 null값만 저장) 구현 클래스 : HashSet, LinkedHashSet, TreeSet Set 계열 주요 메소드 HashSet : Set 컬렉션 클래스에서 가장 많이 사용 되는 클래스 HashSet 특징 : set에 객체를 저장할 때 hash 함수를 사용하여 처리 속도가 빠름 동일 객체 뿐 아니라 동등 객체도 중복하여 저장하지 않음 HashSet 객체 생성 Set hset = new HashSet(); 저장 순서가 유지 되지 않음 hset.add(new String("java")); //hset.add("java")도 작성가능 hset.add(new String("oracle")); h..

[자바 / Java ] List 인터페이스 ( ArrayList , LinkedList, Stack, Queue )

List : 자료들을 순차적으로 나열한 자료구조 인덱스로 관리 중복해서 객체 저장 가능 구현 클래스 : ArrayList, Vector, LinkedList List 계열 주요 매소드 ArrayList : 가장 많이 사용되는 컬렉션 클래스 내부적으로 배열을 이용하여 요소를 관리하고, 인덱스를 이용해 배열 요소에 접근 가능 배열의 단점을 보완하기 위해 만들어짐 배열의 장점 - 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧음(접근시간, access time) 배열의 단점 - 한번 크기를 지정하면 변경할 수 없음 - 요소의 추가/삭제/정렬 등을 하려면 시간이 많이 걸리고 알고리즘이 복잡해짐 - 한 타입의 데이터만 저장가능 ArrayList 특징 - 저장하는 크기의 제약이 없음 - 추가, 삭제, 정렬등의 ..

[자바 / Java] Iterator() , descendingIterator(), Comparable, Comparator

Iterator() 메소드 : 컬렉션에 저장된 요소를 접근하는데 사용되는 반복자 인터페이스 인덱스로 관리되는 컬렉션이 아닌 경우(set)에는 반복문을 사용해서 요소에 하나씩 접근할 수 없기 때문에 인덱스를 사용하지 않고도 반복문을 사용하기 위한 목록을 만들어주는 역할 ( Map의 경우 Set 또는 List화 시켜서 interator() 사용) hasNext() : 다음 요소를 가지고 있는 경우 true, 더 이상 요소가 없는 경우 false로 반환 next() : 다음 요소를 반환 List stringList = new ArrayList(); stringList.add("banana"); stringList.add("orange"); stringList.add("mango"); stringList.add..

[자바/ JAVA] 컬렉션(Collection)이란?

Collection : 여러 개의 다양한 데이터들을 쉬보 효과적으로 처리할 수 있도로 표준화 된 방법을 제공하는 클래스들의 집합 데이터를 효율적으로 저장하는 자료구조와 데이터를 처리하는 알고리즘이 미리 구현되어 있음 컬렉션의 주요 인터페이스 인터페이스 특징 구현클래스 List 순서가 있는 데이터의 집합 중복 저장 가능 ArrayList Vector LinkedList Set 순서를 유지하지 않는 데이터의 집합 중복 저장 불가 HashSet LinkedHashSet TreeSet Map key와 value의 쌍으로 이루어진 데이터의 집합 순서 유지x key중복 저장 불가 value 중복 저장 가능 HashMap HashTable TreeMap Properties

[자바/JAVA] 예외처리(try-catch , thows, finally블럭, RuntimeException)

1..프로그램 오류 컴파일 에러 : 컴파일할때 발생하는 에러 / 고치기 전까지는 실행x 런타임 에러 : 실행 중 발생하는 에러 / 실행은 되지만 프로그램 종료됨 논리적 에러 : 작성 의도 다르게 동작 / 실행o 프로그램 종료x 2 . error / exception 런타임 에러 - 에러(error) : 수습될 수 없는 심각한 오류 - 예외(exception) : 미리 예측하고 처리할 수 있는 미약한 오류 3. 예외 처리 - 예외의 발생에 대비한 코드를 작성하는 것 - 프로그램의 비정상 종료를 막고, 정상적인 실행 상태르 유지하는 것 4. 예외 클래스 계층 구조 - 예외 클래스들은 상속구조를 가지고 카테고리화 되어 있음. Exception 클래스들 RuntimeException 클래스들 Io Excepti..

[자바JAVA] 제네릭(generic)_와일드카드

제네릭(generic) 데이터의 타입을 일반화한다는 의미 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 지정하는 방법 제네릭을 이용하면 instanceof 비료 및 다운 캐스팅을 하지 않아도 됨. 1 . 제네릭 설정 - 다이아몬드 연산자 이용 - 관례상 대문자로 작성 - - 타입 변수를 자료형 대신 사용, 가상으로 존재 - 여러 개의 타입 변수를 작성도 가능 - 컴파일 시점에서 타입 결정됨. public class GenericTest { private T value; getter, setter 작성 시에도 구체적인 타입 대신 T 사용 가능 public void setValue(T value) { this.value = value; } public T getValue() { return va..

반응형