나의개발일지

변수 본문

언어/Java

변수

아. 이렇게 하면 될거 같은데.. 2024. 1. 21. 00:34
728x90


변수는 프로그램에서 데이터를 저장하는 그릇이고 Java의 기본적인 요소이다


타입지정

Java는 정적 타입 언어로, 변수의 데이터 타입을 선언해야 한다. 이는 컴파잉러가 변수의 타입을 미리 알 수 있도록 해준다. 이로써 코드에서 발생할 수 있는 타입 관련 오류를 방지한다

 

자바의 타입은 8개의 기본형타입과 참조형 타입으로 구분된다

타입 형 타입
논리형 boolean
정수형 byte
short
int
long
실수형 float
double
문자형 char

 

 

※ String은 기본형이 아닌 문자들의 배열인 문자열이므로 참조형이다.

 

인스턴스 맴버 변수의 특징

선언 위치

클래스 {} 영역에 선언

public class Person {
String name;
int age;
}

 

변수의 생성

객체가 만들어질때 heap에 객체별로 생서됨

 

변수의 초기화

타입별로 default초기화

 

변수에의 접근

객체 생성 후(메모리에 올린후) 객체 이름(소속)으로 접근

 

소멸 시점

Garbage Collerctor에 의해 객체가 없어질떄

 

클래스 맴버 변수의 특징

변할 수 있지만 거의 변하지 않는다 = static (final 과는 다르다)

 

선언위치

클래스 {}영역에 선언되며 static 키워드를 붙임

public class Person {
	static String scientficName = "Homo Saiens";
	String name;
}

 

변수의 생성

클래스 로더에 의해 클래스가 로딩 될 때 heap에 클래스 별로 생성

 

개별 객체의 생성과 무관하며 모든 객체가 공유하게 됨(공유 변수라고도 불림)

static으로 선언했으면 레퍼런스 접근이 아니라 클래스로 접근

 

지역 변수 & 파라미터 변수

선언위치

클래스의 영역 {} 이외의 모든 중괄호 안에 선언되는 변수들

void call(String to){
	String beep = "띠";

	for(int i=0; i<3; i++){
   		System.out.println(beep);
    }
}

 

변수의 생성

선언된 라인이 실행될 때

 

생성 메모리 영역

stack의 메서드 프레임 내부

 

변수의 초기화

사용하기 전 명시적 초기화 필요

 

변수에의 접근 

외부에서는 접근이 불가하므로 소속 불필요

내부에서는 이름에 바로 접근

 

소멸 시점

선언된 영역인 {}을 벗어날 때

728x90
반응형

'언어 > Java' 카테고리의 다른 글

오버로딩/오버라이딩  (0) 2024.01.25
상속  (0) 2024.01.23
객체지향  (0) 2024.01.16
배열  (0) 2024.01.16
입출력(출력편) .for Java  (2) 2024.01.08