국비학원

    [Java] day22. 입출력IO 보조스트림/ 직렬화

    입출력 파트 이제 끝. 오늘로 자바 파트가 끝나고 오라클로 넘어간다. 그렇다고 자바가 완전히 끝난게 아니니 오라클 수업동안 자바도 같이 복습해야만 한다. 자바 + 오라클 + 당일과제 + 팀스터디 -> 오 빡세다... 여기에 정처기 필기까지 했다면 더 힘들었겠지만 정처산기 실기 까지 여유가 있으니 다행이다. 보조 스트림 filterStream 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해서 사용 보조 스트림은 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리가 불가능 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림을 생성 보조 스트림의 종류 입출력 성능(BufferedInputStream/BufferedOutputStream) 기본 데이터 타입 출력(DataInputStrea..

    [Java] day22. 입출력IO / Stream / File

    입출력이라는 것을 알아볼 때, 이 입력장치는 키보드가 될 수도 있고 프로그램이 될 수도 있지만, 우선 파일을 외부 자원으로 보고 확인하기 위해 파일 클래스에 대해 가장 먼저 학습했다. File 클래스 파일 시스템의 파일을 표현하는 클래스 JDK 1.0부터 지원하는 API로 파일 처리를 수행하는 대표적인 클래스 이다. 대상 파일에 대한 정보로 인스턴스를 생성하고 파일의 생성, 삭제 등등의 처리를 수행하는 기능을 제공하고 있다. 파일 클래스를 이용해서 인스턴스를 생성한다. 대상 파일이 존재하지 않아도 인스턴스를 생성할 수 있다. File file = new File("section01/file/test.txt";) createNewFile()을 통해 파일을 생성할 수 있고 성공 실패 여부를 boolean으로..

    [Java] 국비교육 day21. 예외처리 Exception

    이제껏 코드작성하면서 나왔던 오류들을 따로 배우게 될줄 몰랐는데 .... 배우는 줄 알았으면 오류가 왜 났는지 빨간줄에 메세지도 주의깊게 볼 걸 그랬다. NullPointException 정도 기억에 남아있다 ... 아니면 배열의 인덱스를 초과하는 오류(짜증)!!! 예외처리는 배우고 보니 핸들링 자동완성 기능이 있다는 게 정말 너무나 다행이었다. try-catch구문 매번 쓴다고 생각하면 얼마나 귀찮았을까. 오류와 에러 시스템 상에서 프로그램에 심각한 문제가 발생해서 실행중인 프로그램이 영향을 받는 것은 오류와 예외로 구분할 수 있음 오류(Error) 시스템 상에서 프로그램에 심각한 문제를 발생하여 실행중인 프로그램이 종료되는 것 예외(Exception) 오류와 마찬가지로 비정상적으로 종료시키지만 미리 ..

    [Java] day20. 컬렉션 프레임워크 Set / Map

    Set 저장 순서가 유지되지 않고, 중복 인스턴스도 저장하지 못하게 하는 자료구조 수학에 비유하면 집합과 비슷한 개념이다. 구현 클래스 : HashSet, LinkedHashSet, TreeSet Set 인터페이스를 구현 한 Set 컬렉션 클래스의 특징 1. 요소의 저장 순서를 유지하지 않는다. 2. 같은 요소의 중복 저장을 허용하지 않는다. (null 값도 중복되지 않아 하나의 null 만 저장한다) HashSet 클래스 Set 컬렉션 클래스에서 가장 많이 사용 되는 클래스 중 하나이다. JDK 1.2부터 제공되고 있으며 해시 알고리즘을 사용하여 검색 속도가 빠르다는 장점을 가진다. HashSet Set에 인스턴스를 저장할 때 hash함수를 사용하여 처리 속도가 빠름 동일 인스턴스 뿐 아니라 동등 인스..

    [Java] day19. 컬렉션 자료구조 Stack/ Queue

    Stack Stack은 제한적으로 접근할 수 있는 나열 구조로 데이터를 저장하는 자료구조로 후입선출( LIFO - Last Input First Out ) 방식이다. Stack은 리스트 계열 클래스의 Vector 클래스를 상속 받아 구현하였다. 스택 메모리 구조는 선형 메모리 공간에 데이터를 저장한다. 데이터를 넣는 Push 동작과 데이터를 빼는 Pop 동작을 수행한다. Stack 인스턴스 생성 Stack integerStack = new Stack(); Stack에 값을 넣을 때는 push() 메소드를 이용한다. add()도 이용 가능하지만 Vector의 메소드이므로 push()를 사용하는 것이 좋다. integerStack.push(1); integerStack.push(2); integerStack..

    [Java] day19. 컬렉션 프레임워크 LinkedList

    하루만에 많을 양을 학습하려니 약간 헤롱거리는 것이.. 이게 그 말로만 듣던.. 타자치는 감자 상태??? 가 되어버렸다. LinkedList ArrayList가 배열을 이용해서 발생할 수 있는 성능적인 단점을 보완하고자 고안되었다. 내부는 이중 연결리스트로 구현 되어 있다. 단일 연결 리스트 저장한 요소가 순서를 유지하지 않고 저장 되지만 이러한 요소들 사이를 링크로 연결하여 구성하며 마치 연결 된 리스트 형태인 것 처럼 만든 자료구조이다. 요소의 저장과 삭제 시 다음 요소를 가리키는 참조 링크만 변경하면 되기 때문에 요소의 저장과 삭제가 빈번히 일어나는 경우 ArrayList보다 성능면에서 우수하다. 하지만 단일 연결리스트는 다음 요소만 링크하기 때문에 이전 요소로 접근하기 어렵다. 이를 보완하고자 만..

    [Java] day19. 컬렉션 프레임워크 ArrayList

    컬렉션에 대해서는 완전히 처음들어서 큰일났다. 수업 시작하니 나름 자료구조를 배웠다고 오 자료구조... 했는디 수업 뒤로갈수록 아 코드 너무 길다.... 하나 사용하려면 정말 Iterator dIter = ((LinkedList)stringList).descendingIterator(); 이런거 진짜.... 너무 오.... 컬렉션 ? 자바는 자료구조를 사용해서 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 인터페이스와 구현클래스를 java.util 패키지에 제공한다. 이들을 총칭해서 컬렉션 프레임 워크라고 부른다. 컬렉션은 객체의 저장을 뜻하고, 프레임워크는 사용 방법을 정해놓은 라이브러리를 말하는 것. 컬렉션 프레임워크에는 크게 List, Set. Map이 있다. List 자료들을 순차적으로 나열..

    [Java] day17. API - Whapper / porsing

    오늘도 API 중 몇 개의 필요한 기능에 대해 학습했다. 오늘 배운 내용은 기능별로 포스팅을 나눴다. Whapper 기본자료형을 인스턴화 해주는 클래스. 포장한다는 것! 8가지의 해당하는 기본 타입의 데이터를 인스턴스화 할 수 있도록 클래스를 래퍼클래스 (Wrapper Class) 라고 한다. Primitive Date Type Wrapper Class boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double Boxing과 UnBaxing (오 용어가 귀엽다. 오늘은 언박싱을 해볼게요 ~) 기본타입을 래퍼클래스의 인스턴스로 인스턴스화 하는 것은 박싱이라고 하고, 래퍼클래스 타입의 인..

    [Java] day16. API - Object/ String 문자열 메소드()

    API API(Application Programming Interface)란? 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 자바 API 자바 플랫폼 위에서 동작하는 애플리케이션 개발 시 활용 (유용한 클래스 및 인터페이스 제공) JDK를 설치하면 시스템을 제어하거나 편의 기능을 위한 API를 제공 Object 모든 클래스는 Object 클래스의 후손 java.lang 패키지에 존재 Obejct 클래스가 가진 메소드 중 관례상 많이 오버라이딩 해서 사용하는 메소드들이 존재 ex) toString(), equals(), hashCode() 제공하는 메소드 toString() : 인스턴스 생성 시 사용한 full class name과 @ 그..