[Java] Java의 문자열(String) 객체가 저장되는 String Pool에 대하여
연관글[Java] String의 불변성(Immutable)과 그 이유[용어정리] 리터럴(literal)이란? 상수와의 차이점.Java의 문자열(String) 객체가 저장되는 String Pool에 대하여Java에서 가장 많이 사용되는 데이터 타입은 String이 아닐까 싶습니다. 사람이 가장 이해하기 쉬운것이 Text이기 때문이지요. 그런데 Java에서 문자열을 표현하는 String 타입의 객체는 불변성(Immutable)이라는 성질을 가지고 있으며 같은값의 문자열에 대해서는 단 하나의 문자열 객체만을 생성하도록 설계 되어있습니다.Java에서 String이 이러한 성질을 갖는 이유는 몇가지 장점이 있기 때문인데 가장 큰 장점은 성능입니다. 같은 값을 갖는 문자열 객체는 JVM의 객체가 생성되는 공간인 H..
자바[Java]
2019. 6. 22. 00:30
[Java] String의 더하기 연산으로 인한 문제점과 StringBuffer, StringBuilder의 특성과 차이점에 대해서
다음글[Java] String의 불변성(Immutable)과 그 이유String의 불변성으로 인한 문자열 append 연산 문제점최근에는 Java의 컴파일러의 최적화가 진행됨에 따라 문자열의 + 연산시의 문제가 많이 해결되었습니다만 과거에는 String의 불변성에 따른 문제점이 있습니다.JDBC API를 이용할때 다음과 같이 SQL을 + 연산하여 여러 문자열 리터럴을 더해 사용합니다. 여기서는 아주 간단한 sql을 작성해 보았지만 회계관련 ERP 시스템과의 연동을 하는 경우에는 쿼리는 수십 ~ 수백줄이 되기도 합니다. 조건으로 사용하는 컬럼이 늘어날수록 + 연산은 그만큼 증가합니다.String tableName = "user_tbl";String sql = "SELECT * FROM " + tableNa..
자바[Java]
2019. 6. 21. 14:58
[Java] String의 불변성(Immutable)과 그 이유
이전글[Java] String의 더하기 연산으로 인한 문제점과 StringBuffer, StringBuilder의 특성과 차이점에 대해서자바(Java) String의 불변성(Immutable)어떤 언어든 프로그래밍을 하다 보면 가장 많이 사용하고 꼭 있는 자료형이 문자열(String)일것입니다. 사람은 010100 과 같은 숫자보다 "book" 같은 문자에 더욱 익숙하기 때문입니다. 또한 문자열은 "1234"와 같이 숫자를 표현할 수 있고 "j20dsf908"와 같이 특정 인코딩된 데이터 또한 표현이 가능하며, 모든것들을 표현할 수 있습니다. 예를들어 png같은 이미지 파일도 Base64 인코딩 하여 ASCII 형식의 문자열로 표현이 가능하지요.이처럼 수많은 데이터를 문자열로 표현이 가능하기에 어떤 언어..