반응형

java 2

[Java] String / StringBuilder / StringBuffer 에 대해서 알아보자.

오늘은 Java에서 String / Stringbuilder / StringBuffer 를 알아보는 시간을 갖도록 하겠다. Java에서는 문자열을 다루는 클래스로 String, Stringbuilder, StringBuffer가 있다. 연산이 많지 않은 상황에서 어떤 클래스를 사용하더라도 문제가 되지 않지만, 연산이 많아지고 멀티스레드 등 상황이 발생하면 클래스의 특징을 이해하고 잘 사용하도록 해야한다. 크게 보면 2가지로 나눌 수 있다. 바로 String 과 StringBuilder / StringBuffer 이다. (1) String 다른 두 가지 클래스와 String의 차이점은 String은 불변(Immutable)속성이라는 점이다. (StringBuilder와 StringBuffer는 가변(Mut..

[Java] 불변 객체에 대해서 알아보자.

오늘은 java에서 불변 객체에 대해서 알아보는 시간을 갖도록 하겠다. (1) 개념 객체 지향 프로그래밍에 있어 객체 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 불변 객체는 read-only 메소드만을 제공하며, 객체의 내부 상태를 제공하는 메소드를 제공하지 않거나 제공하는 경우 방어적 복사(defensive-copy)를 통해 제공한다. 즉, 객체에 값을 할당하면 내부 데이터를 변경시킬 수 없다. (재할당은 가능하다.) 대표적인 예로 String, Integer, Boolean 등이 있다. (2) 장점 - 객체에 대한 신뢰도가 높아진다. (외부에서 임의로 내부의 값을 제어할 수 없다. 따라서 객체의 자율성이 보장) - 생성자, 접근 메소드에 대한 방어 복사가 필요없다. - 멀티스레드 환경에서 동기..

반응형