String에 들어있는 데이터 byte 수 알아내는 제일 좋은 방법?
재미
안녕하세요.
며칠전 가입하고 처음으로 질문 올립니다.
줄곧 C++, ASP하다가 자바를 하게된지 1년이 안되서 여러가지 잘 모르는게 많은데요.
자바에서 String 형에 어떤 데이터를 넣고
그 데이터가 차지하는 바이트수를 알아내는 방법 중에 제일 좋은 방법이 뭐가 있을까요?
지금 제가 쓰는 방법은
String teststr = 무지긴......데이터^^;
System.out.println(byte수: + testStr.getBytes().length);
이런식인데요.
결과는 잘 나오는데 한가지 걱정되는 것은 getBytes()가 byte 배열을 리턴하는데
데이터가 상당히 클경우임시적으로 생성되는 byte 배열때문에 메모리를 순간적으로 많이 먹지 않는가 하는 것입니다.
물론 나중에 gc가 되면 해제가 되겠지만 이런 일이 자주있으면 프로그램에 문제가 생기지 않을까요?
제가 gc라든지 정확한 개념이 좀 없어서 그러니 답변 좀 부탁드리겠습니다.
-
소희 2025-09-27
찬님, 수다님 좋은 답변 감사합니다. ^^
-
슬S2아 2025-09-27
첫번째로는 스트링으로 자료형을 안저장하시는게 좋습니다.
자바의 스트링은 상당히 느리고 설계가 좋지 않다고 알려져 있습니다.
더 좋은 방법은 처음에 읽을때부터 char또는 byte형등의 원시형 배열타입으로 받는것입니다. -
아유미 2025-09-27
자바에서 String을 byte[]로 나타내기 위해서는 까다로운 과정이 있는데요.
그 중에서 가장 까다로운 과정이 \문자열 인코딩\ 이 있습니다.
똑같은 \가\ 라고 해도..
인코딩이 ms949의 경우에는 2byte만 먹구요.
인코딩이 UTF-32인 경우에는 4byte를 먹게 되지요.
즉 인코딩에 따라서 달라 질 수 있는 문제이니, 이것저것 따로 하시는것 보다는
걍 getBytes()를 쓰고 길이를 구하는게 좋아 보입니다. ㅎㅎ.
얼마나 큰 데
