[참조타입] 데이터 타입, 참조변수, 배열, 클래스

김담희·2021년 9월 8일
0

JAVA

목록 보기
1/12
post-thumbnail

| 데이터 타입 분류

자바의 데이터 타입에는 크게 기본 타입(Primitive Type) , 참조 타입(Reference type)으로 분류된다.
출처: 이것이 자바다

| 기본 타입 변수 & 참조 타입 변수의 차이

[기본 타입 변수]
int a1 = 20; // 기본형은 하나의 값만 저장할 수 있다.
double a2 = 100.0;
// 기본 타입 변수 - 실제 값을 변수 안에 저장

[참조 타입 변수]
String name = "JAVA" // 참조형은 여러 개의 메모리를 가지고 생성된다. ("."을 이용해서 확인 가능)
String class = "READ"
// 참조 타입 변수 -주소를 통해 객체 참조

| 메모리 사용 영역

참조 타입을 알기 전에 JVM(자바 가상머신)이 사용하는 메모리 영역 [OS에서 할당받은 메모리 영역]에 대해서 알아보겠습니다.

  • 메서드(Method) 영역

    • JVM 시작할 때 생성

    • 로딩 된 클래스 바이트 코드 내용을 분석 후 저장

    • 모든 스레드가 공유

  • 히프(Heap) 영역
    • JVM 시작할 때 생성
    • 객체/배열 저장
    • 사용되지 않는 객체는 Garbage Collector가 자동 제거

  • JVM 스택(Stack) 영역

    • 스레드 별 생성
    • 메서드 호출할 때마다 Frame을 스택에 추가 (push)
    • 메서드 종료하면 Frame 제거 (pop)

| null과 NullPointerException에 대해서

  • null(널)

    • 변수가 참조하는 객체가 없을 경우 초깃값으로 사용 가능

    • 참조 타입의 변수에만 저장 가능

    • null로 초기화된 참조 변수는 스택 영역 생성

  • NullPointerException

    • 참조 변수가 null 값을 가지고 있을 때, 객체의 필드나 메서드를 사용하려고 했을 때 발생

| String 타입


Strin 변수; // 자바는 문자열을 String 변수에 저장하기 때문에 String 변수를 우선 선언해야 한다.


변수 = "문자열"; // String 변수에 문자열을 저장하려면 큰 따옴표로 감싼 문자열 리터럴을 대입하면 된다.


String 변수 = "문자열"; // 변수 선언과 동시에 문자열을 저장할 수도 있다.|


String name;
name = "Java";
String hobby = "자바";

// 두 개의 String 변수를 선언하고 문자열을 저장한다.


| 배열 이란?

  • 같은 타입의 데이터를 연속된 공간에 저장하는 자료구조이다.

  • 각 데이터 저장 위치는 인덱스를 부여해서 접근할 수 있다.

| 값 목록으로 배열 생성


위 쪽 배열 생성을 값 목록 배열 "타입 [] 이름 = {};"을 이용해서 간편하면서 짧게 작성할 수 있다.

여러 가지 타입을 이용해서 출력이 가능하며, 쉼표를 기준으로 배열 목록을 생성할 수 있다.

| new 연산자로 배열 생성

  • 값의 목록을 가지고 있지 않을 때

  • 향후 값들을 저장할 배열을 미리 생성하고 싶을 경우

  • int [] arr = new int [] ← 괄호 안에는 배열 값의 개수를 적어준다.

  • new 새로운 메모리 구조를 만들 때 사용하며, 배열. 참조형에 사용된다.

| 타입 별 항목의 기본 값


| 배열의 길이

  • 배열에 저장할 수 있는 전체 항목 수

  • 배열은 주어진 타입의 크기의 값까지 출력 가능하다.

  • 아래와 같이 length를 이용해서 배열 길이의 값을 출력할 수 있다.

| 커맨드 라인 입력

public static void main(String[] args){...}
main() 메소드의 매개 값인 String[] args가 왜 필요한지를 알 수 있는 목차이다.

  • 처음에는 args 에는 아무런 값이 없는 상태이므로 호출 시, 오류가 발생한 것이다.

  • (x) Arguments - Program arguments 입력을 통해 값을 얻는다.

  • 입력 값 은 띄어쓰기에 의해서 메모리 배열값이 생선된다.

  • args는 0:hello / 1::world / 2:java 배열을 가지고 있다.

  • 원하는 위치에 배열을 입력하고, 값을 출력할 수 있다.

| 다차원 배열

  • 다차원 값을 입력할 때는 [][] 괄호를 2개 입력한다.
  • 입력한 다차원 2X3 행렬의 구조이다.

| 향상된 for문 (forEach문) - for문과 비교

  • 인덱스를 이용하지 않고 바로 항목 요소 반복

  • 두 가지 방법 모두 사용 가능하나, 때마다 하기 하기 좋은 방법을 이용하는 것이 좋다.

자바에서 빠질 수 없는 참조 타입 - 데이터 타입, 참조 변수, 배열, 클래스

과정들을 통해서 익히는 배움의 즐거움을 알아가게 되었을때,
그때야 비로소 마음에 평화가 찾아오는 거 같아요.

0개의 댓글