ComputerScience/Java 8

(Java) int와 long 범위

📌 int와 long이 담을 수 있는 범위자료형크기 (bit)최소값최대값대략적인 자리 수int32-bit-2,147,483,648 (-2³¹)2,147,483,647 (2³¹-1)약 10자리long64-bit-9,223,372,036,854,775,808 (-2⁶³)9,223,372,036,854,775,807 (2⁶³-1)약 19자리📌 int와 long의 자리 수 기준int는 약 10자리 정수까지 안전하게 저장 가능.long은 약 19자리 정수까지 저장 가능.10자리 초과하면 long을 써야 함!→ 예를 들어 100억(10,000,000,000) 이상이면 long 필요.✅ 예제 코드public class IntegerLongTest { public static void main(String[]..

부동소수점(Floating Point)이란? (Java)

💡 부동소수점(Floating Point)이란?부동소수점은 소수를 근사적으로 표현하기 위해 사용하는 컴퓨터의 수 표현 방식컴퓨터는 이진수(0과 1) 만 다룰 수 있어서, 소수를 정확하게 표현하지 못하는 경우가 많음이로 인해 부동소수점 오차(Floating Point Error) 가 발생할 수 있음 1️⃣ 부동소수점이 필요한 이유정수를 표현할 때는 문제가 없지만, 소수(예: 0.1, 0.2, 3.14159) 같은 값은 2진수로 정확하게 표현하기 어렵다.💡 예를 들어, 십진수 0.1을 이진수로 바꾸면0.00011001100110011001100110011001100... (무한 반복)무한히 반복되는 형태가 돼서 정확하게 저장할 수 없다그래서 일정한 자릿수까지만 저장하고 근사값으로 저장하는 방식이 부동소수..

자연 정렬(Natural Ordering)이란? - Comparable, Comparator 예제

🌿 자연 정렬(Natural Ordering)이란?자연 정렬(Natural Ordering)은 객체가 기본적으로 정렬되는 방식을 의미자연 정렬은 Comparable 인터페이스를 구현하여 compareTo 메서드를 정의하면 설정할 수 있다.✔ 자연 정렬의 기준오름차순 또는 내림차순만을 의미하는 것은 아니다해당 클래스의 기본적인(자연스러운) 정렬 기준을 의미예를 들어:Integer, Double 같은 숫자는 오름차순(1 → 2 → 3)String 은 사전순(A → B → C)LocalDate는 시간순(과거 → 현재 → 미래)직접 만든 Person 클래스는 나이 순(어린 사람 → 나이 많은 사람)✔ Comparable을 활용한 자연 정렬 예시class Person implements Comparable { ..

Java 객체비교 인터페이스 - Comparable, Comparator

Comparable 인터페이스 (compareTo 메서드)정의: 객체 자체가 비교 가능하도록 만들 때 사용사용법: compareTo 메서드를 오버라이드하여 정렬 기준을 정의class Person implements Comparable { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public int compareTo(Person other) { return Integer.compare(this.age, other.age); // 나이 기준 오름차순 정렬 }} Comparator 인터페이..

isNumeric()과 isDigit() : 문자가 숫자인지 확인 (+차이점)

🔹 Character.isDigit()Character.isDigit(char)는 단일 문자가 숫자(0-9)인지 확인합니다.이 메서드는 숫자 문자뿐만 아니라 기타 숫자 시스템에 속한 문자들(예: 아라비아 숫자 외에도 숫자로 취급되는 문자들)을 모두 포함합니다.예를 들어, '\u0660' (아랍어 숫자 0)도 Character.isDigit()는 true를 반환할 수 있습니다.예시System.out.println(Character.isDigit('5')); // trueSystem.out.println(Character.isDigit('A')); // falseSystem.out.println(Character.isDigit(' ')); // falseSystem.out.println(Character...

String vs StringBuffer, StringBuilder 차이점

📌 StringBuffer란?StringBuffer는 Java에서 문자열을 다룰 때 사용되는 클래스로, 가변(mutable) 문자열을 처리할 수 있도록 설계된 객체입니다.기본적으로 String 객체는 불변(immutable) 속성을 가지기 때문에, 문자열을 변경할 때마다 새로운 객체가 생성됩니다.반면, StringBuffer는 기존 객체를 수정할 수 있어 메모리 효율이 좋고 속도가 빠릅니다.📌 주요 특징가변(mutable) 문자열 → String과 다르게 문자열을 직접 변경 가능메모리 효율적 → String처럼 새로운 객체를 생성하지 않고 기존 객체를 수정스레드 안전(thread-safe) → 멀티스레드 환경에서도 안전하게 사용 가능 (synchronized 처리)📌 주요 메서드메서드설명append..

BufferedReader, StringTokenizer 주요 메서드

📌 1. BufferedReader 주요 메서드🔹 1.1 readLine()한 줄(\n을 기준) 전체를 문자열(String)로 읽음공백도 포함해서 읽음입력이 없으면 null을 반환BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String input = br.readLine();System.out.println("입력: " + input); ✅ 예제 입력:Hello World!  ✅ 출력:입력: Hello World! 🔹 1.2 read()한 글자(문자 하나)를 정수(ASCII 값)로 반환더 이상 읽을 문자가 없으면 -1 반환int ch = br.read();System.out.println((char) ch); //..

BufferedReader와 StringTokenizer

✅ BufferedReader란?BufferedReader는 빠른 입력을 위해 사용하는 Java 클래스Scanner보다 입력 속도가 빠름버퍼(기본 8192바이트) 를 사용해 여러 문자를 한 번에 읽어옴입력 속도가 중요한 문제 (예: 백준, 코딩 테스트) 에서 주로 사용됨📌 사용법import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class StringTokenizerExample { public static void main(String[] args) throws IOException { BufferedRe..