Chap 02. 배열과 문자열

    1. 배열 

    배열

    : 공통 이름으로 참조되는 자료형의 모습(정적 데이터 구조)

     

    배열의 필요성

    자바 프로그램에서 학생 100명이 시험 점수를 저장하는 경우

    이를 수행하기 위해 100개의 변수에 각각 100명의 점수를 저장해야 함.

    모든 변수에 다른 이름을 할당할 필요 없이 배열의 인덱스를 통해 각각의 변수를 엑세스 가능한 배열을 사용함.

     

     

    배열의 개념

    배열은 같은 유형의 데이터를 모아둔 집합(모음)

     

     

    ⭐ 배열을 사용할 때 중요 사항

    • 모든 빼열은 동적으로 할당됨
    • 배열의 길이는 .length로 계산함
    • 배열 변수는 자료형 뒤에 대괄호([ ])를 사용하여 다른 변수와 같이 선언 가능함.
    • 배열 내부의 변수는 인덱스 0부터 시작함 (0에서 n-1)
    • 배열은 정적 필드, 지역 변수 또는 메서드 매개변수로도 사용 가능함.
    • 배열의 크리는 long이나 short가 아닌 int 값으로 지정해야 함.
    • 배열의 슈퍼 클래스는 Object임
    • Cloneable 및 java.io.Serializable 인터페이스는 배열로 구현됨

     

     

     

     


     

    2. 1차원 배열과 2차원 배열

    1차원 배열

    • 1차원 배열 초기화
      • 배열을 선언하고 초기화할 때 배열의 요소를 직접 설정함 : { }
      • 배열 선언문에서 중괄호({ }) 안에 요소를 나열함으로써 초기화된 배열을 만듦
      • 만약 중괄호 안에 요소를 넣지 않으면 길이가 0인 배열이 생성됨

    1차원 배열의 두 가지 초기화 방식

     

     

     

     

     

    2차원 배열

    • 2차원 배열 선언:
      • int[][] my Arr = new int[3][4];
      • 다차원 배열은 1차원 배열과 매우 유사하지만, 행과 열이 여러 개임
      • 2차원 배열은 데이터가 행과 열에 저장되는 표 형식으로 데이터를 나타냄.

    2차원 배열 선언

     

     

    • 2차원 배열 초기화
      • 배열 선언과 초기화 시 각 내부 중괄호는 하나의 행을 나타냄
      • 선언과 동시에 값을 선언하고 할다하여 초기화할 수 있음.

    2차원 배열 초기화

     

     

     

     

     

     

    ⭐ 2차원 배열의 합 실습

     

     

     

     

     

     

     

     


    3. 문자열

    문자열의 개요

    • 문자열은 쉽게 말해 문자의 배열임
    • 문자열은 String 클래스의 객체임

    JAVA 문자열 선언

     

     

     

    사용방법

    :일반 할당 / 동적 할당

    • 일반 할당 : String s1 = “Java”;
    • 동적 할당 : new 키워드를 이용하여 문자열을 메모리에 동적으로 할당함
    • String myStr = new String(“Hello World”);

    문자열 선언

     

     

     

     

    문자열 저장(스택 및 햅) 실습

    • String 객체의 값은 불변
    • String은 스트링 풀에 저장(문자열 창고)
    • 문자열은 “Java” 문자열은 JVM이 해당
      •  문자열을 힙 영역의 스트링 풀에 저장ᆞ관리
    • 스트링 풀 저장소를 사용함으로, 매번 같은 문자열을 쓸 때 새로운 객체를 만들지 않아서 메모리의 효율적 관리와 객체 생성 비용을 줄임

     

     

     

     

    ⭐ 자바 메모리 구조

    • 메서드 영역
      • static 영역이라고 하며 전역 변수와 저적 멤버변수(Static 변수)가 저장되는 영역
    • 스택(Stack) 영역
      • 지역변수, 인자값, 리턴값이 저장되는 영역
      • 메서드 안에서 사용되는 기본 자료형(byte, int, double, char 등) 변수들이 값과 함께 저장
      • Heap 영역에 생성된 객체들을 참조하는 주소값이 할당
      • 정적으로 할당되는 메모리 (LIFO)
      • main 함수가 들어감
    • 힙(Heap) 영역
      • 모든 인스턴스 변수(객체)들이 저장되는 영역
      • new를 사요하여 객체를 생성하면 힙 영역에 저장
      • 메모리 영역이 동적으로 할당되고 해제되며 낮은 주소에서 높은 주소로 할당
      • 애플리케이션의 모든 메모리 중 스택에 있는 데이터를 제외한 모든 부분
      • 모든 Object 타입(String, Integer, ArrayList 등)은 힙 영역에 생성

     

    자바 메모리 구조

     

     

     

     

     

     

    string 클래스의 메서드

    string 클래스의 메서드

     

     

    'Java' 카테고리의 다른 글

    Chap 04. 상속과 다형성  (0) 2024.04.22
    Chap 03. 클래스/객체  (0) 2024.04.22
    Chap 01. 객체지향 프로그래밍  (0) 2024.04.20
    JAVA 배열의 기초와 다차원 배열  (0) 2024.01.14
    Java 조건문 & 반복문  (0) 2024.01.12

    댓글