728x90

변수의선언 :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번 나눈 값을 반환하게 된다. 

 

 

관계연산자 

대소 일치 비교 >> 논리형 데이터 반환 

> , < , >= , <= , == , !=

+ Recent posts