본문 바로가기
자바

자바 정리하기 - (1) 변수

by 16비트 2023. 1. 10.

1. 화면에 글자 출력하기 

System.out.print() // 괄호 안의 내용을 출력하고 줄바꿈을 하지 않는다. 
System.out.println() // 괄호 안의 내용을 출력하고 줄바꿈을 한다.

2. 덧셈 뺄셈 계산하기

System.out.println(5 + 3); // 8이 출력된다

3. 변수의 선언과 저장

변수란? 하나의 값을 저장할 수 있는 저장공간

변수를 선언하는 방법 : 변수타입 변수이름;

int x; // 변수의 선언 
x = 5; // 변수에 대입

4. 변수의 타입

분류 변수의 타입 설명
숫자 int 
long
정수를 저장하기 위한 타입(20억이 넘을 땐 long)
float 
double
실수를 저장하기 위한 타입 
(float는 오차없이 7자리. double은 15자리)
문자 char 문자를 저장하기 위한 타입
String 여러 문자를 저장하기 위한 타입

5. 상수와 리터럴

상수는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.

타입 앞에 키워드 ‘final’을 붙여주기만 하면 된다.

상수의 이름은 모두 대문자로 하는 것이 관례이며, 여러 단어로 이루어져있는 경우 '_'로 구분한다.

final int MAX_VALUE = 100; // 정수형 상수 MAX_VALUE를 선언

리터럴은 그 자체로 값을 의미하는 것이다.

 

6. 리터럴의 타입과 접미사

실수형 리터럴에는 접미사를 붙여서 타입을 구분하며, float타입 리터럴에는 ‘f’를, double타입 리터럴에는 'd'를 붙인다

int octNum = 010; // 8진수 10, 10진수로 8 
int hexNum = 0x10;  // 16진수 10, 10진수로 16

long big = 100_000_000_000L; // long big = 100000000000L;

float pi = 3.14f; // 접미사 f 대신 F를사용해도된다. 생략불가 
double rate = 1.618d // 접미사 d 대신 D를 사용해도 된다. 생략가능

7. 문자 리터럴과 문자열 리터럴

char 타입의 변수는 단 하나의 문자만 저장할 수 있어서 여러 문자(문자열)를 저장하기 위해서는 String타입을 사용해야 한다.

String str = ""  // OK. 내용이 없는 빈 문자열
char ch = ""  // 에러. '' 안에 반드시 하나의 문자가 필요
char ch =' '; // OK. 공백 문자로 변수 ch를 초기화

8. 문자열 결합

문자열 + any type ㅡ> 문자열 + 문자열 ㅡ> 문자열 
any type + 문자열 ㅡ> 문자열 + 문자열 ㅡ> 문자열

9. 기본형과 참조형

자료형은 크게 기본형과 참조형 두 가지로 나눌 수 있는데, 기본형 변수는 실제 값(data)을 저장하는 반면,참조형 변수는 어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖는다.

 

- 기본형 : 논리형(boolean), 문자형(char), 정수형(byte, short, int, long). 실수형(float, double) 계산을 위한 실제 값을 저장한다. 모두 8개

10. 기본형의 종류와 범위

  1byte 2byte 4byte 8byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

 

- boolean은 true와 false 두 가지 값만 표현할 수 있으면 되므로 가장 작은 크기인 1 byte.
- char은 자바에서 유니코드(2 byte 문자체계)를 사용하므로 2 byte. 
- byte는 크기가 1 byte라서 byte.
- int(4 byte)를 기준으로 짧아서 short(2 byte), 길어서 long(8 byte), (short <ㅡ> long) 
- float는 실수값을 부동소수점(floating-point)방식으로 저장하기 때문에 float.
- double은 float보다 두 배의 크기(8 byte)를 갖기 때문에 double.

11. printf를 이용한 출력

소수점 둘째자리까지만 출력하거나 정수를 16진수나 8진수로 출력할 때 printf()를 사용하면 된다.

println()와 달리 printf()는 출력 후 줄바꿈을 하지 않는다. 줄바꿈을 하려면 지시자 ‘%n’을 따로 넣어줘야 한다.

지시자 설명
%d 10진 정수의 형식으로 출력
%x 16진 정수의 형식으로 출력
%t 부동 소수점의 형식으로 출력
%c 문자로 출력
%s 문자열로 출력

12. 화면으로부터 입력받기

import java.util.Scanner; // Scanner를 사용하기 위해 추가
class Scanner {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print ("두자리 정수를 하나 입력해주세요."); 
        String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
        int num = Integer.parselnt(input): // 입력받은 문자열을 숫자로 변환
        System.out.println("입력내용 : "+input);
        System.out.printf("num=%d%n", num);

13. 정수형의 오버플로우

4bit 2진수의 최소값인 ‘0000’부터 시작해서 1씩 계속 증가하다 최대값인 ‘1111’을 넘으면 다시 ‘0000’이 된다. 그래서 값을 1씩 무한히 증가시켜도 ‘0000’과 ‘1111’의 범위를 벗어나지 않게 된다.

 

최대값 + 1 ㅡ> 최소값 
최소값 - 1 ㅡ> 최대값

14. 타입 간의 변환방법

1. 숫자 ㅡ> 문자로 변환 - 숫자에 '0’을 더한다.
2. 문자 ㅡ> 숫자로 변환 - 문자에서 ‘0'을 뺀다.
3. 숫자 ㅡ> 문자열로 변환 - 숫자에 빈 문자열("")을 더한다.
4. 문자열 ㅡ> 숫자로 변환 - lnteger.parselnt() 또는 Double.parseDouble()을 사용한다.
5. 문자열 ㅡ> 문자로 변환 - charAt(0) 을 사용한다.

6. 문자 ㅡ> 문자열로 변환 - 빈 문자열 ("")을 더한다.

 

System.out.println(str.charAt(0) - '0'); // 문자 -> 숫자
System.out.println('3' - '0' + 1); // 문자 -> 숫자
System.out.println (Integer.parselnt ("3") + 1); // 문자열 -> 숫자
System.out.println("3" + 1); -> // 숫자 -> 문자열
System.out.println((char)(3 + '0')); // 숫자 -> 문자

'자바' 카테고리의 다른 글

자바 정리 - (3) 연산자  (0) 2023.01.17
자바 정리 - (2) 배열  (0) 2023.01.16

댓글