[JAVA] BufferedReader, BufferedWriter, StringBuilder
2022. 5. 24. 21:44
JAVA/기본 문법
지금까지는 화면 입출력에 Scanner와 System.out 를 사용함 간단한 프로그램을 작성할 때는 문제없지만 시간 제한이 있거나 시간을 줄이기 위해서는 Scanner 대신 BurfferedReader 을 통한 입력 System.out 대신 BufferedWriter 을 통한 출력 StringBuilder 을 통한 String Build 후 System.out 을 통한 출력 등을 사용하면 시간을 줄일 수 있음 예제 숫자 5개와 문자열 5개를 입력받고 모두 더해서 출력하는 예제가 있다고 가정 아래의 예제로 갈수록 속도가 더 빠름 Scanner & System.out 사용 예제 import java.util.Scanner; public class Test { public static void main(St..
[JAVA] 파일 입출력(BufferedReader, PrintWriter) , 파일 경로
2022. 4. 18. 17:59
JAVA/기본 문법
파일 입출력이란? 지금까지 해왔던 System.out.println()나 Scanner등과 같이 화면으로 입력, 출력을 하는것이 아닌 파일을 통해 입력과 출력을 하는 것 파일 경로 파일의 경로를 표현하는 방법에는 2가지가 있음 => 절대경로, 상대경로 절대경로는 C:\Program Files\Java 이런 식의 주소 표현하는 방법 상대경로는 특정 파일이나 폴더를 기준으로 상대적으로 주소를 표현하는 방법 상대경로를 표현할 때는 / ./ ../ 을 사용 ex) C:\Program Files\Java\a.txt에서 상대경로 표현 시 / => 루트 => C:\ ./ => 현재 폴더 => C:\Program Files\Java ../ => 상위 폴더 => C:\Program Files 파일 입출력 예제 현재 디렉..
[JAVA] 화면 입력 받기 (Scanner)
2022. 4. 18. 14:19
JAVA/기본 문법
Scanner 메서드 nextLine() 엔터를 치기 전까지의 입력을 String 형태로 받음 띄어쓰기(스페이스)도 포함 nextLine()이외의 메서드 들은 띄어쓰기 전까지만 입력받음. next() String을 입력받음 띄어쓰기로 구분 nextInt() int를 입력받음 nextDouble() double을 입력받음 nextBoolean() boolean을 입력받음 char을 입력받고 싶다면? char만 따로 입력 받는 방법은 없음 따라서 next(), nextLine()으로 String 타입을 입력받은 후 .charAt(0) 을 사용해서 첫 번째 문자만 추출하는 식으로 입력 Scanner 사용 예제 import java.util.Scanner; public class IOMain { public s..
[JAVA] 시간 관련 ( 시간측정, 현재날짜/시간, 날짜/시간 포맷, 타이머 )
2022. 4. 14. 17:45
JAVA/기본 문법
JAVA에는 시간 관련 메소드가 매우 많음 더 많은 방법들이 있겠지만 몇개의 방법만 정리해봄 프로그램 실행시간 측정 방법 프로그램의 실행시간을 측정하는 방법은 프로그램의 실행 시작과 실행 끝부분에 현재시간을 측정해서 두 시간의 차이를 구해주면 됨 현재시간 측정 방법 System.currentTimeMillis(), System.nanoTime() Instant, Duration LocalDate.now() 등 매우 다양한 방법이 존재 특정시간 대기 프로그램 실행 중 몇 초 동안 대기하기를 원할 수 있음 이 때 가능한 방법으로는 Thread.sleep() TimeUnit.SECONDS.sleep() 등의 방법이 존재 Thread.sleep() 사용 시, 파라미터로 들어가는 숫자는 ms가 기준. Thread..
[JAVA] 쓰레드 (Thread), SingleThread, MultiThread 예제
2022. 4. 14. 17:39
JAVA/기본 문법
Thread 란? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위. Multi Thread 란? 여러개의 Thread를 동시에 실행시키는 것 장점 : 동시에 여러가지 작업 처리 가능 + 자원을 더 효율적으로 사용 가능 단점 : 서로 자원을 사용하다 충돌할 수 있음 + SingleThread보다 더 느린 상황도 있음 Thread 구현 방법 Thread 클래스를 상속받아 구현 Runnable 인터페이스를 구현 JAVA에서는 다중 상속을 허용하지 않기 때문에 다른 부모클래스를 상속받아 Thread를 구현해야 하는 상황이 존재할 수 있으므로 이럴때는 2번 방법이 더 효율적임 Single Thread 예제 1 - Thread 클래스 상속 package ThreadTest; public class S..
[JAVA] 예외처리 (Exception Handling)
2022. 4. 14. 16:05
JAVA/기본 문법
예외처리란? 프로그램 실행 중 예외가 발생할 수 있는데, 이때 이를 어떻게 처리할 건지 등을 미리 대처하는 코드를 작성하는 것 예외처리를 통해 프로그램의 정상 작동을 보장할 수 있으며, 예외의 원인 파악, 예외 정보 기록 등을 할 수 있음. 예외의 종류 예외의 종류로는 오류(Error), CheckedException, UncheckedException( = RuntimeException)으로 구분 Error는 시스템의 문제로 인해 발생하기 때문에 Error가 발생하면 프로그램을 종료시키는 것이 일반적임 ex) OutOfMemory, StackOverflow CheckedException은 예외처리를 반드시 해야하고, 안하면 컴파일 에러가 발생함 ex) IOException, FileNotFoundExc..
[JAVA] Stack & Queue
2022. 4. 13. 18:18
JAVA/기본 문법
Stack, Queue 란? Stack과 Queue란 둘 다 자료구조의 종류 중 하나 Stack은 LIFO(Last In First Out), Queue는 FIFO(First In First Out) 형식의 자료구조. Stack의 메서드 push(Object o) stack의 맨 뒤에 값 추가, 추가된 값 return pop() stack의 마지막 값 return 후 삭제 peek() stack의 마지막 값 return (삭제 X) isEmpty() stack이 비어있는지 여부 return search(Object o) stack에 o가 몇번째에 있는지 return 맨 뒷자리부터 1, 2, 3, ... return 존재하지 않으면 -1 return size() stack의 크기 return Stack 예..