1. 데이터 타입
자바에서도 다양한 데이터 타입에 따른 처리 동작이 모두 다르다.
1) 기본형 타입 (8개)
- 논리형 : boolean (1 byte)
참, 거짓을 표현하는 데이터타입. true / false (소문자만 사용가능)
기본값 : false
- 문자형 : char (2 byte)
' ' 작은 따옴표 사용해서 반드시 하나의 문자 데이터만 저장
16bit 유니코드를 표현 가능
기본적으로 정수형에 속함 ( 문자 <-> 숫자 변환 가능함. 연산할 때 정수로 계산됨!!)
기본값 : 0 / ' '(공백문자)
- 정수형 : byte short int long (1 2 4 8 byte)
int 타입이 정수형타입의 기본형
long 타입은 데이터 뒤에 L/l 붙여서 사용. (ex. 100000000L, 1000000000l)
기본값 : 0 0 0 0L
- 실수형 : float double (4 8 byte)
double 타입이 실수형 타입의 기본형
float 타입은 데이터 뒤에 F/f 붙여서 사용
double 타입은 데이터 뒤에 D/d 붙여서 사용 (but 기본형이므로 생략 가능함)
기본값 : 0.0f 0.0d
2) 참조형타입 (기본형 제외한 나머지)
String , 배열 등..
* 참고로 데이터 값 => 리터럴(Literal) 이라고도 말함
< 변수 >
- 변수 : 프로그램에 사용되는 데이터(리터럴)를 저장하기 위한 공간을 의미. 기본형타입 변수 / 참조형타입 변수로 구분 가능.
- 변수 사용 방법 :
1) 변수의 선언
데이터타입 변수명; ( ex. int age; )
2) 변수 초기화
( ex. age = 0; )
3) 변수의 사용 (값 출력, 값 변경)
System.out.println(age); -> 값 출력
age = 10; -> 값 변경 = 변수의 재사용
* 식별자는 중복사용이 불가능하다. 즉 변수 재선언은 안 됨 !!
< 상수와 리터럴 >
- 상수 : 항상 변하지 않는 값. final 예약어 사용해 선언
- 상수 이름은 대문자를 주로 사용하고, 단어를 연결하는 경우 _ 기호를 사용
- 프로그램 내부에서 반복적으로 사용하고, 변하지 않아야 하는 값을 상수로 선언하여 사용하면 좋음
final double PI = 3.14;
final int MAX_NUM = 100;
- 리터럴 : 프로그램에서 사용하는 모든 숫자, 문자, 논리값을 일컫는 말
아래에서 A, 10 과 같은 문자와 숫자를 리터럴 혹은 리터럴 상수 라고 한다. 리터럴은 변수나 상수 값으로 대입할 수 있다.
char ch = 'A';
int num = 10;
2. 데이터 형변환
- 데이터 형변환 : 데이터 형태를 변경. 연산, 프로그램 실행을 하다보면 자동으로 발생한다.
char(2)
l
byte(1) -> short(2) -> int(4) -> long(8)
l X l
float(4) double(8)
1) 묵시적 형변환(자동 형변환 / 프로모션)
- 사용하는 메모리 공간의 크기가 작은 곳에서 큰 곳으로 이동할 때 발생하는 데이터 형변환
- 자바에서는 데이터타입이 다른 경우 저장이 불가능하다. 하지만 저장이 가능한 경우 컴파일러가 자동형변환을 실행함!
byte bNum = 100;
int iNum;
// 컴파일러가 자동형변환 실행
iNum = bNum;
2) 명시적 형변환(강제형변환 / 타입캐스팅)
- 사용하는 메모리 공간의 크기가 큰 곳에서 작은 곳으로 이동할 때 발생하는 데이터 형변환.
- 컴파일러에게 개발자가 문제상황을 인지하고 있고, 그 문제에 대해서 알아서 처리하겠다 는 의미를 갖고 있음.
byte bNum2;
int iNum2 = 100;
bNum2 = (byte)iNum2;
* 연산시 형변환 일어남!!
연산할 때 자동으로 int로 변환되어 계산된다. 즉 char, byte, short를 이용한 계산은 자동으로 int로 변환되어 계산이 이루어짐!! 즉 연산할때는 CPU가 연산하기 좋은 int로 바꿔어서 계산하기 때문에 byte, short의 의미가 별로 없다.
short s1 = 10;
short s2 = 20;
short s3 = s1 + s2; // 계산할 때 int로 계산됨. Type mismatch 오류 발생!
//short s3 = (short)s1 + (short)s2; (x)
//short s3 = (short)(s1 + s2); (o)
//int s3 = s1 + s2; (o)
* 실수형 결과가 발생하는 연산은 최소 하나 이상의 실수형 데이터가 필요함
double dValue = 8/3; // 2.0이 나옴
// 아래와 같이 사용하기
double dValue = 8d/3;
double dValue = 8/3.0; 로 사용 // 또는 8.0/3
3. 연산자
1. 산술연산자 ( + - * / % )
2. 비교연산자 ( ==, !=, >, <, >=, <= )
- boolean 타입으로 결과를 생성
3. 대입연산자 ( = )
- 산술연산자 + 대입연산자 -> 복합 대입 연산자 ( +=, -=, *=, /=, %= )
4. 증감연산자(단항연산자) ( ++A, A++, --A, A-- )
- 전위연산 : 해당 변수의 값을 사용하기 전에 처리 ++A, --A
- 후위연산 : 해당 변수의 값을 사용하고 처리 A++, A--
5. 논리연산자 ( && AND 연산자, || OR 연산자, ! NOT 연산자 )
- 논리표
A | B | && | || |
T | T | T | T |
T | F | F | T |
F | T | F | T |
F | F | F | F |
A | !A |
T | F |
F | T |
* 단락 회로 평가 : 논리 곱 연산과 논리 합 연산을 할 때 두 항을 모두 실행하지 않더라고 결과 값을 알 수 있는 경우에, 나머지 항은 실행되지 않음!!!!
6. 삼항(조건)연산자 ( (조건식) ? 값1:값2 -> 참일 경우 값1이, 거짓일 경우 값2가 반환됨. true, false 값 반환받을 때는 조건식만 사용하기!)
'1. 프로그래밍 > 1-2. Java' 카테고리의 다른 글
JAVA - [ JAVA에서 JS 코드 사용 ] (0) | 2022.05.12 |
---|---|
Java - [ Jsoup 이용한 크롤링 ] (0) | 2022.05.02 |
Java - [ Json Simple 라이브러리 (JSON형태로 만들기) ] (0) | 2022.05.02 |
Java - [단축키 / Basic] (0) | 2022.02.23 |
Java - [Java 설치 / eclipse 설치] (0) | 2022.02.23 |