티스의 이야기

자바의 기초 레퍼런스타입과 heap 본문

프로그래밍

자바의 기초 레퍼런스타입과 heap

밍딩이 2015. 7. 16. 18:50

자바의 기초 레퍼런스타입과 heap 정말 어려운 부분입니다 자바의 기초적인 이해 stack이 아니라 heap에다가 넣음!?


//int [] ar = 데이터 타입 (기본형이 아님)

//지역변수는 메서드가 생성되고 종료되면 메모리에서 사라짐

//if문이나 for문에서 생성된 지역변수는 밖에서 안찍힘

//지역변수는 프린트하기전에 초기화를 해줘야 함(값을 입력함)

//레퍼런스 데이터타입을 찍으면 주소값이 나옴 (참조변수)

//heap은 모든 프로그램이 공통으로 사용하는 영역


heap에 있는 것을 가져다가 쓰려면 주소값을 알아야 한다


그래서 프린트를 하면 주소값이 나온다


int [] ch = new  int[num];

int a = 10;


System.out.println("ch");


라고 치면 주소값이 나온다


System.out.println("a");


라고 치면 값이 나온다.


기본형과 레퍼런스 타입의 차이점 




다차원 배열의 선언과 생성


int [] [] ar = new [5] [3] ;


3개 짜리를 5개 만들겠다는 뜻





학생 10명이 있는데 각각의 국어 영어 수학 점수를 받아서 총점과 평균을 받으려고 한다.


(어딘가의 변수에 저장이 되어야 함)


int kor , int eng , int math , int sum , int avr 


int [] s1 = new int [5];

int [] s2 = new int [5];

String [] name = new String[10]





객체지향언어의 특징


코드의 재사용성이 높다 (한번 만든 코드를 다시 사용)


코드의 관리가 쉬워졌다.

(객체지향에서는 하나를 바꾸면 나머지도 자동으로 바뀐다)


신뢰성이 높다



클래스의 정의 - 클래스란 객체를 정의해 놓은 것이다

클래스의 용도 - 클래스는 객체를 생성하는데 사용된다.


객체의 정의 - 실제로 존재하는 것. 사물 또는 개념.

객체의 용도 - 객체의 속성과 기능에 따라 다름.



 클래스

객체 

 제품 설계도

제품 

 tv 설계도

tv 

 붕어빵기계

붕어빵 










Student@659e0bfd 는 suji의 주소값


heap영역에다가 suji를 저장


레퍼런스데이터타입은 // 모두 4바이트


저장공간을 heap에서 만들고


시작점의 주소를 수지에게 보여주는 것임



(suji를 프린트 하면 그 주소값이 프린트)



여기서 suji는 참조변수 




new 라는게 들어가면 heap에다가 할당을 해달라고 하는 것임


수지 안에 있는 변수들이 모두 저장공간이 생김


(멤버변수)


(#멤버변수들은 클래스 안에 있는 변수들 (eng/math/kor))



new로 저장공간이 할달될때 


선언만 해도 자동으로 값이 선정이 됨

(멤버변수의 기본데이터)


초기화를 java jdk가 저절로 해줌


모든 레퍼런스 데이터 초기값 = null


int = 0

double = 0.0

char = ""   (빈공간)


변수명은 한글로 가능함(오류가 날 가능성이 있음)






 




Comments