Steady Blog

2. 자바의 자료형 본문

Programing/Java

2. 자바의 자료형

우유먹고쑥 2012. 8. 23. 10:58

*자바의 자료형

기업에서 바라는 인재는 팀과의 융합이 잘 되는 사람이다.

ASKII CODE 생성 배경

1. 알파벳 및 특수문자를 합한 숫자가 127개 2의 7승 000 0000 만으로 생성됨 - ANSI
2. 유럽으로 전파 - <ISO-8859-1> 표준화
3. 아시아권으로 전파 -> 2Byte로 변홤 = 2의 16승 0000 0000 / 0000 0000
고로 UniCode 완성

 

-- 배경지식이 너무 부족한거 같다. 공부좀 하자.

영어도 중요하지만, 주말엔 배경지식을 쌓아야 할듯...

-- 자료형을 왜 배우는지에 대해서 공부해야함.

자료형의 생성 배경을 공부해보자.


 

 

 

1. 식별자  - <무언의 약속>

 1) 식별자   - 사물을 구분하는 것이다.

 2) class : 첫글자는 대문자로 시작

 

 3) 변수/ 메서드(함수) 소문자로 시작

      변수 () 없음/ ()는 메서드에만 있음.

    ※ 변수 : 값이 변할수 있는 수.

    ※ (Output(Return value)) 메서드 (Input (Parameter, argument))

   여기서 잠깐!

    Argument : 인자 - 간접 전달.

    Parameter : 매개변수 - 직접 전달.

    Main : 프로그램의 시작점을 알수 있음.

 

 4) 상수 : 전체가 대문자 

    ※ 상수 : 값이 항상 같은 수.

   - 상수는 한번 정하면 접근 하는 것만으로도 오류가 발생한다.

       (여기서 접근이라 함은 값의 변경을 하기 위해 접근을 하는 것을 의미한다.)

 

 5) 주석 - 단지 소스코드의 기능이나 동작을 설명하기 위해 사용되는 것.

    사용법  = //(단행 주석) , /* */(다행 주석) , /** */ (javadoc 문서화 주석 / 독주석)

    javadoc 주석의 장점  =  HTML의 문법을 사용하여 javadoc를 만들때 사용하는 주석이다.

   독주석은 메소드의 기능을 설명하는 것이 주된 목적이다.

   독주석 -> 지금 당장은 크게 느껴지는게 없겠지만, 훗날에 필요한 주석인듯 싶다. 

 


 /**
      <font color="navy" size ="5">
      "go for it !"                                                  독주석 - doc를 이용해서 볼수 있음.
      </font>
      출력하는 클래스~!
*/
public class CommentEx{
 public static void main(String[] ar){
       //화면에 출력 - 줄 주석 처리
       System.out.println("go for it!!");
       /*
        이렇게 하면 여러줄이 주석처리 됩니다.
       */
 }
}


6) 기본 자료형과 참조 자료형

7) 자바의 자료형

 

 

    1. blloaen = true와 false 만 기억하는것

             0000 0000 => False로 정의

             0000 0001 => True로 정의

 


public class BooleanEx{
 public static void main(String[] ar){
  boolean b = true;
  /*
   bllolean b; - 변수의 선언
   b = false; - 값을 처음 넣는 것 = 변수의 초기화
   ....
   b = true; - 값을 바꾸는 것 = 값의 할당.
  */
  System.out.println("변수 b의 값 : " + b); //+의 의미는 문장을 이어 쓰라는 것.
 }
}

//blooaen 에는 int형이 들어가서는 안된다.

//ex ) boolean b = 0; 이것은 오류


 

    2. 문자형 char => Unicode를 쓸려면 \u를 써야함.

 


Char형

public class CharEx{
 public static void main(Sting[] ar){
  char ch1 = 'A'; char ch2 = '\u0041';
  System.out.println("ch1 + ch2 = "+ch1 + ch2); //AA가 출력
  System.out.println("ch1 + ch2 = " (ch1 + ch2)); 
  //ch1 0100 0001                              문자는 실제로 이진수로 기억
  //ch2 0100 0001 +                           그럼으로 계산하라고 하면 계산을 해서
  //새로운 값은 = 1000 0010 = 130        숫자로 기억하게 됨.
  System.out.println("ch1 + ch2 = " + (char)(ch1+ch2));  //?가 나옴 ?는 아스키 코드가 아니다.

                                                                             // 아스키 코드 값을 초과 하기 때문이다.
 }
}


    3. 정수형 자료 - 음수에 대해서 나오기 시작함.

   ㄱ. 음수의 표현이 필요해짐

      - 부호와 절대값에 의한 음수표현 방식.

          8 bit에서 맨앞자리를 0,1의 차이로 -/+를 구분

          => 이때 발생한 것이 1의 보수와 2의 보수.

   ㄴ. 표현 범위에 대한 공식이 나옴.

           -128 ~ 127까지 0이 양수에 포함되있기 때문에 128까지가 아니게 된 것.


Byte형

public class ByteEx{
 public static void main(String[] ar){
  byte bb = 127; //-128~ 127
  //자바에서 변수를 초기화 할때는 그 변수의 표현범위를 초과할수 없다.
  ++bb; //bb = bb+1  : bb = -128로 됨 Gray_Code를 생각하자.

            이것을 보면 초기화만 빼면 표현범위를 넘어갈수 있다는 것이다.

 <궁금증!>

    bb++는 된다. 그러나 bb = bb+1은 안된다. 이유는? 다음 강에서.
  System.out.println("byte bb = " +bb);
 }
}


short형

public class ShortEx{
 public static void main(String[] ar){
  short s; //변수의 선언
  s = 1;
  //자바에서의 변수는 반드시 초기화 해야 한다.
  System.out.println("short s = "+s);// 에러 발생
 }
}


 

     4. 실수형 자료 - 근사값.

 


Float형

public class FlootEx{
 public static void main(String[] ar){
  float var1,var2;
  var1 = 3.4f;   //f를 사용한 이유는 float를 설명해주기 위해서이다.

ex) Long형은 long val = 10L로 사용함.
  var2 = 55.55;  //오류 발생 왜냐면 자바에서 기본형은 double형이기 때문이다.
  System.out.println("var1의 값 : "+var1);
  System.out.println("var2의 값 : "+var2);
 }
}


 

 5. Wrapper Class : 기본 데이터형의 Class화

byte => Byte

short => Short

int => Integer

long => Long

float => Float

double => Double

boolean -> Boolean

char -> Character


import class WrapperEx{
 public static void main(String[] ar){
  byte a_min = Byte.MIN_VALUE;
  byte a_max = Byte.Max_VALUE;
  char b_min = Character.MIN_VALUE;
  char b_max = Character.MAX_VALUE;
  int c_min = Integer.MIN_VALUE;
  int c_max = Integer.MAX_VALUE;
  float d_min = Float.MIN_VALUE;
  float d_max = Float.MAX_VALUE;
  
  System.out.println("byte = "+a_min + "~" + a_max);
  System.out.println("char = "+(int)b_min + "~" + (int) b_max);

//int 가 붙는 이유가 NULL값 때문이라는데 잘 모르겠어..
  System.out.println("int ="+c_min +"~"+c_max);
  System.out.println("float = "+d_min +"~"+d_max);
 }
}


 8. 형변환

 

 기준점은 손실의 유무.

디모션은 Casting 연산자임

 

묵식적 변환/ 명시적 변환 정리할 필요있음.

숫자를 문자열로

- String ss = String.valueOf( number );

문자열을 숫자로

- int i = Integer.parselnt(str);