작고 크기가 고정된 객체의 문자열은 문자열 연결 연산자(+)를 사용해도 되지만, 많은 문자열을 연결할 때는 StringBuilder를 사용하자 🔎 문자열 연결 연산자(+) vs StringBuilder, append() 문자열 연결 연산자(+)는 여러 문자열을 하나로 합쳐주는 편리한 수단이다. 한 줄짜리 출력 값이나 작고 크기가 고정된 객체의 문자열 표현을 만들 땐 편리하고 좋지만, 문자열 연결 연산자로 문자열 n개를 잇는 시간은 n^2에 비례한다. 즉, 엄청엄청엄청엄청 느리다,,,,,, 예를 들어, 다음과 같이 청구서의 품목(item)을 전부 하나의 문자열로 연결하는 코드를 작성해보자. /* 문자열 연결 연산자(+) 사용 */ public String statement() { String result ..
문자열은 잘못 사용하면 번거롭고, 덜 유연하고, 느리고, 오류 가능성도 크다. 문자열은 워낙 흔하고, 자바가 잘 지원해주어 쉽게 쓸 수 있지만, 원래 의도하지 않은 용도로 쓰이는 경향이 있다. 🚫 문자열을 쓰지 않아야 하는 사례 기본 타입이든 참조 타입이든 적절한 값 타입이 있다면 그것을 사용하고, 없다면 새로 하나 작성하라. 문자열은 다른 값 타입을 대신하기에 적합하지 않다. 따라서 입력받을 데이터가 진짜! 문자열일 때만 문자열로 받는다. 받은 데이터가 수치형이라면 -> int, float, BigInteger 예/아니오 질문의 답이라면 -> boolean이나 적절한 열거 타입 문자열은 열거 타입을 대신하기에 적합하지 않다. 상수를 열거할 때는 문자열보다 열거 타입이 월등히 낫다. 문자열은 혼합 타입을..
기본 타입과 박싱된 기본 타입 중 하나를 선택해야 한다면 가능하면 기본 타입을 사용하라. 🔎 기본타입과 박싱된 기본 타입 자바의 데이터 타입은 크게 기본 타입과 박싱된 기본 타입으로 나눌 수 있다. 각각의 기본 타입에는 대응하는 참조 타입이 하나씩 있으며, 이를 박싱된 기본 타입이라고 한다. 예를 들어, 기본 타입의 int, double, boolean이 있으면 이에 대응하는 박싱된 기본 타입은 Integer, Double, Boolean이다. int - Integer double - Double boolean - Boolean long - Long ... 🔥 차이점 기본 타입과 박싱된 기본 타입은 오토박싱과 오토언박싱 덕분에 두 타입을 크게 구분하지 않고 사용할 수는 있다. 그럼에도 불구하고 크게 3가..
float과 double을 BigDecimal, int, long으로 대체해라 ❓ float와 double의 문제 float과 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 '근사치'로 계산하도록 설계되었다. 따라서 금융 관련 계산처럼 정확한 결과가 필요할 때 사용하면 안 된다. 금융 계산에 부동소수 타입을 사용해보자. public static void main(String[] args){ double funds = 1.00; int itemsBought = 0; for (double price = 0.10; funds >= price; price += 0.10){ funds -= price; itemsBought++; } Syst..
- Total
- Today
- Yesterday
- BOJ
- dfs
- BFS
- dp
- IMAGE
- EffectiveJava
- 토큰기반인증
- docker
- springboot
- 아이템60
- Container
- 이펙티브자바
- 순열
- 부분집합
- Java
- 아이템59
- 운영체제
- 백준
- 완전탐색
- Retrofit2
- OS
- subset
- 아이템61
- 조합
- 완탐
- 알고리즘
- 정처기
- 그래프탐색
- bruteforce
- docker-compose
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |