**PrintWriter=>문자 단위로 기록할 수 있는 스트림=>버퍼를 사용하기 때문에 입출력 횟수를 줄여서 효율적으로 기록을 하는 스트림1.생성자PrintWriter(String 파일경로) : 파일에 기록하는 경우PrintWriter(File 객체)PrintWriter(OutputStream 객체) : 네트워크에 이용하는 경우2.기록하는 메소드print(문자열)printf(서식, 데이터)println(문자열)3.닫아주는 메소드close()ex)문자열을 파일에 기록하고 읽기package io;import java.io.BufferedReader;import java.io.FileReader;import java.io.PrintWriter;public class Main1 { public static vo..
**ByteStream: 바이트 단위로 입출력 하기 위한 스트림1.InputStream : 바이트 단위로 입력을 하기 위한 메소드를 소유한 추상 클래스int available(): 읽을 수 있는 바이트 수 리턴int read(): 하나의 바이트를 읽어서 값을 리턴 읽은 게 없으면 -1 리턴int read(byte [] b): b 크기 만큼의 데이터를 읽어서 b에 저장하고 읽은 개수를 리턴int read(byte [] b, int offset, int length): offset에서부터 length 만큼의 데이터를 읽어서 b에 저장하고 읽은 개수를 리턴void close()2.OutputStrem : 바이트 단위로 기록을 하기 위한 메소드를 소유한 추상 클래스void write(int ..
**AWT1.Frame: AWT의 윈도우 클래스=>상속받은 클래스를 만들어서 화면에 출력할 수 있고 직접 객체 생성을 해서 출력할 수 있는데 일반적으로 상속받은 클래스를 이용=>객체를 직접 생성해서 출력하게 되면 옵션 설정을 전부 Main에서 해야 하기 때문에 상속받은 클래스를 이용2.Panel=>독자적으로 출력이 되지 않는 컨테이너=>여러 개의 컴포넌트를 묶어서 Frame에 출력하기 위한 클래스3.Dialog=>메시지를 출력하거나 보조적인 입력을 받기 위한 컨테이너1)종류- Model Dialog: 화면에 출력된 상태에서는 다른 윈도우로 제어권이동이 안되는 대화상자 - 메뉴에서 New 나 Open 메뉴를 선택했을 때 보여지는 대화상자- Modeless Dialog: 화면에 출력된 상태에서도 다른 윈도우..
**String 클래스의 boolean matches(String regexp) 은 문자열에 정규식이 포함되어 있으면 true 그렇지 않으면 false를 리턴하는 메소드ex)영문 소문자로 시작하고 영문이나 숫자가 뒤에 7-11자리까지 와야 하는 문자열 검사아이디 만들 때 영문 소문자로 시작하고 영문과 숫자 합쳐서 8-12자리인지 검사정규식 : ^ - 시작하는, $ - 끝나는 , * - 0번이상, + - 1번이상 [0-9] - 숫자 [A-Z] - 영문 대문자 [a-z] - 영문소문자 [A-Za-z] - 영문 {숫자}: 숫자만큼 반복 {숫자1, 숫자2}: 숫자1부터 숫자2 사이 만큼 반복 {숫자,}: 숫자보다 크거나 같게 반복 **Pro..
**Map - 인터페이스=>데이터를 Key 와 Value 쌍으로 저장하는 자료구조=>여러 개의 데이터를 하나의 묶음으로 저장하기 위해서 사용=>Key 와 Value 모두 Generic 적용=>Key는 Set으로 저장되기 때문에 중복없이 저장하고 특별한 경우가 아니면 자료형은 String=>Value에는 어떤 데이터 타입도 저장이 가능하며 각 요소의 자료형이 다를 때는 Object 타입으로 선언=>빠른 열거는 사용할 수 없음=>toString은 재정의 되어 있어서 호출하면 Key 와 Value를 쌍으로 묶어서 리턴1.implements 한 클래스1)HashMap : 키의 순서를 알 수 없는 Map 2)LinkedHashMap : 키의 순서를 알 수 있는 Map 3)TreeMap : 키를 오름차순 정렬한 M..
**iterator(enumeration, cursor, 반복자)=>컬렉션(데이터의 모임)에서 저장되는 데이터 크기에 상관없이 다음 데이터를 가리킬 수 있도록 해주는 포인터=>배열은 인덱스를 이용해서 다음 데이터로 진행하지만 배열을 제외한 컬렉션들은 인덱스를 이용해도 되고 반복자의 next를 이용해서 다음 데이터를 가리키게 됩니다.=>반복자 때문에 개발자는 컬렉션에 저장되는 요소의 크기에 상관없이 다음 데이터를 접근할 수 있게 됩니다.=>데이터베이스에서 이러한 기능을 수행하는 것을 cursor라고 합니다.java에서는 예전에 만들어진 Collection 들은 Enumeration을 이용하고 최근에 만들어진 Collection 들은 Iterator를 이용합니다.1.Enumeration=>boolean ha..
**StringBuilder=>변경할 수 있는 문자열 저장에 사용=>변경하지 않는 문자열을 저장하게 되면 메모리 낭비가 됩니다.=>문자열을 편집하는 작업을 연속해서 수행할 때 이 클래스의 객체를 이용합니다.1.생성자StringBuilder()StringBuilder(String str)2.메소드void append(String str): 저장된 문자열에 str의 내용을 추가 리턴하는 것이 아니고 현재 문자열에 추가String toString(): 저장된 문자열을 String으로 리턴해주는 메소드=>웹이나 파일의 내용을 읽을 때 부분적으로 읽어서 StringBuilder에 보관한 뒤 전부 읽고 나면 다시 String에 저장해서 사용합니다. **fast enumer..
*예외를 호출하는 메소드에게 넘기기=>메소드 원형뒤에 throws 예외클래스 이름을 기재하면 예외가 발생하는 메소드에서 예외를 처리하는 것이 아니고 메소드를 호출하는 곳에서 예외를 처리해 주어야 합니다.=>대표적인 메소드Thread 클래스의 static void sleep(long millis)throws InterruptedException 위의 메소드는 매개변수로 대입된 시간만큼 현재 스레드를 중지시켜주는 메소드인데 이 메소드를 사용하려면 호출하는 곳에서 InterruptedException 을 처리해 주어야 합니다.=>예외처리를 강제하는 메소드를 사용하는 패키지java.net, java.sql, javax.sql, java.io 등*try - with - resources=>try 괄호안에서 생성한..
**상속(Inheritance)=>상위 클래스의 모든 멤버를 하위 클래스가 물려받는 것1.상속을 하는 이유1)기능 확장 : 제공되는 클래스 만으로는 기능이 부족해서 추가해서 사용하기 위해서2)중복된 코드 제거 : 여러 개의 클래스에 동일한 코드가 존재하는 경우에 중복을 제거하기 위해서 상속을 이용3)다형성 구현 2.상속의 용어1)단일상속: 하나의 클래스로부터 물려받는 것2)다중상속: 2개 이상의 클래스로부터 물려받는 것 - 자바는 지원안함3)상위 클래스: 물려주는 클래스로 Super, Base, 기반 클래스라고 함4)하위 클래스: 물려받는 클래스로 Sub, Derived, 파생 클래스라고 함3.상속방법클래스 이름 뒤에 extends를 붙이고 상위 클래스 이름을 기재하면 됩니다.4.Java의 모든 클래스는..
**정렬(Sorting)=>데이터를 순서대로 나열하는 것1.정렬의 목적=>데이터를 자주 검색해야 하는 경우 정렬이 되어 있지 않으면 데이터를 순서대로 하나씩 비교하면서 검색해야 하기 때문에 효율이 많이 떨어지는데 데이터를 정렬해 놓으면 가운데에서부터 비교해서 작으면 왼쪽 크면 오른쪽의 형태로 검색할 수 있기 때문에 순차검색보다는 적은 비교횟수로 데이터를 검색할 수 있기 때문입니다.2.정렬의 종류 1)배치 방법에 따른 분류 - Ascending(오름차순): 작은 것에서 큰 것 순으로 배치하는 것으로 정렬의 기본 - Descending(내림차순): 큰 것에서 작은 것 순으로 배치하는 것 2)정렬 알고리즘에 따른 분류 - selection(선택), bubble, insertion(삽입), quick, merg..