[질문/Java] sizeof
소미
C/C++에서는 데이터형이나 변수에 할당되는 메모리의 크기를 바이트 단위로 알려주는 sizeof 키워드를 제공합니다.
하지만. 자바에서는 그것에 해당되는 키워드, 메소드를 찾을 수 없군요..
아시는 분들의 답변을 부탁드립니다.
-
데빌의눈물
글쿤요.. JVM에서 알아서 잡아준다고 생각하면 될 듯 싶습니다.
C/C++ 개념으로 접근해서 혼동이 되었던 것 같습니다. 답변 감사드립니다. -
LO
자바의 특징중의 하나가 사용자로부터 포인터와 메모리 문제에서 벗어나도록 한것입니다. 답부터 말씀드리면, 사용자가 메모리사이즈 알수없습니다. 알필요도 없구요. C/C++ 처럼 new, malloc을 사용해서, 메모리를 확보하는게 아닙니다. 그래서, 메모리를 알필요도 없구요. 그리고, 모든 클래스는 Object클래스를 상속받기 때문에 클래스 형에 따라 메모리 사이즈를 구분지을 필요도 없죠.. 이유가 여러가지가 있겠지만.. 쉽게 생각해서, 자바로 메모리에 대
-
수련
객체 직렬화 하셔서 파일 사이즈 살펴보세요. 그 사이즈가 바로 sizeof() 입니다. 글구 위에 진수다님 말대루, c에서는 플랫폼마다 자료형의 길이가 다 다르기 때문에 sizeof()가 필요한거구요, 자바는 자료형의 길이가 딱 고정되어 있어서 sizeof() 가 있을 필요가 없습니다. 메모리도 자동으로 할당되기 땜에 더더욱 있을 필요가 없죠...
마치 국밥만 만들어 파는 가게에 가서 \오늘의 메뉴가 뭐예요?\ 하고 묻는거나 똑같은듯.. ^^ -
조심해
진수다님 답변 감사드립니다.. 제가 초짜라.. 다시 질문 드립니다.
자바의 경우 님 말씀대로 기본 자료형 같은 경우는 메모리상의 크기가 고정이기에 크기를 구할 필요는 없을 듯 합니다.
하지만.. 클래스 형을 따를 경우 메모리 크기를 구해야 할 경우도 있을 듯 합니다. 그럴 때는 어떻게 하는지요? -
테이
자바에서는 sizeof가 필요 없습니다. c/c++과 달리 자료형이 실행중인 플래폼에 따라 사이즈가 변하는게 아닙니다. 가령, int는 4byte char는 2byte식으로 정의되어있죠. 자바 입문서에 자료형 챕터에 보면, 반드시 나오는 내용입니다. 직접적으로 메모리 사이즈를 구하는 함수는 없답니다. (있을필요가 없죠 ^^;) ^^ 사이트에도 \기본자료형\으로 검색해보면, 자료형에 따른 사이즈를 볼수 있씁니다
-
튼트나
우선 답변 감사드립니다. 하지만, 제가 질문 드렸던 것과 다른 것 같습니다..
배열의 경우는 length라는 것을 이용하면 배열의 크기를 알 수 있는데요.
제가 질문 드렸던 것은 예를 들어 C++의 경우 sizeof(int), sizeof(클래스형)하게 되면 메모리상의 크기를 바이트 단위로 알려 주잖아요.. 이러한 사항이 궁금했던겁니다. -
유미
질문(Q&A)에 보면, \c의 sizeof같은 연산자 있나요?\ 라는 질문이 있습니다. 참조하세요.