JAVA - 기본 프로그램(1)

2021. 3. 5. 20:59코 딩 공 부/J A V A

728x90
반응형

키워드 및 식별자

키워드(Keyword)

키워드는 이미 문법에 정의된 예약어로 키워드가 갖는 기능 이외에는 다른 용도로 사용될 수 없다.

 

- 자주 사용되는 예약어

 

식별자(Identifier)

식별자는 사용자에 의해 정의되고 사용되어 지는 것으로 변수 명, 메소드 명, 클래스 명, 인터페이스 명 또는 패키지 등을 들 수 있으며, 같은 영역 내에서는 동일한 식별자는 존재할 수 없다.

 

● 작성 규칙

- 식별자는 유니코드 자바 레터와 유니코드 숫자로 구성하고 반드시 유니코드 자바 레터로 시작해야 한다.

· 유니코드 자바 레터 : 'A' ~ 'Z', 'a' ~ 'z', '_', '$', 각국 언어

· 유니코드 숫자 : '0' ~ '9'

- 키워드 및 공백 문자 등은 사용할 수 없다.

- 대문자와 소문자를 구분한다. 즉 같은 대소문자는 다른 식별자로 해석한다.

- 길이에는 제한이 없다.

 

자바의 기본 입출력

I/O 스트림(Stream)

자바의 모든 데이터 입출력은 스트림이라는 개념에 의해 이루어지며 스트림은 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈로서, 입출력 장치와 응용프로그램 사이에서 데이터가 순서대로 전송되도록 한다.

 

데이터 입출력 시 모든 데이터를 형태와는 관계없이 일련된 흐름으로 전송을 하는 것이 스트림 입출력 모델의 기본 개념이다.

 

● 스트림의 특징

- 스트림에는 입력 스트림(Input Stream)과 출력 스트림(Output Stream)이 있다.

- 스트림은 FIFO(First In First Out) 구조이다.

- 스트림은 단방향이다.

- 스트림은 지연(blocking) 될 수 있다.

 

바이트 스트림과 문자 스트림

 

● 바이트 스트림(Byte Streams)

- 스트림의 기본 입출력 단위는 바이트(Byte)이다.

- 1바이트(8bit) 단위로 입출력을 수행한다.

- 2진 데이터의 입출력이 가능하다. (이미지 파일, 실행파일 등)

- 모든 바이트 스트림 클래스는 InputStream 및 OutputStream 클래스의 서브 클래스이다.

 

● 문자 스트림(Character Streams)

- 2바이트(16bit)의 유니코드(Unicode) 문자를 입출력 하기 위한 스트림이다.

- 문자 단위로 입출력을 수행한다.

- 모든 문자 스트림 클래스는 Reader 및 Writer 클래스의 서브 클래스이다.

 

표준 입출력 스트림

 

● System.in

표준 입력 스트림으로, 열려있어 바로 사용이 가능하다.

- 원형

public static final InputStream in

- 클래스

java.lang.System

 

● System.out

표준 출력 스트림으로, 열려있어 바로 사용이 가능하다.

- 원형

public static final PrintStream out

- 클래스

java.lang.System

 

● System.err

표준 에러 출력 스트림으로, 열려있어 바로 사용 가능하다.

 

자료의 출력

 

● java.io.PrintStream 클래스

- 다른 출력 stream에 기능을 추가하여 다양한 데이터의 표현을 출력하는 기능을 가진 클래스

- IOException이 발생되지 않는다.

- System.out은 PrintStream 클래스의 객체이다.

 

● PrintStream 클래스의 print()메소드

주어진 인수의 값을 출력한다. 출력 후 라인을 넘기지 않는다.

 

● PrintStream 클래스의 println()메소드

주어진 인수의 값을 출력하고 캐럿을 다음 라인으로 넘긴다.

 

PrintStream 클래스의 printf() / format() 메소드

JDK 1.5에 추가된 메소드로 수치, 문자, 문자열 등을 지정한 서식에 따라 화면에 출력한다.

Scanner 클래스를 이용한 데이터 입력

java.util.Scanner 클래스

- JDK 5.0 부터 제공하는 java.util 패키지의 Scanner 클래스를 이용하면 쉽게 키 입력을 받을 수 있다.

- 키보드로 입력을 받은 바이트를 문자 단위로 변환하여 원하는 자료형으로 리턴 받을 수 있다.

- Scanner 클래스를 이용한 입력 방법

1) java.util.Scanner 클래스를 import 한다.

2) Scanner 클래스의 생성자에 System.in 객체를 인자로 넘겨 Scanner 객체를 생성 후 값을 입력 받는다.

3) Scanner 사용이 완료된 후에는 close()메소드를 이용하여 Scanner를 닫아준다.

 

● java.util.Scanner 클래스 주요 메소드

 

 

자바의 자료 형(Data Type)

개요

자료형이란 Data가 갖는 형으로 Data의 실질적인 구조 및 개념을 의미하며 자바에서 사용하는 Data Type은 다음과 같다.

 

● 기본 자료 형(Primitive Type)

자바에서 기본으로 제공하는 타입으로 다음과 같이 8가지가 있다.

- boolean, byte, char, short, int, long, float, double

 

● 참조 형(Reference Type)

기본형을 제외한 나머지 타입으로 주 기억 장치에 저장되어 있는 객체의 주소 값을 가리키며 자바에서 제공하는 참조형은 다음과 같다.

- 배열 참조 형 : 배열 객체를 참조하기 위한 자료 형이다.

- 클래스 참조 형 : 클래스 객체를 참조하기 위한 자료 형이다.

- 인터페이스 참조 형 : 인터페이스 객체를 참조하기 위한 자료 형이다.

- enum 참조 형: 열거 형 타입이다.

 

진법 변환

 

● 10진수 / 2진수 / 16진수 / 8진수

 

 

보수(Complement)

보수란 각 자리의 숫자의 합이 어느 일정한 수가 되게 하는 수를 의미하는 것으로, 예를 들어 2에 대한 10의 보수는 8(2+8=10), 2에대한 9의 보수는 7(2+7=9)이다. 컴퓨터에서는 뺄셈을 덧셈(가산기)으로 연산하기 위해 보수를 사용한다.

 

- 1의 보수

1의 보수는 0->1, 1->0으로 변환한다.

 

- 2의 보수

1의 보수에 1을 더하여 2의 보수를 구한다.

2의 보수를 구하는 다른 방법은 소수점 위치에서 왼쪽방향으로 첫번째 1이 나올 때 까지는 그대로 쓰고 나머지는 반대로 쓰면 된다.

 

 

기본 자료 형(Primitive Type)

 

● 기본 자료 형(Primitive Type)의 종류

 

 

 

● bit와 byte

- 1bit : 2진수 1자리로 정보 표현의 최소 단위

- 1byte : 8bit

 

● 기본 자료 형(Primitive Type)의 형 변환

- 크기가 작은 자료 형의 값을 큰 자료 형에 대입하면 자동으로 큰 자료 형으로 변환되어 저장된다.

 

 

- 크기가 큰 자료 형의 값을 작은 자료 형에 대입하면 컴파일 오류가 발생한다.

- 크기가 큰 자료 형의 값을 작은 자료 형으로 강제 변환이 가능하지만 경우에 따라 잘림 현상이 발생 할 수 있다.

 

리터럴(literals)과 변수(variable)

 

● 리터럴(literals)

리터럴이란 그 값이 한번 정의되면 프로그램이 실행되는 도중에 변하지 않는 값을 의미한다.

 

● 변수(variable)

변수란 프로그램 실행 중 처리 대상이 되는 자료나 처리된 결과를 기억시킬 기억장소의 이름으로 상수와는 달리 프로그램이 실행되는 도중에 그 값이 변할 수 있다.

- 변수는 타입에 맞는 크기의 메모리를 할당 받는다.

- 변수는 선언한 후 값을 초기화하여 사용한다.

- 변수는 타입에 맞는 값을 할당해서 사용한다.

- 동일한 영역에서는 같은 이름의 변수를 다시 선언할 수 없다.

 

● 변수 선언

변수는 타입 다음에 변수의 이름을 적어 선언한다.

- 변수 선언 및 초기 값 동시 지정

int a=0, b=0;

728x90
반응형

'코 딩 공 부 > J A V A' 카테고리의 다른 글

JAVA - 배열  (0) 2021.04.12
JAVA - 제어문  (0) 2021.03.24
JAVA - 연산자  (0) 2021.03.16
JAVA - 기본 프로그램(2)  (0) 2021.03.08
JAVA - 자바 개요  (0) 2021.03.03