프리미티브 타입, 변수와 배열 🎡

한꼬북·2021년 7월 9일
0

Java

목록 보기
4/7
post-thumbnail

목차 🎲

프리미티브 타입 (원시타입, 기본형타입)

프리미티브 타입과 레퍼런스 타입

프리미티브 타입

  • 값을 변수에 대입하여 사용함
  • 실제 값이 스택에 저장
  • 값이 없을 경우 기본 값이 들어감

    레퍼런스 타입
  • 프리미티브 타입을 제외한 나머지 타입들 (클래스, 인터페이스, 배열 등)
  • 실제 값을 가지고 있는 것이 아닌 값이 저장된 주소 값을 힙에 저장
  • 값이 없을 경우 null

리터럴

  • 변하지 않는 데이터
  • 데이터 값 그대로인 상수
  • 소스코드의 고정된 값

    내가 이해한 바로는 int a = 1; 에서 1이 리터럴 인 것 같다.
    음,, 타입에 따라서 리터럴 타입도 달라지게 됨!! 아래와 같이? 😉
char c = 'H';
String st = "hi"; 

변수 선언 및 초기화 하는 방법

  • 초기화는 변수에 대입 연산자를 통해 값을 대입해준다는 의미!
  • 초기화는 한번에 여러개 불가능! (아래 코드에서 A, B = "하이";)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 변수 선언
    String a;
    // 변수 선언과 동시에 초기화
    String b = "안녕";
    // 변수 선언 이후 초기화
    String c; 
    = "잘가";
    // 여러개의 변수 선언
    String A, B, C;
    cs

변수의 스코프와 라이프타임

스코프

  • 특정 변수에 접근하거나 그 변수가 유효한 범위, 영역
  • 일반적으로 {}안에서 선언된 변수는 해당 {}안에서만 유효함
public class Main{
    int a = 1;
    public void ex(){
    	int b = 2;
    }
}

위 코드에서 a는 ex 메소드 내에서 사용할 수 있고 b는 ex 메소드 밖에서 사용할 수 없음

라이프타임 (변수가 메모리에서 언제까지 살아있는지)

  • 인스턴트 변수, 클래스 변수, 지역 변수로 나눠짐
  • 인스턴트 변수는 클래스의 객체가 메모리에 남아 있을 때 까지
  • 클래스 변수는 static이 붙은 객체를 말하며 프로그램이 종료될 때 까지
  • 지역 변수는 변수가 선언된 {} 안에서 프로그램이 끝나기 전까지
public class Main{
    // 인스턴트 변수
    int a = 1;
    // 클래스 변수
    static int b = 2;
    public void ex(){
    	// 지역 변수
    	int c = 3;
    }
}

타입 변환, 캐스팅 그리고 타입 프로모션

타입 변환

  • 특정 값이나 특정 변수를 다른 타입으로 변경하는 것

    캐스팅
  • 큰 데이터 타입에서 작은 데이터 타입으로 변환하는 것
    프로모션
  • 작은 데이터 타입에서 큰 데이터 타입으로 변환하는 것
// 캐스팅
int a = 3;
short b = (short) a;
// 프로모션
short c = 2;
int d = c;

1차 및 2차 배열 선언하기

배열

  • 같은 타입을 가진 여러 값이 저장되는 순서(index)가 있는 변수

    1차 배열
int[] arr = {1, 2, 3, 4};
int arr[] = {1, 2, 3, 4};

2차 배열

int[][] arr = {{1},{1,2},{1,2,3},{1,2,3,4}};
int arr[][] = {{1},{1,2},{1,2,3},{1,2,3,4}};

타입 추론, var

타입추론

  • 변수의 타입을 정하지 않고 컴파일러가 알아서 변수의 타입을 대입된 리터럴로 추론하는 것

    var
  • Java 10 부터 생긴 var 구문으로 지역변수로만 선언할 수 있음
var map = new HashMap<String, Integer>();

이렇게 사용할 수도 있음,,, 사용할지는 잘 모르겠음,,(☞゚ヮ゚)☞

profile
오히려 좋아, 자 가보자고!

0개의 댓글