공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

변수(Variable) : 값을 저장하기 위한 공간
상수(Constant) : 값을 한 번만 저장할 수 있는 공간(수정 불가능)
리터럴(Literal) : 값 자체를 의미. 상수 풀(constant pool)에 있음

 

변수

  값을 저장할 수 있는 메모리 공간. 변수를 선언하면 메모리에 변수 타입에 맞는 메모리가 할당되고, 변수의 이름을 통해서 제어할 수 있다.

 

 

  ■ 변수의 선언

  변수타입 이름 =

  변수의 초기화란 변수를 사용하기 전에 값을 미리 저장해 놓는 것을 말한다. 초기화하지 않은 상태로 값을 불러오면 쓰레기 값을 불러오기 때문에 사용하기 전에 미리 초기화해놓아야 한다.


[참고] 변수의 명명 규칙

1. 대소문자 구별, 길이에 제한 X
2. 예약어를 사용해서는 안된다.

3. 숫자로 시작해서는 안된다.
4. 특수문자는  _  $  만 사용 가능

 

 

  ■ 변수의 타입

  • 기본형 : 실제값을 저장
    정수형 :  byte ,  short ,  int ,  long 
    실수형 :
     float ,  double

    문자형:
     char 
    논리형 :
     boolean 
  • 참조형 : 값이 저장되어 있는 주소를 저장
    ex) 기본형을 제외한 나머지 타입

 

  ■ 기본형의 종류와 크기

 

  • 논리형(boolean)  :  true ,  false  두 가지 값만 존재 (대소문자를 구분하기 때문에  True 와 다름)
  • 문자형(char)
    : 하나의 문자를 저장할 수 있다. 실제로는 문자의 유니코드(정수)가 저장된다.
    문자를 코드로 변환하는 것을 문자 인코딩, 그 반대의 과정을 디코딩이라고 한다.

    유니코드는 전부 양수(0 포함)이므로  0 ~ 65535 의 범위를 가진다. 

기본형의 종류와 크기

 

 

  ■ 특수문자

tab  \t 
backspace  \b 
form feed  \f 
new line  \n 
carriage return  \r 
역슬래시(\)  \\ 
'  \' 
"  \" 
유니코드(16진수)문자  \u유니코드  
ex)  \u0041 
  • 정수형(byte, short, int, long)
    : 크기마다 표현할 수 있는 값의 범위가 다르다. (하나의 비트를 부호 비트로 쓰고 나머지로는 값을 표현하는데 쓴다.)
  • 실수형(float, double) : 정수와 달리 부호와 지수, 가수 부분으로 나뉘어 저장된다.
     float 은 7자리,  double 은 15자리를 오차 없이 저장할 수 있다.(정밀도)

 

  ■ 변수가 저장할 수 있는 값의 범위

  • 정수형 :  -2^(비트수-1)  ~  2^(비트수-1) -1 이다.
  • char형 :  \u0000  ~  \uffff 

 

 

 

상수

  : 변수와 비슷하지만 값을 수정할 수 없다.

    변수 선언과 동일하게 하되, 앞에  final 을 붙이면 된다. 관례상 대문자로 선언한다.

     ex)  final int MAX_VALUE = 10; 

 

■ 리터럴과 접두사, 접미사

  1. 정수형, 실수형
    접두어를 통해서 진수를 표현할 수 있다. 16진수는 0x 또는 0X, 8진수는  0을 붙인다.
  2. 정수형일 경우 접미사가 없으면  int ,  long 의 경우에는  l 이나  L 을 붙인다.
    실수형일 경우 접미사가 없으면  double (d를 붙임),  float  f 를 붙인다.
  3. 문자형
  4. 문자 리터럴은 글자 하나를 의미하고   ' 로 묶는다.
    문자열 리터럴은 두문자 이상이고  " 로 묶는다

 

 

 

형변환(Casting)

  : 변수 or 상수의 타입을 다른 타입으로 변환하는 것

  (바꿀 타입) 피연산자로 하면 된다. ex)  (int)c 

  큰 타입에서 작은 타입으로 변환하는 경우 값의 손실이 발생할 수 있다.

 

  1.  자동 형 변환 

    : 컴파일러가 자동적으로 해주는 형 변환.

    서로 다른 두 타입 간의 연산에서는 표현 범위가 더 넓은 타입으로 자동 형 변환된다. (기존 값을 최대한 보존하는 방법으로 함)

  •  short   char 는 둘 다 2 byte지만 범위가 서로 달라서 어느 쪽이든 값 손실이 발생해서 서로 자동 형 변환되지 않는다.
  •  boolean 을 제외한 기본형들을 서로 형 변환이 가능하다.
  • 기본형과 참조형은 서로 형 변환이 X
  • 서로 다른 타입의 변수 간의 연산은 형 변환을 해야 하지만 값의 범위가 작은 타입에서 큰 타입으로의 형 변환은 생략가능

 

  2.  명시적 형변환 

    : 변수가 저장할 수 있는 값의 범위보다 큰 값을 저장하려는 경우에는 값 손실이 발생할 수 있어서 에러가 나는데 형 변환을 명시적으로 표시해주면 실수가 아닌 의도적인 것으로 판단하여 에러를 발생시키지 않는다.

 

 

 

출력 형식

   System.out.print  : 출력 포맷을 정할 수 있다.

  ex)  System.out.printf("%d년 %d월 %d일", 2019, 5, 20);  : 2019년 5월 20일 

 

*  printf() 의 지시자

 %b   boolean 형식으로 출력
 %d  10진(decimal) 정수 형식으로 출력
 %o  8진(octal) 정수의 형식으로 출력
 %x ,  %X   16진(hexa - decimal)형식으로 출력
 %f  부동소수점(floating-point)형식으로 출력
 %e  %E  지수(exponent) 표현식으로 출력
 %c  문자(character)로 출력
 %s  문자열(string)으로 출력
  • java에서는  char 타입을  %d 로 출력하려면  int 로 형 변환을 해야 출력할 수 있다.
  • 출력될 값이 차지할 공간을 숫자로 지정할 수 있다.
     5d  : 오른쪽 정렬
     -5d  : 왼쪽 정렬

 

 

 

+ Recent posts