Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 도전기

[국비지원] 12일차 - Primitive Type 본문

개발공부/TIL

[국비지원] 12일차 - Primitive Type

jnnjnn 2024. 2. 20. 23:33

 

오늘은 변수의 기본 자료형과 참조 타입에 대해 배웠다.

 

변수 선언

변수는 변수를 선언하며 사용할 수 있다. 변수 선언은 어떤 타입의 데이터를 저장할 것인지 변수 이름이 무엇인지 결정하는 것이다. 변수를 선언하고 값을 대입하면 이 값은 메모리에 할당되고 , 저장된다.

 

정수 타입

정수의 타입은 다음과 같이 5개이다.

 

byte, short, int, long은 모두 부호 있는(signed) 정수 타입이므로 최상위 bit는 부호 bit로 사용되고 나머지 bit는 값의 범위를 결정한다.

 

문자 타입

자바에서 문자 리터럴은 유니코드로 변환되어 저장된다.

유니코드가 정수이므로 char 타입도 정수 타입에 속한다. 그렇기 때문에 char 변수에 유니코드 숫자를 직접 대입할 수도 있다.

 

이때 2btye를 넘어가는 유니코드는 에러가 나게 된다.

그러므로 String에 담아서 다음과 같이 출력할 수 있다.

 

int o = 0x1f607;
        char[] emoji1 = Character.toChars(o);

        String emojis = new String(emoji1);
        System.out.println("emojis =" + emojis);

 

실수 타입

 

 

실수 타입은 부호 + 지수 + 가수 부분으로 이루어진다. 이는 근사값이기 때문에 약간씩 다른 값이 출력될 수 있다.

 

이를 방지하기 위해서  BigDeciaml을 사용할 수 있다.

BigDecimal d = new BigDecimal("0.1");
        BigDecimal e = new BigDecimal("0.2");

        BigDecimal f = d.add(e);

        System.out.println("f = " + f);

 

 

논리 타입

논리 리터럴은 true와 false 이다.

 

 

문자열 타입 (참조 타입)

큰따옴표(")로 감싼 문자들을 문자열이라 한다.

 

문자열에서는 이스케이프 문자들을 사용해서 줄바꿈을 해주거나 문자열 안에서 큰따옴표들을 사용할 수 있다.

이는 매우 번거롭기 때문에 자바 13부터는 다음과 같은 텍스트 블록 문법을 제공한다.

(이스케이프하거나 라인피드를 할 필요가 없다)

 

String str = """

""";

 

또, 문자열을 변수와 조합하여 사용할 때 다음과 같이 덧셈 연산자로 연결해주어야 하기 때문에 매우 번거롭다.

 

  String name = "jane";
        String age = "30";

        // my name is jane and age is 30

        String desc = "my name is " + name + " and age is " + age;
        System.out.println(desc);

 

 String desc2 = String.format("my name is %s and age is %s", name, age);
        System.out.println(desc2);

        String desc3 = STR."my name is \{name} and age is \{age}";
        System.out.println(desc3);

 

String.format을 사용하거나  // desc2

StringTemplate을 사용하여 // desc3

더 간단하게 표현할 수 있다. 단, StringTemplate은 자바 21부터 가능하다.

 

Var

변수는 var에도 담을 수 있는데, 변수의 타입을 할당되는 값으로부터 추론하기 때문에 선언과 동시에 할당해주어야 한다.

또, 지역변수에서만 사용 가능하다.

 

List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();
List<Map<String, Integer>> list2 = new ArrayList<>();
var list3 = new ArrayList<>();

 

var를 사용하면 위와 같이 코드를 생략하여 사용할 수 있다.

 

 

 

참고 블로그

https://jong99.tistory.com/5

https://crazykim2.tistory.com/480