본문 바로가기
java

01~04장

by 대장가장 2023. 1. 6.

01-1 프로그래밍 언어와 자바

- 기계어: 컴퓨터가 이해할 수 있는 언어

- 프로그래밍 언어: 사람의 언어와 기계어의 다리 역할을 하는 언어

- 소스 파일: 프로그래밍 언어로 작성한 파일

- 컴파일: 프로그래밍 언어로 작성된 소스 파일을 기계어 파일로 변경하는 작업

 

01-3 자바 프로그램 개발 과정

- 라인 주석: // ...

- 범위 주석: /* ... */

- 도큐먼트 주석: /** ... */

 

02 -1 변수

• 작성 규칙

- 첫 번째 글자는 문자이거나 $, _이어야 하고 숫자로 시작할 수 없음

- 영어 대소문자를 구분함

- 길이 제한 없음

- 예약어 사용 불가능

 

로컬 변수

- 메소드 블록 내에서 선언된 변수

- 변수는 자신이 선언된 위치로부터 속한 블록 내부에서만 사용할 수 있다

- 중괄호{} 내에서 선언된 변수는 해당 중괄호 내에서만 사용 가능

 

  정수 타입

타입 메모리 사용 크기 저장되는 값의 허용 범위
byte 1byte 8bit -2⁷ ~ (2⁷-1) -128 ~ 127
short 2byte 16bit -2¹⁵ ~ (2¹⁵-1) -32,276 ~ 32,767
char 2byte 16bit 0 ~ (2¹⁶-1) 0 ~ 65535
int 4byte 32bit -2³¹ ~ (2³¹-1) -2,147,483,648 ~ 2,147,483,647
long 8byte 64bit -2⁶³ ~ (2⁶³-1) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

정수 리터럴이 int 타입의 허용 범위를 초과할 경우, long 타입임을 컴파일러에게 알려주어야 한다.

long balance = 30000000000; //에러
long balance = 30000000000L;

 

• char 타입

- 작은 따옴표(')로 감싼 것을 문자 리터럴이라고 한다.

- 문자 리터럴은 유니코드로 변환되어 저장된다. (2byte로 표현할 수 있는 0~65535)

- char타입은 정수타입에 속한다.

- char 변수에 문자가 아닌 10진수 또는 16진수 형태의 유니코드를 저장할 수 있다.

char c = 65; //10진수
char c = 0x0041; // 16진수

 

• String 타입

- 큰 따옴표(")로 감싼 문자를 문자열이라고 한다.

- String은 기본 타입이 아닌 클래스 타입이다.

- 이스케이프 문자(\)를 사용하면 특정 문자를 포함 시킬 수 있다.

String str= "나는 \"자바를\" 좋아합니다"
//-> 나는 "자바"를 좋아합니다

 

• 실수 타입

- 자바는 실수 리터럴을 기본적으로 double타입으로 해석하기 때문에

실수 리터럴을 float 타입으로 저장하고 싶다면 f나 F를 붙여야 에러가 없다

float var = 3.14; //<에러
double var = 3.14;
float = var = 3.14f;

 

02-3 타입 변환

• 자동 타입 변환

- 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 자동 타입 변환이 일어남

- byte < short < int < long < float < double

byte byteValue=10;
int intValue = byteValue; //자동타입변환

 

• 강제 타입 변환

- 허용범위가 큰 타입을 작은 타입에 강제로 나눠 저장하는 것

int intValue = 10;
byte byteValue = (byte) intValue;

int intValue = 65;
char charValue = (char) intValue; //"A"가 출력

double doubleValue = 3.14;
int intValue = (int) doubleValue; // 정수 부분만 저장

 

• 정수 타입 변수의 자동 타입 변환

- 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int 타입보다 작은 byte, short 타입의 변수는 int 타입으로 자동 타입 변환 되어 연산을 수행한다.

//byte 타입 변수가 피연산자로 사용된 경우
byte x = 10;
byte y = 20;
byte result = x + y; //컴파일 에러
int result = x + y;

 

• String 타입의 타입 변환

//String -> byte
String str = "10";
byte value = Byte.parseByte(str);

//String -> short
String str = "200";
short value = Short.parseShort(str);

//String -> boolean
String str ="true";
boolean value = Boolean.parseBoolean(str);

 

02-4 변수와 시스템 입출력

• 모니터로 변수값 출력하기

println(내용); 괄호 안의 내용을 출력하고 행바꿈
print(내용); 괄호 안의 내용 출력
printf("형식문자열",값1,값2,...); 괄호 안의 첫 번째 문자열 형식대로 내용 출력
System.out.println(리터럴 또는 변수);

 

• 출력 형태

형식화된 문자열  설명 출력 형태
정수 %d
%6d
%-6d
%06d
정수
6자리 정수, 왼쪽 공백
6자리 정수, 오른쪽 공백
6자리 정수, 왼쪽 빈 자리 0
123
___123
123___
000123
실수 %10.2f
%-10.2f
%010.2f
전체 10자리, 소수점 이하 2자리, 왼쪽 빈 자리 공백
전체 10자리, 소수점 이하 2자리, 오른쪽 빈 자리 공백
전체 10자리, 소수점 이하 2자리, 왼쪽 빈자리 0 채움
____123.45
123.45____
0000123.45
문자열 %s
%6s
%-6s
문자열
6자리 문자열, 왼쪽 공백
6자리 문자열, 오른쪽 공백
abc
___abc
abc___
특수 문자 \t
\n
%%
탭(tab)
줄 바꿈
%
 

형식문자열에 포함된 값이 2개 이상일 경우에는 순번을 지정해야 한다

System.out.printf("이름:%1$s 나이:%2$d","김자반",25);

 

키보드에서 입력된 내용을 변수에 저장하기

int keyCode = System.in.read();
Scanner scanner = new Scanner(System.in); //스캐너 변수 선언
String inputData = scanner.nextLine(); //엔터키 이전까지 입력된 문자열을 읽음

- nextLine(): 엔터를 치기 전까지의 값을 반환

- nextInt(): 공백 전까지의 값을 반환

 

 

03-1 연산자와 연산식

AND
(논리곱)
&&
또는
&
피연산자 모두가 true일 경우에만 연산결과가 true
OR
(논리합)
¦¦
또는
¦
피연산자 중 하나만 true이면 true
XOR
(배타적 논리합)
^ 피연산자가 하나는 true, 다른 하나는 false일 경우에만 true
NOT
(논리 부정)
! 피연산자의 논리값을 바꿈

 

 

'java' 카테고리의 다른 글

05-3 열거 타입  (0) 2023.01.15
05-2 배열  (0) 2023.01.15
05-1 참조 타입  (0) 2023.01.07