달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
반응형


String

    한번 생성되면 String 객체가 변경이 안되고 concat이나 "+"로 문자열을 붙이면 

    새로운 메모리 주소로 다시 생성된다.

    String == String비교시 문자열의 메모리상의 주소를 비교한다.

    String.equals(String)은 문자열의 메모리상의 주소와 상관없이 내용을 비교한다. 


StringBuffer, StringBuilder

    append사용하여 문자열을 붙일 수 있다.(새로운 객체생성 안함)

    StringBuffer는 멀티 쓰레드 상태에서 동기화를 지원

    동기화를 지원하다보니 StringBuffer보다 StringBuilder가 성능 상으로는 더 빠르다.


-------------------------------------------------------------------------------------------

http://egloos.zum.com/deblan2/v/419830


이 분의 속도측정 결과를 보면 

    String의 append함수나 "+" 연산자 사용횟수에 따라 객체가 계속 생성되다보니 

    속도가 느려지는걸 볼 수 있다.

    문자열 연결작업이 많다면 반드시 StringBuffer나 StringBuilder를 사용하도록 하자. 

-----------------------------------------------------------------------------------------------

JDK 1.5 버전 이후에는 컴파일 단계에서 String 객체를 사용하더라도 StringBuilder로 컴파일 되도록 변경되었습니다. 그리하여 JDK 1.5 이후 버전에서는 String 클래스를 활용해도 StringBuilder와 성능상으로 차이가 없어졌습니다.

http://ooz.co.kr/298

'프로그래밍 > Java' 카테고리의 다른 글

[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java] String.valueOf와 toString  (0) 2018.05.30
[Java] Calendar  (0) 2018.05.23
[Java]SimpleDateFormat  (0) 2018.05.20
Posted by 유령회사
|