2019. 2. 25. 19:19ㆍJAVA
==================참조 타입=======================
메모리의 일부를 JVM에게 할당해주다. 그러면 JVM이 3부분으로 나눈다.
|----------------------------------------------------------------
|method 영역 stack 영역 heap영역
|(설계도 영역) (변수 영역) (객체 영역)
|----------------------------------------------------------------
| int a=10;
| <값의 복사>
(int a= 10, | int b=10;
int b= a;경우) |
|
|
| String 홍길동의 주소값 String x="홍길동";
| (번지#123값) (번지#123 일 경우)
| (주소값 복사)
(String x="홍길동"; | String y=(#123 번지값)
String y=x;) |
|
|
위의 String을 그후 | x 와 y의 주소값이 String x="이순신";
String y="이순신"; | 같기 때문에 x값도 (번직값은 동일)
일 경우 | 이순신으로 변경
|
기본자료형을 제외한 모든 것들은 객체가 만들어지고 객체의 값이 저장 그 후 객체의 주소값이 들어간다.
( ①.객체를 만든다 ②.객체 값을 저장한다. ③.객체의 주소값을 저장한다.)
(String 만 제외 예시로 보자, 객체에서 모두 적용)
기본타입(정수형, 실수형, 논리형)을 제외한 위의 String과같은 모든 변수를 참조변수라 한다.
자바에서 null값은 객체를 더이상 참조하지 못하게 하는 값이다.
ex) a=null;
참조값이 모두 null이 되면 그 값은 가비지콜렉터를 통해 자동적으로 삭제된다.
가비지콜렉터는 heap메모리만 제거한다.
메소드 영역은 설계도가 로딩되는 영역 Heap영역을 객체가 생성되는 영역, Stack영역은 변수가 만들어지는 영역이다.
참조값의 기본 초기화 값으로 null을 사용할 수 있다.
ex) String = null; , int[] a= null; , Scanner e = null;
new의 활용
1. 객체를 생성 키워드
2. 배열객체 생성
3. 설계도를 활용해서 객체 생성
====================배열=================================
(#~~) -> 번지값
동일한 타입을 여러개 담을 수 있는 그릇이며 배열도 객체이다.
배열은 동일 타입의 값만 담을수 있다. 그리고 배열의 크기는 변경할 수 없다.
int[] a = {1, 2, 3, 4}; --> a(#23) (1, 2, 3, 4)
정수형 배열
int[] a = new int[5]; -> a(#56) [0, 0, 0, 0, 0]
실수형 배열
double[] a new double[5] -> a(#78) [0.0, 0.0, 0.0, 0.0, 0.0]
문자열 배열
String[] a = new String[5] -> a(#98) [null,null, null, null, null]
String배열 하나하나에도 문자열의 주소값이 들어감
기능은 .으로 조회한다.
ex).nextInt, .nextdouble, .System.out.println, .length
.length라는 기능은 배열의 길이를 보여준다
int[] a = {1, 2, 3, 4}; --> a.length --> 4 이다.
2. 다차원 배열
배열의 길이가 2개이상인것
ex) int [][] a = {}{};
int[][] a = new int[2][];
a[0] = new int[5];
a[1] = new int[2];
->(0, 0, 0, 0, 0),(0, 0) 이런 불균형한 배열을 만들수도 있음.
'JAVA' 카테고리의 다른 글
인스턴스, this, 접근제한자, 겟터 셋터 (0) | 2019.03.08 |
---|---|
메소드 오버로딩, 생성자 (0) | 2019.03.08 |
메소드, 리턴값, void, (0) | 2019.03.08 |
클래스, 객체 필드 (0) | 2019.02.26 |
연산자, 삼항 연산자, 조건문, 반복문, if, switch, for (0) | 2019.02.21 |