Backend/Java (20) 썸네일형 리스트형 [JAVA] BufferedReader 사용 이유와 과정 (read, 스트림(Stream), 버퍼(Buffer)) 단계별로 알아보는 Byte → Char → String 입력 받기(System.in,read() , 스트림(Stream), 버퍼(Buffer)) 예전에 백준을 풀면서 수행시간이 빠르다는 이유로 원리도 모르고 사용했던 기억이 있어 이번 기회에 다뤄보면 좋을 것 같아 작성하게 된 글이다. 1. 입출력(Inout-Output)자바에서는 기본적으로 스트림 개념의 입출력을 사용한다.모든 입출력 클래스는 java.io 패키지에 정의되어 있다. 입출력 타입데이터 타입예시처리 방법Byte(바이트)이진 데이터이미지실행파일엑셀파일 등InputStream (입력)OutputStream (출력)문자텍스트 데이터txt 파일 등Reader (입력)Wrtier (출력) 기본적으로 표준입출력 형태인 System.in 부터 Sc.. [JAVA] 스레드(Thread)와 멀티스레드(Multi Thread) 구현 스레드(Thread)와 멀티스레드(Multi Thread) 구현 1. Thread 란?하나의 프로세서 안에서 독립적으로 실행되는 작은 실행 단위로, 프로그램의 명령을 실행하게끔 해주는 소프트웨어적인 실행 주체이다. 개발자가 별도의 Thread를 생성하지 않는다면, 한 프로그램에 하나의 스레드가 존재하여 해당 명령을 차례차례 순서대로 실행시킨다.자바에서는 스레드를 통해 한 번에 여러가지 일을 동시적으로 처리할 수 있게 지원한다. 기본적인 스레드 형태부터 알아보자.class ThreadA1 extends Thread{ public void run() { // 오버라이딩 }} Thread의 선언은 동시에 처리할 클래스에 Thread 클래스를 상속하는 것부터 시작한다. Thread 상속한 .. [JAVA] 예외(Exception) 처리 예외(Exception) 처리 알아보기 1. 예외 처리예외처리란? 예외가 발생한 경우 프로그램이 강제 종료되지 않도록 방지하는 것이다. Q. 아니, 코드가 잘못됐는데 왜 프로그램을 종료시키면 안되나요?A. 우리는 에러와 예외를 혼동해서는 안 된다. 에러(Error)가 존재하면 프로그램이 실행될 수 없지만, 예외(Exception)는 프로그램이 돌아가다 특정 상황 또는 조건이 만족되는 경우 프로그램이 종료되는 현상으로 문법적 오류, 논리적 오류, 물리적 오류를 모두 포함한다. 우리는 예외처리를 통해 예외가 발생한 경우 프로그램이 종료되지 않고 저장과 같은 기능을 제공함으로서 사용자에게 처리기회(선택권)를 줄 수 있다. 우리가 코드를 짜다보면 겪는 흔한 에러인 '런타임 에러' 도 예외(Exception)의.. [JAVA] 숫자 출력 형식 지정 DecimalFormat 클래스 숫자 출력 형식을 지정하는 DecimalFormat 클래스 1. DecimalFormat 클래스 DecimalFormat 클래스는 10진수 관련 포맷을 설정한다. 이를 이용해 다양한 숫자 형식을 편하게 출력할 수 있다.DecimalFormat df = new DecimalFormat(); // 10진수 관련 포맷// 직접 형식 지정double number = 2123.456789;System.out.println("2123.456789 소수점 세자리 -> " + (int)(number*1000)/1000.0); // 버림// DecimalFormat 을 이용한 형식 지정df = new DecimalFormat("#,###.###");System.out.println("2123.456789 소수점 세자리.. [JAVA] 날짜 출력 형식 지정을 위한 SimpleDateFormat 클래스 날짜 형식 지정을 위한 SimpleDateFormat 클래스 1. SimpleDateFormat날짜 출력 형식을 제공하는 SimpleDateForamt 으로 Date로 추출한 날짜를 깔끔하게 출력해보자. Date today = new Date();SimpleDateFormat sdf = new SimpleDateFormat(); // 날짜 출력 형식 제공System.out.println(today); // Mon Oct 21 18:15:11 KST 2024System.out.println(sdf.format(today)); // 24. 10. 21. 오후 6:15// System.out.println(new SimpleDateFormat().format(today)); SimpleDateFormat 객.. [JAVA] 날짜와 시간 출력을 위한 Calendar, Date 클래스 날짜와 시간 출력을 위한 Calendar, Date 클래스 알아보기 1. Calendar 클래스자바에서 제공하는 대표적인 날짜와 시간을 다루는 클래스로, 싱글톤 방식의 클래스이다. 싱글톤이란, 생성자가 여러번 호출되더라도 인스턴스 값이 하나만 존재하도록 보장하는 방식으로 인스턴스 객체 하나에만 접근할 수 있도록 한다. Calendar tomorrow = Calendar.getInstance(); 싱글톤의 특성상 하나의 객체를 여러 참조변수가 공유해서 쓰지만 Calendar 클래스의 구조는 공유되는 공간과 만들어진 객체마다 따로 갖는 공간이 함께 존재한다. Calendar의 경우 달력이라는 공간은 공유하되, 저장된 오늘 날짜(현재 날짜)는 별도로 각각 따로 저장한다. 2. Calendar 클래스의 날.. [JAVA] HashSet, HashMap, Hashtable 그리고 Iterator HashSet, HashMap, Hashtable과 이들의 값을 출력하는 Iterator 1. HashSetSet(HashSet) 는 데이터의 중복을 허용하지 않고 저장되는 클래스다. 중복된 값을 제거하면서 데이터를 저장하기 위해 사용된다. import java.util.HashSet; 여기서 다룰 HashSet부터 뒤이어 등장할 HashMap, Hashtable.. Hash는 '특정 데이터를 고정된 값으로 반환한다.' 는 의미를 지닌 자료구조다. hash 연산은 클래스 내에서 유일한 값을 얻어낼 수 있는 고유 알고리즘 연산으로 이해하면 된다.Set의 종류인 HashSet의 경우 저장할 때 hash 연산 결과로 저장하고, 검색 또한 hash 연산결과로 검색한다. 보통 빠른 검색이 가능하기 때문에 검색.. [JAVA] 제네릭(Generic) 제네릭(Generic) 알아보기 1. 제네릭의 등장보통의 자료구조는 여러 타입의 자료를 혼용하여 저장할 수 있다. (물론 그렇게 혼용해서 저장하는 경우는 거의 없지만..) 무슨 소리인가 함음...앞서 다뤘던 ArrayList 를 잠시 소환해보자. ArrayList a = new ArrayList();// 다양한 자료형 저장 가능a.add(10); // Integera.add(1.1); // Doublea.add("Hello"); // String 대표적으로 ArrayList의 경우 다양한 자료형을 저장할 수 있다. 이렇게 저장된 데이터들을 호출할 때에는Integer i0 = (Integer)a.get(0);// Integer i1 = (Integer)a.get(1); // Double형 객체를 Int.. 이전 1 2 3 다음