컴퓨터프로그래밍/JAVA 90

JAVA - DataInputStream/DataOutputstream 클래스

DataInputStream과 DataOutputstream 클래스는 데이터를 기본 데이터형 단위로 일고 쓰는 클래스이다. DataInputStream 클래스 java.io.DataInputStream 클래스의 생성자DataInputSteam(InputSteam in)지정된 InputStream에 대한 DataInputStream 객체를 생성한다. java.io.DataOutputStream클래스의 메소드 void writeBoolean()데이터를 출력 스트림에 boolean형으로 쓴다. void writeByte()데이터를 출력 스트림에 byte형으로 쓴다. void writeChar()데이터를 출력 스트림에 char형으로 쓴다. writeDouble()데이터를 추력 스트림에 double형으로 쓴다. ..

JAVA - FileInputStream/FileOutputStream 클래스

FileInputStream과 FileOutputStream 클래스는 파일에서 데이터를 일고 파일에 데이터를 쓰기 위한 클래스 입니다. java.io.FileInputStream 클래스FileStream(File file)File 객체가 가리키는 파일에대한 FileInputStream 객체를 생성한다. FileInputStream(FileDescriptor tdObj)파일 디스크립터가 가리키는 파일에 대한 FileInputStream 객체를 생성한다. FileInutStream(String name)지정된 파일 이름에 대한 FileInputStream 객체를 생성한다. java.io.FileInputStream 클래스의 메소드intavailable()입력 스트림에서 읽을 수 있는 바이트 수를 반환한다. ..

JAVA - 입력, 출력 클래스

사용방법 콘솔 프로그램에서 키보드로 문자열을 입력받기 위해서는 BufferdReader형 객체를 선언하면 된다. BufferedReader형 객체는 생성시에 PrintStream형 객체를 필요로 하고, PrintStream형 객체는 생성시에 다시 Reader형 객체가 필요하다. 문자를 입력받는 ReadLine()함수는 라인단위(엔터키를 칠 때까지)로 입력을 받는다. import java.io.*; BufferedReader key;String txt; key new BufferedReader(new InputStreamReader(System.in)); ln=key.readLine(); 클래스 정리 InputStream/OutputString 클래스는 바이트 단위로 입력/출력을 담당하는 클래스의 최상위 ..

JAVA - java.io 패키지

스트림스트림은 데이터를 원하는 곳으로 보내거나 받기 위한 통로로서 데이터 흐름 또는 데이터를 전송하기 위한 파이프라고 볼 수 있다. 스트림의 종류스트림은 취급하는 데이터 종류에 따라 바이트 스트림과 문자 스트림으로 구분할 수 있다. 바이트 스트림은 데이터를 8비트로 다루고 문자 스트림은 데이터를 16비트로 다룬다. 스트림의 사용바이트 스트림과 문자 스트림은 모두 동일한 방식으로 사용할 수 있다. 가장 먼저 스트림을 열고 스트림에서 데이터를 읽은 후에 스트림을 닫으면 된다. 다음 그림은 이러한 과정을 보여준다. File클래스File클래스는 파일과 디렉토리에 대한 정보(경로, 이름, 크기 등)를 파악하고 삭제하는 등의 다양한 조작을 지원하는 클래스이다.1.파일 정보를 얻을 수 있다.2. 파일과 디렉토리를 생..

JAVA - java.lang 패키지2

String, StringBuffer, StringBuilder 클래스문자열 관련 클래스에는 String, STringBuffer와 Java 5.0에서 추가된 StringBuilder가 있다. 이 클래스들은 모두 문자열을 조작할 수 있는 특징을 가지고 있지만 조금씩 다른 특징을 가지고 있으므로 이에 대해서 알아두어야 한다. String 클래스는 한 번 생성된 객체의 문자열은 변경할 수 없는 불변승ㄹ을 가지며, StringBuffer클래스는 불변성을 가지고 있지 않아 문자열 연결시 좀 더 효율적으로 동작한다. 또한 동기화 처리가 되어 있어 여러 스레드가 동시에 접근ㅇ하더라도 문자열을 안정적으로 다룰 수 있다. 그리고 StringBuilder 클래스는 StringBuffer클래스에서 동기화 처리 기능을 제거..

JAVA - java.lang 패키지

패키지란?자바에서는 이미 여러 가지 기능을 가진 클래스를 전문가들이 만들어 놓고 제공하고 있습니다.우리는 어떤 목적을 달성하기 위해 이미 만들어진 클래스가 있는가 확인하고 있으면 이것을 사용하고 없으면 직접 만들어야 합니다. 이미 만들어져 있는 클래스를 사용하는 방법은 [import]문에서 경로를 지정해주면 됩니다.예를 들어서import sun.util.char;라는 문장을 해석해보면sun폴더의 util폴더안에 char클래스를 사용하겠다는 문장입니다. import sun.util.*;라는 문장은sun폴더의 util폴더안에 들어있는 모든 클래스를 사용하겠다는 문장입니다. import sun.*;라는 문장은sun폴더안에 들어있는 util 폴더를 포함한 모든 클래스를 사용하겠다는 문장입니다. 패키지 컴파일 및..

JAVA - 중첩 클래스

중첩 클래스는 클래스 내부에 다른 클래스를 선언하는 것을 말합니다. 정적 중첩 클래스(Static Nested Class)정적 중첩 클래스는 외부 클래스 내에 static 제한자로 선언한 클래스를 말하며 아래처럼 작성할 수 있다.1. 정적중첩 클래스는 외부 클래스의 멤버로 선언해야 한다.2. 정적 중첩 클래스는 static 제한자로 선언되어야 한다.3. 정적 중첩 클래스는 top-level 클래스와 같은 속성을 갖는다.4. 정적 중첩 클래스는 top-level 클래스와 같은 속성을 갖는다.5. 정적 중첩 클래스는 외부 클래스의 인스턴스 없이 접근할 수 있다.6. 정적 중첩 클래스 내부에 정적 멤버static meber와 비정적 멤버 non-static member 모두 선언할 수 있다.7. 정적 중첩 클..

JAVA 가비지 컬렉션

가비지 컬랙션(Garbage Collection)가비지 컬렉션은 가비지 컬렉터가 메모리의 힙 영역에 할당된 더 이상 사용되지 앟는 객체를 다른 객체가 사용할 수 있도록 제거하는 것을 말한다. 가비지 컬렉션을 자동 메모리 관리라 부르기도 한다.가비지 컬렉션의 특징을 정리하면 다음과 같다. 가비지 컬렉션의 특징1. 자동 메모리 관리 automatic memory management라 부르기도 한다.2. 가비지 컬렉션은 프로그래머가 구현할 수 없다.3. 가비지 컬렉션의 대상은 객체이지 참조가 아니다.4. 가비지 컬렉션의 대상은 살아있는 스레드가 더이상 참조하지 않는 객체이다.5. 다른 참조 변수도 참조하고 있는 객체는 가비지 컬렉션의 대상이 될 수 없다.6.객체에 할당된 메모리를 명시적으로 해체할 수 없다.7..

JAVA연산자

자바에서 사용할 수 있는 연산자에는 산술, 대입, 관계, 조건, 논리 연산자가 있으며 데이터형을 비교하기 위한 instanceof 연산자가 있다. 연산자의 종류 연산자의 종류 산술(Arithmetic) +, -, *, /, %, ++, -- 대입(Assignment) =, op= 관계(relational) , , ==, != 조건(Conditional) ? : 논리(Logical) !, &, |, &&, || 타입비교(instanceof) instanceof 산술연산자(Arithmetic) 연산자1. 피연산자에 double 형이 있으면 double형으로 연산을 수행2. 피연산자에 float형이 잇으면 float형으로 연산을 수행3. 피연산자에 long형이 있으면 long형으로 연산을 수행4. 그 외에는 ..

JAVA - 기타 제한자.

final 제한자.final 제한자가 선언된 변수의 값은 변경할 수 없으며 final 제한자가 선언된 메소드는 하위 클래스에서 오버라이딩 할 수 없다. 1. 변경할 수 없음을 의미2. 클래스, 내부 클래스, 메소드, 변수에 선언 가능3. 클래스에 선언하면 다른 클래스가 이 클래스를 상속할 수 없음4. 메소드에 선언하면 다른 클래스에서 이 메소드를 오버라이딩 할 수 없음5. 변수에 선언하면 일단 값이 할당된 이후에는 더 이상 값을 변경할 수 없음6. final 메소드가 있더라도 클래스를 반드시 final로 선언할 필요는 없음 abstract 제한자.abstract는 "추상"이라는 뜻을 가지고 있따. 그래서 이 제한자가 선언된 메소드는 완벽하게 정의되지 않았다는 것을 알리는 역할을 한다. 1. 메소드 몸체를..