[개인공부] StringBuilder, Math 클래스

Walter Mitty·2022년 12월 24일
0

개인공부

목록 보기
27/40
post-thumbnail

StringBuilder

  • StringBuilder와 StringBuffer는 거의 똑같다.
    • 다른점은 StringBuilder는 동기화 되어있지 않고
    • StringBuffer는 동기화 되어있다. 멀티 쓰레드에 안전(thread-safe)
      • 동기화란 멀티쓰레드에 안전하게 하는 것이다.
  • 멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능저하가 있다.
    • 따라서 싱글쓰레드 프로그램에서는 StringBuffer 대신 StringBuilder를 사용하면 성능 향상!!

싱글 쓰레드: 한번에 1개의 작업만
멀티 쓰레드: 한번에 n개의 작업을

예) 카카오톡에서 내가 친구가보낸 영상을 다운로드 받는 동안 채팅도 가능!

멀티쓰레드의 단점은 한번에 여러개 작업을 하느라 데이터가 공유된다는 점이다.
여러명이 작업하느라 다른사람이 데이터를 건드릴 수 있어서 데이터가 꼬일 수 있다. 이것을 안전하게 만드는게 동기화! = 멀티 쓰레드에도 안전하다!


Math 클래스

우리가 이미 알고있는 Math.round() 메서드!

  • 수학관련 static 메서드의 집합
    • 메서드만 있고 iv가 없기 때문에 객체를 만들 필요가 없어서 그래서 전부 static 메서드들로만 이루어져 있다.

  • abs() 절대적인 것을 뜻하는 absolute의 약어
  • ceil() 은 천장을 뜻하는 단어로 천장에 올린다! 라고 생각하자.
  • floor() 는 바닥을 뜻하는 단어로 바닥에 버린다! 라고 생각하자.
  • max() 는 둘 중에 큰 거 반환

  • min()은 둘 중에 작은거
  • rint() 반올림은 반올림인데 roundeven 이라고 생각하면 된다.
    • 즉 짝수 반올림! 정가운데 있는 값은 짝수를 반환한다.
  • round() 반올림

0개의 댓글