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 |