추후 업데이트 하겠지만, 잘못된 점이나 조언이 있으시다면 말씀 부탁드립니다. 감사합니다.
01. 자료형 Type
1. 기본 자료형
[ int / float / long / double / boolean / char / string ]
int a; -> 변수 a는 int 자료형 변수로서 정수값을 담을 수 있다
2. 사용자 정의 자료형
클래스 Car를 만들었다면, Car 자료형 변수를 만들 수 있다
benz라는 변수는 Car 자료형 변수로, banz에는 Car에 해당하는 값만 담을 수 있다
class Car { }
Car benz;
02. 데이터 타입의 메모리 크기
1. 기본형 변수
stack에 저장되며, 데이터(변수값)를 저장 (연산 가능)
- 정수형 : byte(8bit), short(2byte/16bit), int(4byte/32bit), long(8byte/64bit)
- 실수형 : float(4byte/32bit), double(8byte/64bit)
- 논리형 : boolean(8bit)
- 문자형 : char(2byte/16bit)
2. 참조형 변수
heap에 저장되며, 데이터가 저장된 주소(메모리의 위치)를 저장 (연산 불가)
- 문자열 String(char형 배열)
03. 기본형 데이터 타입의 저장 가능 범위 구글 검색
04. 변수 variable (변하는 값을 의미)
다음의 a, b를 말함. 하나의 값을 저장할 수 있는 메모리의 공간
String a;
int b = 1;
1. 변수명
- 자바 키워드와 같은 명으로 사용 불가하다
- 숫자로 시작 불가
- 특수 문자 사용 불가 (단, _(underscore), $ 사용 가능)
2. 변수선언
String a;
int b;
3. 변수에 값 대입
a = "Java";
b = 1;
4. 변수를 선언하면서 동시에 값을 대입
String a = "Java"; >> 해석 : String 자료형 변수 a에 "Java"라는 값을 대입한다
int b = 1;
05. 상수 constant 의 데이터 타입
다음의 a, b를변수에 저장되는 상수에도 데이터 타입이 있다
상수는 변하지 않는 값을 의미한다
1. 실수의 표현
float는 대입되는 상수 뒤에 F 표기, double은 생략
float a = 2.5; (error) → double a = 2.5; / float a = 2.5F;
F는 이 기호 앞의 숫자가 float 데이터 타입이라는 것을 명시적으로 표현하는 방법이다
2. 정수의 표현
int a = 2147483648; (error : Out of range) → long a = 2147483648L;
int의 최대 범위인 2147483647보다 크기 때문에 변수는 long타입이며,
대입대는 상수 역시 타입에 맞게 L을 표기한다
06. 형 변환 type conversion (casting)
타입을 다른 타입으로 바꾸는 것으로, 기본 타입 간에 자유롭게 변환을 수행할 수 있다
다른 타입끼리 연산을 하고자 한다면 형 변환하여 같게 만든 후 실행한다
메모리에 할당 받은 크기가 작은 타입에서 큰 타입으로는 형 변환은 생략할 수 있지만,
반대로 큰 타입에서 작은 타입으로 형 변환시에는 데이터 손실이 발생하며 오류가 난다
1. 자동 형 (묵시적 타입) 변환
크기가 작은 타입에서 큰 타입으로 변환할 때 자동 형변환 된다
데이터 손실이 최소화되는 방향으로 이루어진다
byte형 → short형 → int형 → long형 → float형 → double형
char형 ↗
int a = 1;
byte b = (byte) a;
2. 강제 형 (명시적 타입) 변환
사용자가 강제적으로 형 변환을 시키는 것으로 데이터 손실이 발생할 수 있다
- 변환 방법 : (변환할타입) 변환할데이터
int a = 1, b = 4;
double result1 = a / b;
double result2 = (double) a / b;
07. 연산자 operator
1. 산술 연산자 arithmetic operator
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나눗셈 후, 그 나머지 값을 반환
int num1 = 8, num2 = 4;
System.out.println("/ 연산자 사용 결과 : " + (num1 / num2)); // 2
System.out.println"% 연산자 사용 결과 : " + (num1 % num2)); // 0
2. 연산자 우선순위 operator precedence
연산자가 여러가지 있을 경우, 먼저 처리할 연산자를 결정한다
i = 2 + 8 * 2;
위 연산자들을 우선순위 순으로 배열하면, *, +, = 순이므로 결과 값은 8이다
i = (2 + 8) * 2;
괄호()를 사용하여 순서를 지정하면, 결과 값은 5이다
3. 대입 연산자 assignment operator
= 오른쪽의 피연산자를 왼쪽의 피연산자에 대입한다
대입 연산자 = 는 산술, 비트 연산자와 함께 사용한다
int x = 1;
x += 5;
오른쪽의 피연산자 5를 왼쪽의 피연산자 x와 더한 후, 그 결과 값 6을 대입한다
x += 5는 x = x + 5와 같다. x는 1에서 6이 됐다
4. 증감 연산자 increment and decrement operators
피연산자를 1씩 증가 또는 감소 시킬 때 사용한다
++x 1을 우선 증가 시킨 후에 해당 연산 실행
x++ 해당 연산 실행 후에 1을 증가 시킴
--x 1을 우선 감소 시킨 후에 해당 연산 실행
x-- 해당 연산 실행 후에 1을 감소 시킴
5. 논리 연산자 logical operator
참(true)과 거짓(false)을 결정한다
&& (AND 연산) 식이 모두 참이면 참을 반환
|| (OR 연산) 식 중에서 하나라도 참이면 참을 반환
! (NOT 연산) 식의 결과가 참이면 거짓, 거짓이면 참을 반환
A(true), B(false)일 때,
A && B (false)
A || B (true)
!A (false)
6. 비트 연산자
http://tcpschool.com/c/c_operator_bitwise
'Web programming > JAVA' 카테고리의 다른 글
클래스를 jar 파일로 저장 / 사용을 위해 불러오는 과정 (0) | 2020.04.07 |
---|---|
[반복문 for] 알파벳 및 구구단 출력, 누적 연산 (1) | 2020.04.07 |
간략하게 자바 개념 정리 2 (0) | 2020.04.02 |
자바 언어의 구성 (1) | 2020.02.20 |
컴퓨터 프로그래밍 기본 개념 (0) | 2020.02.19 |