java 72

[Java]Generic

Generic이란? 클래스나 메소드에서 사용할 데이터 타입을 클래스 정의시에 결정하는 것이 아니라 인스턴스를 생성할 때나 메소드를 호출 할 때 결정하는 기법이다. 클래스나 메소드 사용시 타입을 지정할 수 있도록 하는 일반(Generic)화된 타입이라는 의미이다. 제너릭은 사용 타입을 지정하기 때문에 컴파일시 타입체크를 해주는 기능(Type Safety)를 통해 런타임시 에러를 사전에 방지할 수 있다. JDK1.7부터 클래스를 인스턴스화 할 때 클래스명()의 '파라미터 타입'을 생략할 수 있다. 즉, new클래스명()로 인스턴스화 할 수 있다. 제너릭의 장점 Complie시 타입 체크를 할 수 있기 때문에 Type Safety가 좋다. 형변환이 불필요하다. 코드의 중복을 줄일 수 있다. 제너릭 타입(Gen..

Java 2022.04.06

[SQL]DAY.4

FOR문 - 인덱스 카운터는 자동으로 선언된 변수 - FOR문은 1씩 밖에 증가 못한다. - 항상 초기값이 종료값보다 작아야한다. 초기값이 더 크면 반복하지 않는다. 예] FOR 인덱스 카운터 IN [REVERSE] 초기값 .. 종료값 LOOP statement1; statement2; END LOOP; ▲ REVERSE는 끝값부터 시작값까지 역순으로 진행 ▲PROMPT는 사용자로부터 입력을 받는 기능을 하는 함수다. 사용자로부터 값을 입력받아서 ACCEPT 뒤에 있는 변수명에 넣는다. PL/SQL문 밖에서 선언된 변수를 PL/SQL문 안에서 사용할 때는 앞에 '&'를 반드시 붙여서 구분하도록 하자! LOOP~ END LOOP; 시작부분과 끝부분을 의미하기 때문에 자바에서의 { } 처럼 사용되므로 꼭 열..

Oracle 2022.03.30

[Java]입력과 출력 - File

이번 포스팅에서는 자바에서 제공하는 클래스 중 하나인 File 클래스와 File 클래스에 존재하는 다양한 메소드들을 알아보자 ▲ 순서대로 위에서부터 존재하는 파일경로, 존재하지않는파일경로, 존재하는 디렉토리 경로, 존재하지 않는 디렉토리 경로를 사용하기 쉽게 String형으로 만들어 변수에 담아주자. ▲ 각각의 경로들로 File클래스 선언과 동시에 인스턴스화를 했다. 1) getName() ▲ 경로가 아닌 파일명 또는 디렉토리명을 얻기위해서는 File클래스에 있는 getName()메소드를 사용하면 된다. 2) isFile(), isDirectory() ▲ 파일인지 혹은 디렉토리인지 판단해주는 메소드. 반환값은 boolean형이다. isFlie()과 isDirectory()는 해당 파일과 디렉토리가 실제 ..

Java 2022.03.27

[Java]입력과 출력 -part.7(Object InOutStream)

이번 포스팅에서는 우리가 만든 클래스들을 필터를 통해 입력하거나 또는 출력하는 법을 알아보도록 하자. 자바에서 객체 안에 저장되어 있는 내용을 파일로 저장하거나 네트워크를 통하여 다른 곳으로 전송하려면 객체를 바이트 형태로 일일이 분해해야 한다. 이를 위하여 객체를 직접 입출력 할 수 있도록 해주는 객체 스트림이 바로 ObjectStream이다. 이번에 우리가 사용할 만든 클래스는 Person이라는 클래스이며 클래스 맴버들은 다음과 같다. ▲ Person 클래스. 이름,나이,주소를 가지는 클래스이다. 1. 메모리 -> 파일 Data source는 메모리이며 Data destination은 파일이다. 메모리에 저장된 값을 파일로 출력하는 것이기 때문에 입력스트림은 불필요하다. ▲ 데이터 소스를 준비한다. ..

Java 2022.03.27

[Java]입력과 출력 -part.6(Data InOutStream)

1. 메모리 -> 파일 각 자료형을 인코딩(필터 사용)해서 파일로 저장할 것이다. 따라서 Data source는 메모리이며 Data destination은 file이 되는 것이므로 입력스트림은 불필요하며 출력스트림만 있으면 된다. ▲ 다양한 자료형으로 데이터 소스를 만든다. ▲파일형식으로 출력할 것으이므로 FileOutputStream을 이용해 출력용 노드스트림을 만들어준 후 필터스트림인 DataOutputstream을 이용해 인코딩을 해준다. ▲ 자료형마다 출력용 메소드가 달리 존재하므로 자료형에 맞게 메소드를 이용해 출력한다. 2. 파일 -> 메모리 이번에는 파일에 저장된 데이터값을 불러와 각 자료형 값을 디코딩(필터링(해서 각 자료형 변수에 저장해보자 그리고 확인차 모니터에도 출력하자 여기저 주의할..

Java 2022.03.27

[Java]입력과 출력 -part.4(BufferedReader/BufferedWriter)

우리가 이제껏 입력과 출력포스팅에서는 1byte씩 읽고 출력하거나 한 문자씩 읽어서 한 문자기반으로 출력하는 방법을 알아봤다. 하지만 입력하거나 출력할 데이터가 방대하다면 언제 1byte씩 또는 한 문자씩 읽고 출력하겠는가. Buffered클래스를 사용하면 한번에 512byte씩 읽고 출력한다. 즉 512byte씩 묶어서 보내기 때문에 속도가 훨씬 빨라질 수 있다는 것이다. 우리는 이것을 필터를 끼운다고도 표현한다. 키보드로부터 입력받아서 모니터로 출력하자. 단, 브릿지 스트림을 통해서 문자단위로 변환하고 필터스트림을 통해 필터링 해보자. ▲ 키보드는 바이트기반이므로 문자기반의 BufferedReader를 이용해 읽으려면 Reader형 즉, 문자 기반으로 바꿔줘야한다. 따라서 바이트기반입력인 System..

Java 2022.03.23

[Java]입력과 출력 -part.3(File -> Monitor, File)

파일로부터 한 문자씩 읽어서 모니터에 출력해보자 모니터출력은 바이트 형식으로 해야한다. System.out이 OutputStream 에 속하기 때문이다. 즉, 이번 포스팅은 문자기반 -> 바이트 기반으로 변환을 해주어야 하는 것이다. ▲ 파일로부터 파일에 있는 데이터값을 한 문자씩 읽어온다. ▲ 이제 한문자씩 읽어온 문자기반 스트림을 바이트 기반으로 바꿔주어야 하기때문에 OutputStreamWriter를 사용해서 모니터에 출력을 위한 바이트기반으로 바꾸어준다. ▲출력은 역시나 동일하게 write()메소드로 출력스트림에 데이터를 밀어넣어주고 flush()를 사용해서 출력스트림에 있는 데이터값을 모니터로 밀어준다. 파일에서 데이터값을 가져왔기때문에 안정성을 위해 노드스트림 제거를 위해 close()를 해주..

Java 2022.03.23

[Java]입력과 출력 -part.2(bridge stream)

키보드로 읽어서(바이트 단위로 읽음) 문자단위로 파일에 출력해보자 bridge stream을 이용해서 1바이트씩 읽은 데이터를 문자단위로 변환한다. ※ Java IO에서 한글이 깨지는 경우 1byte씩 읽어서 한 문자씩 출력시 해결방법 : InputStreamReader bridge stream이용 ----------------------------------------------------------- 한 문자씩 읽어서 1byte로 출력시 해결방법 : OutputStreamWriter bridge stream이용 ※ 1byte씩 읽어서 1byte씩 출력하거나 한 문자씩 읽어서 한 문자씩 출력할 때는 한글이 깨지지 않는다. ▲ 바이트 기반을 문자기반으로 바꿔주는 클래스 InputStreamReader를 ..

Java 2022.03.23

[Java]입력과 출력(Input and Output) - part.1 Basic

▲ 일반적으로 우리가 컴퓨터에 어떠한 데이터값을 넣을 때는 키보드를 통해서 입력한다. 또한 일반적으로 우리는 모니터를 통해서 다양한 데이터들을 접한다. 때문에 표준이 되는 입력장치는 키보드라 할 수 있고, 표준이 되는 출력장치는 모니터라 할 수 있다. 노드(node)란 입력하는 쪽, 입력받은 것을 돌리는 프로그램쪽 그리고 출력하는 쪽에 서로 연결할 수 있는 부분들을 가리킨다. ▲노드에 연결된 스트림을 노드스트림이라하며 데이터 소스나 목적지에 직접 연결할 수 있는 스트림이다. 입력장치에 연결된 노드스트림인 입력스트림이라하고 출력장치에 연결된 노드스트림은 출력스트림이라 한다. 이제 각각 다른 입력장치에서 입력받아서 출력장치로 출력해보자 1. 키보드에서 입력 받아서 파일과 모니터로 출력 ▲ System.in은..

Java 2022.03.23