주석 (Comment)
1. 프로그램 소스 코드에 부연 설명을 달 때 사용한다.
2. 주석은 프로그램 수행에 영향을 미치지 않는다. 왜냐하면 컴파일 시 제외된다.
3. 자바에는 세 가지 형태의 주석이 있다.
• 라인 주석 : 일반적으로 부연 설명을 달아줄 때 사용한다.
이클립스 주석달기 단축키 ( Ctrl + / )
int age; //나이
String name; //이름
• 블록 주석 : 특정 부분을 사용하고 싶지 않을 때 사용한다.
이클립스 주석달기 단축키 ( Ctrl + Shift + / )
이클립스 주석되돌리기 단축키 ( Ctrl + Shift + \)
/*
작성자 : 홍길동
작성일자 : 2021-01-01
프로그램 설명 :
*/
public class MyProgram {
...
}
• JavaDoc 주석 : /**로 시작하고 */로 끝마치는 주석이며 자바의 문서를 만들 때 사용한다.
자바에서는 주로 라인 주석과 블록 주석을 자주 사용하기 때문에 JavaDoc 주석에 대해서는
이정도만 이해하고 넘어간다.
변수 (Variable)
• 프로그램을 실행하는데 사용되는 데이터는 메모리(RAM)에 저장된다.
• 변수는 데이터를 저장할 수 있는 메모리 공간을 의미하며, 저장된 값은 변경될 수 있다.
• '='기호는 수학에서는 '같다'라는 의미지만, 프로그래밍 언어에서는 우측의 실제값을 좌측 변수에
저장한다라고 생각하면 된다.
• 메모리가 할당되었을 때 변수명은 메모리의 첫번째 주소값을 가리킨다.
• 하나의 메모리 공간에는 1 바이트의 데이터가 저장된다.
• 자료형이 int 이므로 4 바이트 공간이 할당된다.
• 변수의 이름은 첫 번째 메모리 주소인 008AF7FC 만을 가리키게 된다.
• 자바에서 여러 형태의 데이터 타입을 미리 정의(Built-in)하여 제공한다.
• 실제 값(리터럴)을 저장하는 자료형이다.
변수 flag의 초기값은 true이지만, 중간에 false로 값이 변경되었기때문에 false로 출력된다.
아래 화면에서 변수 선언 시 Error의 이유?
이미 flag라는 boolean 자료형이 메모리에 할당되었는데, 값의 변경은 가능하나 다른 값을
추가로 할당할 수는 없다. 기본적으로 하나의 변수에는 하나의 값만 할당이 가능하다.
<예외> ex)배열
• 문자 리터럴은 유니코드로 변환되어 저장된다.
• char 는 정수 타입이므로 10 진수, 16 진수 형태의 유니코드 저장 가능하다.
문자형 리터럴은 단일 인용부호를 붙어야한다. 이중 인용부호는 문자열형 리터럴에 사용해야한다.
실수형은 기본적으로 double 형으로 컴파일되기때문에 float 형을 사용하고 싶다면
1234.5f/F로 표기해야한다.
마찬가지로 실수형은 double 형으로 컴파일되기때문에 숫자뒤에 d/D를 붙여줄 필요가 없다.
※ 문자 인코딩 (character encoding)
• 문자 셋(문자 집합, Character set, Charset)은 정보를 표현하기 위한 글자나 기호들의
집합을 정의한 것이다.
• 문자 인코딩은 문자 셋을 컴퓨터에서 표현하기 위해 약속된 규칙에 따라 변환하는 과정을 말한다
• 아스키(ASCII), 유니코드(UNICODE)
• 미국 표준 정보 교환 코드
• 7 비트 표현 방식으로 2^7, 총 128 개의 문자를 표현할 수 있다. ( 0- 127 코드값)
아스키코드에서는 3가지 문자의 해당 10진숫자만 기억하고 넘어가자!
1. 숫자 0은 10진수로 48이라는 숫자에 해당한다.
2. 대문자 A는 10진수로 65라는 숫자에 해당한다.
3. 소문자 a는 10진수로 97이라는 숫자에 해당한다.
위 그림은 다른표현이지만 결과값은 같은 대문자 A이다.
10진수를 2진수로 변환하는 방법은 10진수의 숫자를 2로 나누어 나머지가 0 또는 1이 될 때
까지 나누고 각 숫자의 나머지를 거꾸로 읽어올라가면 된다. 10진수 88은 위의 그림에서 2로
나누었을 때 나머지를 거꾸로 읽어 1011000(2)이라는 2진수로 표기법으로 읽는다.
• 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현할 수 있다.
• 16 비트 표현 방식으로 2^16, 총 65536 개의 문자를 표현할 수 있다. ( 0- 65535 코드값)
• 객체의 저장 공간인 주소를 저장하고, 주소를 통해 객체를 참조하는 타입이다.
• 클래스(Class), 배열(Array), 인터페이스(Interface), 열거형(Enum)
• 소스 코드의 고정된 값이다.
• 정수, 실수, 문자, 논리, 문자열 리터럴 등이 있다.
• 정수형 리터럴
10 진수,
8 진수(숫자 0으로 시작) ex)012
16 진수(숫자 0x) ex)0x123
2 진수(숫자 0b)가 있다. ex)ob1
• 정수형 리터럴은 int 형으로 컴파일되고, long 형 리터럴은 숫자뒤에 L / l 을 붙인다.
• 실수형 리터럴은 double 형으로 컴파일되고, float 형 리터럴은 숫자뒤에 F/ f 을 붙인다.
• 문자형 리터럴은 단일 인용부호를 붙인다.
• 문자열형 리터럴은 이중 인용부호를 붙인다.
• 논리형 리터럴은 true, false 가 있다.
출력 서식 (format)
• System.out.printf (”출력 서식”, 출력할 내용)
※ 출력 서식 (format)
%[argument_index$][flags][width][.precision]conversion
• 출력 서식의 지시자(conversion)를 제외한 나머지는 생략 가능하다.
• width : 출력할 전체 자리수 지정(오른쪽 정렬). 예) %3d, 전체자리수가 3 인 정수
• (flags) 0 : 전체 자리수가 지정된 경우 왼쪽의 남는 자리에 0 을 출력. 예) %03d
• (flags) - : 전체 자리수가 지정된 경우 왼쪽 정렬하고 빈칸에 공백 출력.
• .precision : 소수점 아래 자리수 지정. 잘리는 소수점 자리수는 반올림하여 출력한다.
콘솔 입출력
• 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴한다.
• 입력되는 데이터를 공백(whitespace) 또는 개행(줄바꿈) 으로 구분되는 토큰 단위로 읽는다.
(토큰 : 여러 개의 문자열이 공백을 기준으로 구분되었을 때 문자열 하나하나를 의미한다.)
<문법> Scanner sc = new Scanner( System.in );
• Scanner 클래스는 위 문법을 사용하고 Import(단축키 : Ctrl + Shift + o)를 해야 사용이 가능하다.