본문 바로가기
Java/Java 이론 정리

[Java] 2일차: 변수_데이터형/변수 선언 및 초기화

by ProSeraphina 2020. 6. 16.

데이터형(자료형, datatype): 메모리의 크기 지정(범위를 보고 가장 큰 것을 기준으로 지정)

((기본형)): 자바에서 제공하는 메모리 크기

 1. 정수형
   - byte (0,1을 8개 저장) => 8bit(1byte)

     : 웹에서 주로 사용(파일 읽기, 파일 쓰기, 파일 업로드, 파일 다운로드, 네트워크 전송 
     11111111 = -128 / 01111111 = 127 (-128~127 저장)
 
   - short (0,1 16개 저장, 16bit=2byte)
      1111 1111 1111 1111 = -32768
      0111 1111 1111 1111 = 32767
        => C언어와 호환가능


   - int(평상시에 사용하는 모든 정수는 컴퓨터에서 int로 인식) => default
       (0,1 32개 저장, (약 21억 4천) 4byte: 속도면에서 제일 유리)
       1111 1111 1111 1111 1111 1111 1111 1111
       0111 1111 1111 1111 1111 1111 1111 1111
      => 자바 코딩의 정수 대부분은  int 사용
    - long(0,1 => 64개 저장공간, 8byte): long a=10L(l)

       - 약 21억 4천 이상: 빅데이터, 금융권, 주식 등에서 사용.
  
 2. 실수
    - float(4byte, 소수점 8자리)
    - double(default, 8byte, 소수점 16자리)
      ex) float f = 10.5 : error

           4byte    8byte

           --> double f=10.5 or float f=10.5f 로 수정
          저장공간이 첨부할 값보다 크거나 같아야 함. 

 

 3. 문자
   - char (0,1 => 16bit) : 음수 없이 양수만, 0~65535
     : 문자마다 고유 번호를 가지고 있음.
         ex) 'A' = 65, 'a' = 97, '1' = 49

     - 알파벳 범위: (대문자: A 65~Z 90), (소문자: a 97~z 122)

     - 한글 범위: 가~힣
     - 1byte: 싱글바이트(아스키 코드)

       2byte: 멀티바이트(유니코드) ← Java(∵한글 사용 가능)


 4. 논리
   - boolean(1byte) 

     : true/false 저장
       → login, id check 등에 사용
 ** ((참조형)) 문자열 String
*** 메모리 크기 비교
    byte < short < int < long < float < double < String
              char                  

     (항상 실수>정수, 나타낼 수 있는 숫자 범위가 더 크기 때문)

 

데이터형 실습

변수: 필요에 따라 변경해서 사용할 수 있는 메모리 공간.

       메모리에 저장 → 프로그램이 종료되면 자동으로 메모리에서 사라짐

  1. 종류

          - 1개의 데이터를 저장하는 공간: 변수

           - 같은 타입 여러 개를 저장하는 공간: 배열(연속적으로 메모리에 저장→인덱스)

           - 다른 타입 여러개를 저장하는 공간: 클래스┌ 변수로만 사용(사용자 정의 데이터형): 데이터형 클래스

                                                                   └ 기능만 설정: 액션 클래스

 

          * 지역변수: 메소드 내에 선언된 변수. 블록{ } 안에서만 적용

        **전역변수: 클래스 내 적용)

 

  2. 용도: 메모리 주소에 붙인 이름으로, 저장된 데이터를 쉽게 찾기 위한 별칭.


  3. 선언:
저장해야 되는 데이터가 존재할 때 이용, 반드시 초기값을 설정해야 함 
     형식) 데이터형 변수명; 
        - 변수 한 개 설정

          i) 키보드로 입력을 받거나, 파일에 있는 데이터 읽을 때

             int 점수; 
             점수=100; (의미: 메모리(RAM)에 4바이트 메모리를 확보하고, '점수'에 정수 100을 저장해라.)
          ii) 직접 입력할 때

              int 점수=100;
              
        - 변수 여러 개 설정
             int a=0; 
             int b=0; 
             int c=0; 

             int a,b,c; 
             int a=0, b=0, c=0; 

   4. 초기화 
     1) 정수형:
 byte, short, int: 0 / long: 0L(l)

     2) 실수형: float: 0.0F(f) / double: 0.0(D/d) 

     3) 문자형: 'A' ( '' ==> error) 

     4) 논리형 : boolean(true/false)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
public class 자바변수초기화방법 {
 
    public static void main(String[] args) {
  //(선언과 동시에 초기값 부여) 주로 관리자용(admin)
    // 1)직접 처리
        int a=100;
        System.out.println("a="+a);
    
  //(선언하고 나서 나중에 초기값 부여) 주로 사용자용(user)=>더 많이 쓰임        
   // 2)선언 후 키보드로 데이터 입력 받아서 저장
        int b;
        b=200;
        System.out.println("b="+b);
        
   // 3)임의의 수 저장(랜덤): 게임, 로또
        int c;
        c=(int)(Math.random()*100)+1//형 전환 (double->int), random은 원래 double
                                      // 0.0~0.99 -> *100: 0.0~99.0 -> int: 0~99 -> +1: int 1~100 :난수발생 가공(연산처리)
        System.out.println("c="+c);
                
   // 4)입력창을 만들어서 값을 받는 방식
        int d;
        Scanner scan=new Scanner(System.in); //System.in: 키보드 입력값을 읽어와라
        System.out.println("정수입력:");
        d=scan.nextInt();
        
        System.out.println("d="+d);
    
    }
}
cs

댓글