ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 자바의 자료형 (식별자, 자료형, 래퍼클래스, 형변환)
    Programming Language/Java 2021. 5. 27. 14:48

    이제 Java 진도가 거의 마무리되고 있어서 포스팅하며 전반적으로 정리해보려고 한다.

    정리는 학원에서 강사님이 나눠주신 자료 위주로..

     

    1. 식별자

    - 사물 등 모든 것에 대해 구별할 수 있는 이름(구성요소를 구별하는 이름)

    - 식별자로는 클래스명, 메서드명, 변수명이 있음

    - 식별자 정의 규칙

    (1) 첫 글자는 '_', '$', 영문 대문자,소문자 (한글 가능/숫자로 시작하지 않음)

    (2) 공백문자 및 특수문자 사용 불가

    (3) 아래와 같은 예약어 사용 불가

    (자바 예약어는 소문자로 이루어져 있고 대소문자를 구분하므로 TRUE, FALSE,NULL은 자바 예약어가 아님)

    출처: 강사님 pdf 자료

    2. 클래스 

    FYI: 클래스는 추후 자세히 정리할 예정

    - 첫 문자 항상 대문자여야함(첫 문자를 '_' 나 '&' 이외의 특수문자로 시작 불가)

    - 하나 이상의 단어가 모여 클래스명 지정할 때, 단어의 첫 문자들만 대문자로 표현

    - 클래스 이름은 반드시 파일명과 같아야함

    - 숫자로 시작 불가, 공백 포함 불가, 예약어 사용 불가.

    - 파스칼 케이스 기법으로 작성(첫글자가 대문자). 예를 들어 CustomerManager

     

    3. 주석

    - 주석문은 실제 프로그램에 영향을 주지 않으며 단지 소스코드의 기능이나 동작을 설명하기 위해 사용

    - 원시코드(java파일)의 컴파일 단계에서 제외되기 때문에 bytecode(class파일)에는 영향 주지 않음

    - 프로그래머 본인 혹은 다른 개발자들이 소스코드를 분석하기 쉽게 하기 위함

    - 참고: 주석 컴파일 할 때 javadoc Filename 이용

     

    4. 상수와 변수의 개념

    - 상수 : 고유 data 값이며 항상 동일한 의미 지님 = 한 번만 값을 저장할 수 있는 변수(변경 불가능)

    - 변수 : 상수를 저장 및 보관(변경 가능)

    - 리터럴 = 기존의 상수: 그 자체로 값을 의미하는 것(Java에서 정한 상수의 의미와 구별하기 위해 리터럴이라고 지칭)

    - 변수명 : 변수의 특정 이름

    - 자료형 : 변수의 크기 규정지어 미리 만들어 둔 크기의 약속(예를 들어 int, double, char 등)

     

    출처: 유튜브 남궁성의 정석코딩

     

    5. 기본 자료형 및 참조 자료형

    (1) 기본 자료형(primitive data type): 자바 컴파일러에 의해 해석되는 자료형

    (2) 참조 자료형(reference data type)

    - 기본자료형이 값을 직접 저장한다면, 참조 자료형은 메모리에 저장된 위치정보를 저장

    - 자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우(배열, 클래스, 인터페이스)

    - 기본 자료형 이외 모든 자료형들이 참조자료형에 속함

     

    6. 자바의 자료형

     

    (1) boolean

    - 유일한 논리 자료형

    - 1 byte이지만 1 bit만 사용하며 false, true 값을 가짐

     

    (2) byte

    - 크기: 1 byte

    - 자료형 입출력범위: -128 부터 127 까지

    - C언어에서는 초기값이 -129이면 127이지만 Java 에서는 안정성 때문에 컴파일 시 error 발생

    하지만 초기화 후 증감연산에 대해서는 C언어와 같음

     

    (3) short

    - 크기: 2 byte

    - 자료형 입출력범위: -32768 부터 32767 까지

     

    (4) char

    - 크기: 2 byte

    (주로 UNICODE 사용 - ch= 65, ch='A', ch='\n'

    - 아스키코드: 1 byte 문자를 표현, 0 ~ 255 문자범위

    - 유니코드(세계문자표준): 2 byte 문자를 표현, 0 ~ 65535 문자범위

    유니코드는 세계 여러 국가의 문자들을 표현하는데 어려움이 있어서 1 byte를 추가 할당해서 표현 

     

    (5) int (정수 자료형의 기본)

    - 크기: 4 byte 

     

    (6) float, double: 실수형 (double이 실수 자료형의 기본)

    - float 크기: 4 byte (double 보다 크기 작지만 표현할 수 있는 값의 범위가 넓음. 다만 오차 있을 수 있으며, 정밀도는 double이 더 높음)

    - double 크기: 8 byte

    FYI: 기본적으로 실수는 8 byte 사이즈의 double 에 저장되며, 이에 따라 4 byte 사이즈의 float 에는 저장되지 않아 오류 발생.

    4 byte로 저장하기 위해 식별자 F 혹은 f 사용해야함(대부분 소문자 f 사용하는 것 같음)

    예를 들어 float f = 3.14f 

     

    7. Wrapper Class

    - 기본 데이터형을 Class화 해줌

    - 기본 자료타입(Primitive type)을 객체로 다루기 위해 사용하는 클래스들을 래퍼 클래스라고 함

    - 래퍼 클래스로 감싸진 기본 타입값은 외부에서 변경할 수 없음

    - 다른 것들은 첫글자만 대문자 사용하면 되는데, int와 char 는 Integer와 Character 로 사용해야함

    - 래퍼 객체 내부의 값을 비교하기 위해 == 연산자를 사용할 수 없음. == 는 내부 값을 비교하는게 아니라 래퍼 객체의 참조 주소를 비교하기 때문이다. 따라서 equals 를 사용해야함

    - 래퍼 클래스와 기본 자료형의 비교를 원한다면  == 연산과 equals 연산 모두 사용 가능함

    - 예시 (8번부터 15번 line)

     

    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
    import java.lang.*;
    public class WrapperEx{
     
        public static void main(Stirng[] args) {
            byte a min = Byte.MIN_VALUE;
            byte a max = Byte.MAX_VALUE;
            char a min = Byte.MIN_VALUE;
            char a max = Byte.MAX_VALUE;
            int a min = Byte.MIN_VALUE;
            int a max = Byte.MAX_VALUE;
            float a min = Byte.MIN_VALUE;
            float a max = Byte.MAX_VALUE;
     
            System.out.println("byte = " + a_min + " ~ " + a_max);
            System.out.println("char = " + (int) b_min + " ~ " + (int) b_max);
            System.out.println("int = " + c_min + " ~ " + c_max);
            System.out.println("float = " + d_min + " ~ " + d_max);
        }
     
    }
     
    cs

     

    출처: coding-factory.tistory.com

     

    아래 블로그에 자세히 설명되어 있고 박싱, 언박싱 / 자동박싱, 자동언박싱에 대한 설명도 나와있음!

    [Java] 래퍼 클래스(Wrapper Class)란 무엇인가? (박싱, 언박싱) (tistory.com)

     

    [Java] 래퍼 클래스(Wrapper Class)란 무엇인가? (박싱, 언박싱)

     래퍼 클래스란(Wrapper Class)? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조..

    coding-factory.tistory.com

     

    8. 형 변환

    매번 형변환하는건 비효율적 -> 이럴 때 사용하는게 Generic(제네릭)..! 

    FYI: 추후 포스팅 예정이나, 제네릭 관련해서 미리 공부하고 싶다면 아래 블로그 참고. 재미있게 작성하신 것 같음

    [Java] #8-3 자바 Generic과 W.. : 네이버블로그 (naver.com)

     

    [Java] #8-3 자바 Generic과 Wrapper class - 1

    본 포스팅은 국비지원으로 모바일앱을 수강하며 배웠던 수업 내용을 기록한 포스팅입니다. 언어를 배우고 ...

    blog.naver.com

     

    (1) 프로모션(자동/묵시적 형변환 =업캐스팅): 작은 타입이 큰 타입으로 들어감

    - 묵시적 변환: 자료형의 크기가 서로 다른 자료의 연산 결과는 크기가 큰 자료형으로 자동 변환

    (2) 디모션(강제/명시적 형변환 = 다운캐스팅): 큰 타입이 작업 타입으로 들어감

    - 프로그래머가 cast연산자를 이용해 그 순간만 필요한  자료형으로 변경할 수 있음 = casting = 형변환

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    //프로모션 (자동)
    short a,b;
    a = b = 10;
    int c = a + b;
     
    //디모션 (명시해야함)
    int c = 0;
    short s = 10;
    c = (int)(10+3.5f);
     
    cs

     

    (3) 숫자 -> 문자열

    - String ss = String.valueOf(number);

     

    (4) 문자열 -> 숫자

    - byte b = Byte.parseByte(str);

    - short s = Short.parseShort(str);

    - int i = Integer.parseInt(str);

    - long lo = Long.parseLong(str);

    - float f = Float.parseLong(str);

    - double d = Double.parseDouble(str);

     

     

     

    댓글

Designed by Tistory.