전개발
article thumbnail
[Java] String.format();으로 출력 서식 지정하기
Java 2023. 1. 18. 22:08

변수의 값을 집어넣어야 하는 문자열을 출력할 때, +(더하기) 연산자를 사용해 붙여서 출력하곤 합니다. String sung = "Jeon"; String name = "Inhyeok"; System.out.println("제 성은 " + sung + "이고, 이름은 " + name + "입니다."); 하지만, 이는 코드 가독성이 좋지 않고 깔끔하지도 않은 것 같습니다.... String.format() 메서드와 System.out.printf()를 활용한다면, 문자열(String)에 대한 Formatting을 통해 더 가독성이 좋은 코드를 만들 수 있습니다. String.format() : String String.format(String format, Object... args)는 첫 번째 매개변수로..

article thumbnail
[Java] 문자열 클래스 - String과 StringBuilder
Java 2023. 1. 11. 19:47

백준 문제를 해결하던 중, 자꾸 메모리 초과를 맞았습니다. 원인은 바로 정답 문자열을 구성하는 문자열 클래스가 String이었다는 점 ! 다시는 이런 실수를 하지 않겠다... 다짐하면서 String 클래스들을 알아보았습니다. 문자열 클래스의 종류 자바에는 크게 3개의 문자열 클래스가 존재하고, 각 클래스는 다음과 같은 특징을 가집니다. String 불변(immutable) 객체입니다. / 스레드 동기화를 고려할 필요가 없다.(안전하다. Thread-safe) StringBuilder 가변(mutable) 객체입니다. / 스레드 동기화가 일어나지 않습니다. StringBuffer 가변(mutable) 객체입니다. / 스레드 동기화가 일어납니다. 스레드 동기화란? 멀티 스레드 환경에서 여러 스레드가 하나의 ..

article thumbnail
[Java] System.gc();와 Garbage Collection
Java 2023. 1. 9. 18:49

소멸자(finalize)를 학습하던 중, 소멸자가 System.gc();를 설명하는 예제에 많이 쓰이는 것을 보고, 가비지 컬렉션(Garbage Collection)에 대해 알아보게 되었습니다. Garbage Collection(가비지 컬렉션)이란? 자바의 메모리 관리방법 중 하나로, 참조가 더 이상 일어나지 않는 메모리를 해제시켜 공간을 확보하는 방법입니다. 가비지 컬렉션을 수행하는 가비지 컬렉터는 코드를 작성하는 개발자가 메모리 할당과 해제에 일일히 관여하지 않아도 관리가 되게끔 도와줍니다. (C, C++ 에서는 메모리 할당/해제를 직접 관리해줘야 한다고 합니다...) 메모리 공간을 자동으로 확보하면서 메모리 누수를 방지하는 장점이 있지만, 메모리가 해제되는 시점을 알 수 없다는 단점도 존재합니다. ..

article thumbnail
[Java] print 메소드와 BufferedWriter로 콘솔에 출력하기
Java 2023. 1. 9. 16:48

Java에서 알고리즘을 풀 때, 혹은 필요한 경우에 콘솔에 메시지를 출력해야합니다. 자주 사용되는 두 가지 방법이 있습니다. System 클래스의 println(); 메소드 활용 System.out.println("Hello Inhyeok !"); 우선, System 클래스는 자바에서 표준 입/출력을 담당하는 클래스입니다. System 클래스에는 in, out, err과 같은 클래스 변수가 정의되어 있습니다. 그 중, System.out은 표준 출력 스트림으로, print();, printf();, println() 메소드는 이러한 스트림을 콘솔에 출력해주는 메소드입니다. print(); vs printf(); vs println(); ? print();와 printf();의 차이는 출력 양식(forma..

article thumbnail
[Java] Scanner와 BufferedReader로 콘솔에서 입력 받기
Java 2023. 1. 7. 22:36

Java를 활용해 알고리즘을 풀 때, 콘솔에서 입력 값을 받아와야 합니다. 이때, 자주 사용되는 입력 방법은 2가지 정도가 있습니다. java.util.Scanner 클래스 import java.util.Scanner; // Scanner 클래스 사용을 위해선 import 해주어야 합니다. public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); // 한 줄의 콘솔 입력 값을 읽어온다. sc.close(); // 콘솔 입력이 끝나면, 스캐너를 종료시켜주어야 한다. System.out.println(input); // 입력 값 출..