목록string (28)
개발자는 기록이 답이다
자바의 신 1권 15장 String에 대해 공부하면 아래와 같은 문장이 나온다. JDK 5이상에서는 여러분들이 String의 더하기 연산을 할 경우, 컴파일 할때 자동으로 해당 연산을 StringBuilder로 변환해준다. 따라서, 일일이 더하는 작업을 변환해 줄 필요는 없으나, for루프와 같이 반복 연산을 할 때에는 자동으로 변환을 해주지 않으므로 꼭 StringBuilder가 필요하다. 이게 무슨 말인지 한 번 소스코드를 컴파일하고 바이트코드를 확인해보자. 1. String은 불변 객체 컴파일 최적화에 대해 알아보기 전에 간단하게 String의 배경지식을 알고 있어야 한다. 자바 문서를 보면 String은 상수라서, 객체가 생성된 이후에는 값이 변하지 않는다고 써져있는 걸 볼 수있다 * String..
Primitive 타입과 Reference 타입의 차이점? Primitive 타입과 Reference 타입은 Java에서 변수의 성격과 저장 방식에 차이가 있는 두 가지 기본적인 데이터 타입이다. 구분 Primitive 타입 Reference 타입 메모리 할당 및 저장 방식 스택 메모리에 직접 값을 저장 참조 주소를 변수에 할당하고, 해당 주소를 따라가서 메모리에 저장된 객체의 값에 접근. 객체는 힙 메모리에 저장됨 (String은 예외로 String Pool에 저장됨) 데이터 크기 고정된 크기를 가짐 4바이트 또는 8바이트의 고정 크기를 가지며, 실제 기본 타입 목록 byte, short, int, long, float, double, char, boolean 클래스, 인터페이스, 배열 등 값의 초기화..
https://cote.inflearn.com/contest/10/problem/02-03 OnlineJudge cote.inflearn.com (위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다) 3. 가위 바위 보 예시 입력 1 5 2 3 3 1 3 1 1 2 2 3 예시 출력 1 A B A B D 내가 푼 풀이(Time: 172ms Memory: 27MB) a와 b의 값이 가위, 바위, 보 중 어떤 숫자 인지 에 따라 분기처리해서 풀었다. import java.util.Scanner; public class Main { public String solution(int num, int[] a, int[] b) { StringBuilder sb = new StringBuil..
https://cote.inflearn.com/contest/10/problem/02-01 OnlineJudge cote.inflearn.com (위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다) 1. 큰 수 출력하기 예시 입력 1 6 7 3 9 5 6 12 예시 출력 1 7 9 6 12 내가 푼 풀이(Time: 165ms Memory: 27MB) 처음에 문제를 잘 못 읽어서 첫 줄 입력값보다 2번째 줄 입력배열중에 큰 수를 찾는 것 인 줄 알았다. 그게 아니라 첫 줄은 2번째 줄의 길이를 말하는 것이었다. 입출력에 대한 타입이 정해지지 않으니까 어떤걸로 정의해야할지 헷갈렸다. 문제를 제대로 읽어야겠다. import java.util.ArrayList; import java..