자바 자료구조#00. 자료구조란?

A Kind Dev·2022년 8월 14일
0

자바 자료구조

목록 보기
1/20

자료구조, 알고리즘?

자료구조

  • 컴퓨터가 처리할 데이터를 어떻게 구성하는지
  • 선형 자료구조
    데이터를 순서대로 한 줄로 나열
  • 비선형 자료구조
    연관성 있는 것끼리 묶어서 관리

알고리즘

  • 컴퓨터가 데이터를 어떻게 처리하는지
  • 데이터에 CRUD작업을 수행하기 위해서 처리하는 다양한 방법
    e.g. 데이터의 순서를 바꾸는 방법, 원하는 데이터를 찾아내는 방법, 추가하거나 읽을 때 순서를 정하는 방법 등

자료구조 + 알고리즘 = 컴퓨터를 통해서 하고 싶은 일들을 더 효율적으로 수행하기 위해 컴퓨터가 일을 처리하는데 유리한 방식을 찾는 것!


Java Data Type

컴퓨터는 CPU의 종류에 따라서 데이터를 표현하는 크기가 다르다.

  • 32bit 컴퓨터 : int = 4bytes
  • 64bit 컴퓨터 : int = 8bytes
    JAVA는 JVM(Java Virtual Machine)에서 수행되면서 CPU에 관계없이 JVM이 정해놓은 크기로 데이터를 사용

Mutable/Immutable

Mutable/Immutable

  • Mutable : 변경할 수 있는 값
  • Immutable : 변경할 수 없는 값
  • final이 붙은 primitive 값은 변경 불가 --> Immutable
  • final이 붙은 참조변수의 값은 참조 주소값은 불변, 변수가 가리키는 인스턴스 내용은 변경 가능

Immutable Reference

  • String 객체는 Immutable

  • String의 내용이 변경되는 경우 기존의 값이 변경되는 것이 아니라 새로운 인스턴스가 생성

  • 같은 내용의 문자열은 기존에 생성되었던 인스턴스를 재사용하게 되므로 같은 인스턴스를 가리킴

    String str1 = "Hello";
    String str2 = str1 + " World";
    System.out.println(str1 == str2); // false
    
    String str3 = "Hello";
    System.out.println(str1 == str3); // true
  • 일부 Wrapper 클래스 또한 Immutable 객체처럼 동작

    Integer i1 = 42;
    Ineger i2 = 42;
    System.out.println(i1 == i2); // true

    하지만 일정 범위의 값에 대한 인스턴스를 미리 만들어두고 재사용하는 것으로, 그 범위를 벗어나면 객체 재사용을 하지 못함

    Integer i3 = 100000;
    Integer i4 = 100000;
    System.out.println(i3 == i4); // false

출처 : 프로그래머스 스쿨 "[Java] 어서와! 자료구조와 알고리즘은 처음이지?"

profile
친절한 개발자

0개의 댓글