'data type'에 해당되는 글 1건

  1. 2012.07.28 Data type, 연산자, 형변환

1. Data type : Data(값)의 구분(종류)
               -> 기준 :  형태, 크기

   -① Primitive Data type(기본 data type)-(ex :  숫자, 문자..(1개의 값 표현밖에 못함))
   -② Reference Data type(참조 data type)-(ex : class(class가 type, 객체(instance) 가 값이된다.)(여러개의 값이 합쳐져 하나의 값을 표현))
       ->Reference Data type의 기본 값은 NULL이다.
(null은 아무 객체도 참조하고 있지 않다는 뜻이다.)
* null값가진변수.xxx->실행시 오류 발생.(Null pointer exception발생)
 
2.타입

①실수 - double(8byte) - 실수형의 기본 type->소수점이하 16자리까지 표현(더 정밀하게 표현한다)
       float(4byte)  - 값F, 값f(ex :  50.2F, 50.2f)->소수점이하 7자리까지 표현

②정수형 - byte(1byte)
  short(2byte)
  int(4byte) - 기본형(20억을 기준으로 사용을 결정한다.)
  long(8byte)


* 10.5->1.05x10->0.105e2
* 1600000000000000 ->16*10^14->16E14

③ 논리형(Logical) - 참/거짓->type은 boolean

   값 : true,false

④ 문자 - char(2byte) : 1글자를 값으로 가진다.
                 값은 ''으로 감싼다.
                 2byte-unicode 한글자
  '\uAOSB(<-유니코드 한글자) -> unicode 1글자(16진수로 나타남)

*escape문자
'\t' - tab
'\n' - enter
'\\' - \문자(역슬러시)
'\'' - '
"\"" - "

3.String - 문자열(0~n글자)을 위한 Data type
         ->class -> Reference Data type
         - new 생성자() 하지 않고 객체 생성

* 사용:

1.변수 = "문자열";
  String s = "ABCDE";
2.변수=new String("문자열");
  String s = new String ("ABCDE");

* 두개의 문자열이 같은지 비교

boolean b = String객체.equals(비교String객체);
        b = "abs".equals("def");
 b = s1.equals(s2)l - s1,s2가 String type

* type이 다른 경우 작은 type 을 큰 type으로 바꾼후 계산한다.
* byte-short-int-long-float-double
      -char

*논리 연산자
- && ->and  true & true -> true 나머진 다 false   (&하나짜리는 뒤에도 검사, &&뒤에짜리는 하나가 참이면 바로 검사를 멈추고 나온다)
- || ->or   false | false ->false 나머진 다 true  (|하나짜리는 뒤에도 검사, ||뒤에짜리는 하나가 참이면 바로 검사를 멈추고 나온다)
- ^->xor  true ^ false -> true
        false ^ true -> true

        t^t->false
        f^f->false
- !->not

!true->false
!false->true

* 조건(삼항)연산자

조건 ? 피연산자1 :  피연산자2;
->boolean- true면 피연산자 1을 쓰고 false면 피연산자 2를쓴다.

int a = (x<5)? 20 :  50;
x가 5보다 작으면 20을 a에 넣고 아니면 50을 넣어라.

* cast 연산자(형변환) :  값의 type을 변환 시켜주는 연산자

- primitive Data type 간의 형변환 가능
- Reference Data type 간의 형변환 가능

사용법 :  (type)값; (int)10.5;

*자동형변환 : upcasting( 작은 type->큰 type)

*명시적코딩 : down casting(큰type->작은type)
 (변수보다 값이 더 큰경우 명시적 형변환이 필요하다)
* primitive Data type에서 형변환을 하면 Data가 깨질수도 있다.

ex :
class TypeCasting{
 public static void main(String[] args)
 {
  
  int var1=10+20; 
  System.out.println("10+20 = "+var1);//String +int->String+String
  
  double var2 = 20+30+25.7;
  System.out.println("20+30+25.7 = "+var2);//String +int->String+String
  
  long var3 = 365L*365*365*365*365*365*5;
 //  long var3 = (long)365*365*365*365*365*365*5;
  System.out.println("365*365*365*365*365*365*365*365*365*365*5 = "+var3);
                //캐스팅 연산 - 대입연산시에만 주의
         boolean b = 'a'<5;
  System.out.println(b); //false나옴
  long I = 10;//(O)
 // int k = 20L;//컴파일 에러
  int l = (int)30L;
  System.out.println(k);//30나옴
  int h = (int)300000000000000000L; //
  System.out.println(h);//이러면 300000000000000000L이 값이 나오지 않음 따라서. 작은 값안으로 강제형변환 하는 것은 좋지 않음.
 }
}

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

switch문  (0) 2012.07.28
if문  (0) 2012.07.28
제한자, 캡슐화, 변수, this  (0) 2012.07.28
객체지향(oop)이라면 알아야할 개념  (0) 2012.07.28
this  (0) 2012.07.28
Posted by 조은성
,