변수의선언 :JVM에게 메모리를 할당해달라고 요청하는 작업
Type identifier;
타입 식별자
Type identifier = literal;
타입 식별자 = 데이터;
- 변수식별자규칙(클래스이름,변수이름,메쏘드이름)
- 영문이나,한글로시작 (숫자로 시작 불가)
- 특수문자사용불가(_,$ 는 사용가능)
- 키워드(예약어) 사용금지
Type
-논리형
타입: boolean
리터럴: true, false
-숫자형
1.정수형(byte, short, int, long)
byte(1바이트) : -128~ 127
short(2바이트): -32,768~32,767
int(4바이트):-2,147,483,648~2,147,483,647
long(8바이트): -9,223,372,036,854,775,808L ~ 9,223,372,036,854,775,807L
4바이트의 범위를 넘는 경우 L접미사를 붙여준다.
2진수 표현
'0b' 접두어 0b10101
8진수 표현
'0' 접두어 0257
16진수 표현
'0x'접두어 0xF0F
2.실수형(float,double)
float(4바이트): (3.4 * 10^-38)F ~ (3.4 * 10^38)F
double(8바이트): (1.7 * 10^-308) ~ (1.7 * 10^308)
e^10 = 10^10
E^25 = 10^25
e^-2= 10^-2
*타입 형변환
숫자형 데이터간에 타입 변환이 가능하다.
예를들어 int 타입 데이터는 long 타입 변수에 초기화시키면 자동으로 long타입으로 변환하여 초기화 시켜준다.
int i1=56;
long l1 = i1;
double d1 = l1;
이처럼 작은 데이터 타입을 큰 데이터 타입에 초기화 시킬 땐 자동으로 형변환이 이루어 진다. ( promotion)
하지만, 큰 데이터 타입 리터럴을 작은 데이터 타입에 초기화시키려면 강제 형변환이 필요하다.( casting)
double d= 90.34;
int i= (int)d;
double 타입이 int 타입보다 커서 double 타입 데이터를 int 타입 변수에 초기화 시키려면
(int)로 강제 형변환을 시켜줘야하고, 이 경우 double 데이터의 소수점이하는 버려지고
int i에는 90이 초기화된다. ( 데이터 손실 발생)
연산시에는 큰 데이터 타입으로 자동으로 변환된다.
int i = 100;
double d = 3.0;
double result = i+d; // 103.0
int 타입 i와 double 타입 d의 합은 더 큰 데이터 타입인 double로 변환된다.
double dresult1 = 1.0/2;//리터럴을 double로 해주면 연산결과도 double로 반환 0.5
double dresult2 = (double)1/2; // 0.5
int 데이터끼리 / 나누기 연산을 하면 몫만 반환하지만
double 데이터가 있으면 연산 결과도 double타입으로 자동 형변환이 되어 소수점 이하까지 모두 반환한다.
- 문자
타입: char
리터럴: 'f' 싱글쿼테이션으로 표시
문자타입은 유니코드에 일치하는 숫자타입으로 변환 가능
char c1= 'A';
char c2= 65;
char c3= '가';
char c4= 44032;
char c5= 0xAC00;//16진수
char c6= '\uAC00'; // \ u 유니코드 표시
char c7= '1';
char c8= 49;
char c9= '㎣';
연산자
+ 더하기
- 빼기
* 곱하기
/ 나누기(몫)
% 나누기(나머지)
++ 1증가 연산자
-- 1감소 연산자
j=5;
j++; //6
j--; //4
++와 --의 위치는 연산의 순서를 나타낸다.
변수 앞에 연산자가 있으면 코드를 실행할 증감연산을 먼저 하고 코드를 실행한다.
++j;
--j;
비트연산자
<< , .>>
<< 왼쪽으로 1비트 민다. ( ==*2)
>> 오른쪽으로 1비트 민다. ( ==/2)
1을 비트 형식으로 표현하면 00000000/00000000/00000000/00000001
1 >> 1 연산을 하면
00000000/00000000/00000000/00000000 이 되어 결과는 0을 반환한다.
1 << 1 연산을 하면
00000000/00000000/00000000/00000010 이 되어 2를 반환한다.
1 << 2 연산은 1을 왼쪽으로 2번 민다
00000000/00000000/00000000/00000100 이 되어 4를 반환한다.
즉 i << n 연산은 i에 2를 n번 곱한 값을 반환하게 되고
i >> n 연산은 i에 2를 n번 나눈 값을 반환하게 된다.
관계연산자
대소 일치 비교 >> 논리형 데이터 반환
> , < , >= , <= , == , !=
'Java' 카테고리의 다른 글
Java 문법 기초 - 배열 (0) | 2023.10.06 |
---|---|
Java Annotation 만들기 (0) | 2023.09.13 |
Lombok @Builder 사용법 (0) | 2023.09.12 |
Java OOP(Object Oriented Programming) 객체지향 프로그래밍 기초 (0) | 2023.09.11 |
Java 기초문법 - 반복문, 조건문 (0) | 2023.09.11 |