반응형

string

    문자열 연결 시 실행되는 내부 로직

    문자열 생성 String 문자열을 연결할 때 아래와 같이 객체로써 선언해서 사용할 경우 불필요한 객체가 만들어진다는걸 우리는 알고있다. String temp = new String("wedul"); 그래서 String을 아래와 같이 선언해서 String constants Pool에 저장해서 불변객체를 생성해서 동일한 문자열에 대해서 새로 생성하지 않고 가져다 사용할 수 있도록 할수있다. (effective java. 불필요한 객체를 만들지 마라.) String temp = "wedul" 문자열 연결 문자열 생성 시 우리는 + 로 문자열을 연결할 경우 새로운 문자열 객체가 계속 생성되기 때문에 이를 해결하기 위해서 StringBuilder를 통해서 모든 append가 끝나고 build를 통해 문자열 객체를..

    규칙 51 - 문자열 연결 시 성능에 주의하라

    문자열 연결시에 + 를 사용하여 연결하면 편리하고 좋다. 한줄 정도나 몇 개 정도의 객체를 문자열로 변환할 때는 사용해도 무관하다. 하지만 연결하는 것이 많으면 성능에 문제가 발생한다. n개의 문자열에 연결 연산자를 반복 적용해서 연결하는 데 소요되는 시간은 n의 제곱에 비례한다. -> 왜냐하면, 문자열은 변경불가능한 객체이기 때문에 새로 만들기위해서 두 개의 문자열을 붙힐 때 기준에 문자열을 모두 복사한다. 만족스런 성능을 위해서는 stringBuilder나 동기화가 적용된 StringBuffer를 사용하라. 출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙50 인용.

    규칙 50 - 객체화된 기본 자료형 대신 기본 자료형을 이용하라.

    기본적으로 문자열 형태를 많이쓰기 때문에 숫자, 불리언 값 들도 문자열로 받은 경우에는 그대로 가지고 있는 경우가 많다. 하지만 문자열로 가지고 있어야 하는 것은 본래 문자열인 데이터만 그렇게 가지고 있어야 하고 자신에 맞는 데이터 타입으로 바꾸어서 가지고 있어야 한다. 이는 당연한 지침인데 잘 지켜지지 않는다.(나도 마찬가지다..) 더 좋은 자료형이 있거나 만들수 있을 때는 객체를 문자열로 표현하는 것을 피하는 것이 좋다. 왜냐하면 제대로 쓰지 못할 경우 문자열은 다른 자료형에 비해 다루기 성가시고, 유연성도 떨어지며, 느리고 오류 발생 가능성도 높기 때문이다. 출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙50 인용.

    Enum - 규칙 30 int 상수 대신 enum을 사용하라.

    기존의 프로젝트에서 자주 사용 사용하는 설정 값이나 이름들을 열거 자료형으로서 다음같이 사용했다. 1234567// int를 사용한 enum 패턴public static final int FAIL = 1;public static final int SUCCESS = 2; // string을 사용한 enum 패턴public static final String FEMAIL = "3";public static final String MAIL = "4";cs int를 사용한 설정 값은 int enum 패턴, 문자열로 되어 있는 경우에는 string enum 패턴 이라고 한다. 하지만 이런 설정은 다음과 같은 단점이 있다. 1. 편의성이 떨어진다. 2. 이는 컴파일 시점 상수(compile-time constant..

    Java 문자열의 toString과 valueOf의 차이

    두 메소드 모두 오브젝트의 값을 String으로 변경하지만 변경하고자 하는 오브젝트가 null 일경우 toString은 NPE 오류를 발생시키지만, valueOf는 null이라는 특수문자로 처리한다. 그래서 valueOf를 사용하는게 조금더 안전하다.

    Mybatis String을 ParameterType으로 넘길때

    mybatis에서 String(문자열) 하나의 값만 넘길때는 다음과 같이 사용한다.

반응형