본문 바로가기

Java38

java.util.Iterator 정의 - 컬렉션을 순회하는 데 사용되는 인터페이스 (반복문) 주요 메소드 - hasNext() = 다음 순서 데이터가 있는지 확인 - next() = 현재 순서 데이터 반환 - remove() = 현재 순서 데이터 삭제 ※ List, Set, Queue, Map, Entry 등의 클래스 객체들은 iterator()를 통해 데이터를 순회할 수 있음 반복문과의 비교 - 컬렉션에서 요소 제어 가능 - next()를 통해 뒷 순서로 이동 가능 - hasNext()를 통해 더 많은 요소가 있는지 확인 가능 - 특정 순서가 없기 때문에 처음 실행 했을 때 먼저 해당하는 데이터와 나중에 실행했을 때 먼저 해당하는 데이터가 다를 수 있음 ex) 첫 번째 순회 실행 -> 3, 두 번째 순회 실행 -> 5 ListIter.. 2023. 12. 21.
java.util.Map.Entry 정의 - Map에 저장된 모든 key-value 쌍을 각각의 객체로 얻을 수 있도록 해주는 클래스 주요 메소드 - Map.entrySet() = Map → Entry 변환 - getKey(), getValue() = 해당 엔트리의 키/값 반환 - setValue(A) = 해당 엔트리의 값을 A로 변경 - equal(entry2) = 참조한 entry와 entry2가 서로 같은지 여부 반환 (키,값 모두 같아야함) 특징 - 각각의 key와 value가 연결되어 하나의 객체로 표현되어 서로 연관되어 있다는 것을 명시할 수 있음 - Map의 데이터를 Entry로 변환한 뒤 Iterator를 이용하여 반복문을 수행할 수 있도록 하기 위해 주로 사용 public String uplodadFile(Multipart.. 2023. 12. 21.
java.net.URL 정의 - Java에서 URL을 표현하는데 사용하는 클래스 ※ URL(Uniform Resource Locator) = 인터넷 상의 리소스의 위치를 가리키는 규약 (고유 리소스 주소) URL url1 = new URL("https://www.example.com"); URL url2 = new URL(url1, "/path/resource"); // https://www.example.com/path/resource 주요 메소드 - getProtocol() = 프로토콜 조회 (http, https, ftp 등) - getHost() = 호스트 조회 - getPort() = 포트 번호 조회 - getPath() = 경로 조회 - getQuery() = 쿼리 스트링 조회 - getFile() = 파일 부분 조.. 2023. 12. 20.
java.io.File 정의 File file = new File("C:\\example.txt"); - Java에서 파일 및 디렉터리의 경로 및 속성을 조작하는 데 사용되는 클래스 - 파일 시스템의 경로를 나타내며, 파일이나 디렉터리의 생성, 삭제, 검사, 탐색 등의 기본적인 파일 작업을 지원 주요 메소드 - createNewFile() = 파일 생성 (반환 타입 = Boolean) - mkdir() = 디렉터리 생성 (최하위 디렉터리만, 반환 타입 = Boolean) - mkdirs() = 디렉터리 생성 (지정한 경로에 없는 디렉터리 모두, 반환 타입 = Boolean) Ex) 폴더 경로가 A/B/C일 때, mkdir → C만 생성하여 A와 B 둘 중 하나만 없어도 에러가 발생 mkdirs → C 포함 지정한 경로에 없는 .. 2023. 12. 20.
java.io.InputStream & OutputStream Stream - 입출력 장치에서 데이터를 읽고 쓰기 위해 자바에서 제공하고 있는 클래스 - 단방향으로 흐르기 때문에 입출력을 동시에 진행하기 위해서는 2개의 스트림(입력, 출력)이 필요 java.io.InputStream - Java에서 데이터의 타입과 상관없이 입력 스트림을 다루는 데(데이터 읽음) 사용되는 클래스 → 모든 데이터(이미지, 동영상 포함)를 바이트 단위로 처리 하위 클래스 - FileInputStream = 파일에서 바이트 단위로 데이터를 읽어오는데 사용 - ByteArrayInputStream = 바이트 배열에서 바이트 단위로 데이터를 읽어오는데 사용 - BufferedInputStream = 입력 스트림에 버퍼링 기능 추가 - PipedInputStream = 파이프로부터 바이트 단위.. 2023. 12. 20.
java.io.Reader & Writer java.io.Reader - Java에서 텍스트 기반의 입력 스트림을 다루는 데 사용되는 클래스 → 텍스트 데이터를 문자 단위로 처리 - 인코딩 필요 시 InputStreamReader를 사용하여 바이트 스트림을 문자 스트림으로 변환 ※ 비슷한 기능을 하는 InputStream은 모든 데이터(이미지, 동영상 포함)를 바이트 단위로 처리 ※ 텍스트 데이터 = Reader, 모든 종류의 데이터 = InputStream 주요 메소드 - read() = 데이터(텍스트) 읽기 - skip(Long n) = 입력 스트림의 현재 위치에서 n개 건너 뛰고 읽기 - close() = 입력 스트림 닫기 - mark() = 입력 스트림에서의 현재 위치 마킹 - markSupported() = 입력 스트림에서 마킹한 부분이.. 2023. 12. 20.
java.util.Properties 정의 - 키-값 쌍으로 이루어진 데이터(.properties)를 저장하고 관리하는 데 사용되는 클래스 - Properties 객체는 key=value의 쌍으로 데이터를 저장하며 키와 값 모두 문자열로 구성 Properties properties = new Properties(); properties.put("key1", "value1"); properties.put("key2", "value2"); String value1 = properties.getProperty("key1"); 주요 메소드 - get(key) = 해당 key에 대한 value 반환 (반환 타입 = Object) - getProperty(key) = 해당 key에 대한 value 반환 (반환 타입 = String) - remove(k.. 2023. 12. 19.
BufferedReader/BufferedWriter Buffer - 데이터를 한곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역 - Buffer를 사용하지 않을 경우 데이터가 입/출력 될때마다 바로 전송되지만 Buffer를 사용할 경우에는 Buffer에 정해진 용량이 가득 차거나 개행 문자(\)가 인식되어야 모아진 데이터가 한 번에 전송됨 - 쓰레기를 생길 때마다 버리는 것(버퍼 X)과 쓰레기를 한번에 모았다가 버리는 것(버퍼 O)의 차이 → Buffer를 사용하는 것이 더 효율적 BufferedReader - java.io.BufferedReader - Java에서 입출력 스트림에서 데이터를 읽을 때 버퍼링을 제공하는 클래스 - 주로 텍스트 파일이나 문자열에서 데이터를 읽을 때 사용 - readLine()을 통해 데.. 2023. 12. 19.
java.net.HttpURLConnection 정의 - java.net.HttpURLConnection = Java에서 URL 요청을 위한 클래스 - 데이터의 타입 및 길이 제한 거의 X → 데이터의 길이를 예상하기 어려운 스트리밍 데이터를 교환할 때 주로 사용 - 서버가 연결을 종료하기 전에 동일한 클라이언트에서 다시 연결할 경우 기존에 연결된 소켓을 재사용 주요 메소드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class HttpPostExample { publi.. 2023. 12. 19.
com.jcraft.jsch 정의 - Java에서 SSH(Secure Shell) 프로토콜을 사용하여 원격 시스템과 통신할 수 있게 해주는 라이브러리 클래스 종류 - com.jcraft.jsch.JSch = JSch 라이브러리의 핵심 클래스로, SSH 연결을 설정하고 SSH 세션을 얻기 위한 메서드를 제공 - com.jcraft.jsch.JSchException = JSch 라이브러리에서 발생할 수 있는 예외 - com.jcraft.jsch.Session = SSH 연결 자체 (연결 후 실제로 데이터를 주고받는 작업은 Session 객체를 통해 이뤄짐) ※ Session 인스턴스는 JSch 객체를 통해 생성됨 import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; JSch jsc.. 2023. 12. 13.
java.util.HashSet - java.util 패키지로 set을 다루기 위한 다양한 메소드들이 포함되어 있음 - Set(인터페이스) → HashSet(구현체) CRUD 메소드 - HashSet.add() = 원소 하나 추가 - HashSet.addAll() = 모든 원소 추가 - HashSet.clear() = 모든 원소 삭제 - HashSet.remove() = 해당 원소 삭제 - HashSet.removeAll(배열) = 해당 배열에 있는 원소들을 지정한 HashSet에서 삭제 - HashSet.removeIf(조건) = 해당 조건(람다식)을 만족하는 원소 삭제 - HashSet.clone() = 지정한 HashSet 복사 - HashSet.get() = 지정한 인덱스에 있는 원소 반환 - HashSet.forEach() =.. 2023. 11. 14.
java.util.Stack Stack - java.util 패키지로 LIFO 구조인 Stack을 구현할 때 사용 - push() = Stack에 데이터 추가 - pop() = Stack 맨 뒤의 데이터 출력 및 제거 - peek() = Stack 맨 뒤의 데이터 출력 (제거 X) - clear() = Stack 안에 있는 데이터 모두 제거 - size() = Stack 안의 데이터 개수 반환 - contains() = Stack에 지정한 데이터가 포함되어 있는지 여부(true/false) 반환 - empty() = Stack이 비어있는지(true/false) 여부 반환 Example https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채.. 2023. 6. 21.
java.lang.StringBuilder, StringBuffer StringBuilder, StringBuffer - java.lang 패키지로 여러 String 데이터를 하나로 합칠 때 사용 - 한번 생성되면 내용을 바꿀 수 없는 String 객체와는 다르게 내용 변경 가능 => 메모리를 더 효율적으로 사용 - 같은 메소드를 공유하지만 StringBuilder는 동기화 지원 X, StringBuffer는 동기화 지원 => StringBuilder는 싱글 스레드 환경에, StringBuffer는 멀티 스레드 환경에 적합 ※ 버퍼(Buffer) = 데이터를 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역 메소드 종류(공통) - append() = 해당 String 데이터 추가 (+=) - delete(첫 순서, 끝 순서+1) = 지정한 인덱스 위치의 문자열.. 2023. 5. 16.
java.math.BigInteger - java.math 패키지로 숫자의 범위가 너무나 클 경우(long으로도 부족한 경우)에 사용 연산 메소드 ※ 파라미터로 BigInteger 타입의 변수가 입력되어야 함 ex) BigInteger a = BigInteger.valueOf(1) a = a.add(BigInteger.valueOf(4)) - add() = 더하기 - substract() = 빼기 - multiply() = 곱하기 - divide() = 나누기(몫) - remainder() = 나누기(나머지) - gcd() = 최대공약수 (lcm은 없음) - A.compareTo(B) = A와 B의 크기 비교 (A>B : 1, A=B : 0, A < B : -1) 형변환 메소드 - valueOf(원소) = 해당 원소의 타입을 BigInteg.. 2023. 4. 24.
java.util.Deque - java.util 패키지로 deque를 다루기 위한 다양한 메소드들이 포함되어 있음 ※ Deque = Double-Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 삽입과 삭제를 할 수 있는 자료구조 원소 추가 메소드 - add() = 맨 뒤에 원소 추가 (용량 초과 시 Exception 발생) - offerLast() = 맨 뒤에 원소 추가 (용량 초과 시 false 반환) - addFirst() = 맨 앞에 원소 추가 (용량 초과 시 Exception 발생) - offerFirst() = 맨 앞에 원소 추가 (용량 초과 시 false 반환) 원소 삭제 메소드 - remove() = 맨 앞 원소 삭제 (비어있을 경우 Exception 발생) - poll() = 맨 앞 원소 삭제 (비어있을 경우.. 2023. 2. 27.