숫자 및 문자 등 기본적인 데이터에 대한 형식화 클래스 Formatting Parsing 숫자 데이터를 패턴에 의해 형식화된 문자열로 표현 문자열을 지정된 패턴에 의해 숫자 데이터로 변환 format() 메서드 사용 parse() 메서드 사용 리턴 타입이 Number 타입이며, 기본적인 형식이 long 또는 double 이므로 주의! int 형으로 변환하거나 float 형으로 변환하면 예외 발생 DecimalFormat 클래스 - 숫자 데이터에 대한 형식화 클래스(DB에 있는 걸 엑셀로 받을 때 사용) 실수 1234.5를 1234.50000 형식으로 표현 정수 1234를 ₩1,234 형식으로 표현 - 기존 패턴에 새로운 패턴으로 교체하여 적용 => applyPattern() 메서드 사용 패턴 기호 문자 ..
자바 I/O Input / Output java.io 패키지의 클래스 모음으로 자바에서 각종 입출력을 담당한다. Node(노드) 자바에서 입출력을 수행하는 대상 - 입력 노드 : 키보드, 마우스, 파일, 네트워크, 데이터베이스 등 - 출력 노드 : 모니터, 스피커, 파일, 네트워크, 데이터베이스 등 Stream(스트림) 입력 또는 출력 데이터가 한 방향으로 끊임없이 전송되는 것 (출발지 노드 -> 도착 노드) - 입력 스트림 : 자바에서 데이터가 입력될 때 처리하는 스트림 - 출력 스트림 : 자바에서 데이터가 출력될 때 처리하는 스트림 스트림 종류 1. byte 기반(단위) 스트림 : 그림, 사진, 영상 등 바이너리(Binary) 데이터를 입출력 InputStream, OutputStream을 최상위 클..
BigInteger 클래스 정수 기본형 데이터타입을 확장한 클래스 (금융권에서 주로사용) Integer i = 10;- Wrapper 클래스 타입은 오토박싱/오토언박싱에 의해 자동 변환 BigInteger bi = 10; - BigInteger 클래스 타입은 자동변환 지원되지 않아, 생성자를 통해 문자열 형태로 정수를 전달해야한다! - long 타입보다 크거나 작은 정수는 취급이 불가능한 문제를 해결한다. - 객체 생성 시 파라미터로 전달할 정수는 "문자열" 형태로 전달한다. - 정수 데이터를 내부적으로 int[ ]타입으로 관리하고 toString()메서드가 오버라이딩 되어있다. 일반 산술연산자를 사용한 연산은 불가능하며 반드시 메서드 통해 연산 수행 => add(), substract(), multip..
날짜 및 시간 정보에 대한 형식화(Formatting) 클래스 - 날짜 및 시간 정보를 개발자가 원하는 형식으로 표현하기 위한 클래스로 형식 지정 문자를 사용해 표현할 형식 지정한다. SimpleDataFormat 클래스 - Date 타입 객체에 대한 형식화 형식 지정문자 y: 연도(yy, yyyy), M: 월, d: 일 E: 요일(E, EEEE) H: 시(0~23), h: 시(1~12), m, s, a: 오전/오후표시 Date 객체 표현 형식 변경 Date now = new Date(); Mon Jul 11 09:07:55 KST 2022 가 출력된다(현재 날짜) 1. 표현형식을 지정하기 위해 형식 지정문자를 사용한 문자열 패턴 생성 String pattern = "yy년 MM월 dd일 EEEE a h..
package Lambda; // 1. 파라미터와 리턴타입이 없는 경우 (파라미터: X, 리턴타입: X) @FunctionalInterface interface MyFunc1 { // 함수형 인터페이스 어노테이션(@FunctionalInterface) 선언 시 에러 발생! // => 함수형 인터페이스는 반드시 하나의 추상메서드(abstract method)를 가져야함 public void methodA(); //public void methodB(); } // 2. 파라미터가 있는 람다식 (파라미터: O, 리턴타입: X) @FunctionalInterface interface MyFunc2 { void methodB(String msg); } // 3. 리턴타입이 있는 람다식 (파라미터: O, 리턴타입:..
프로세스 (Process) - 프로그램을 실행하여 메모리에 로딩된 상태 (= 실행 중인 프로그램) - 멀티태스킹 (Multi Tasking) => 프로세스가 여러 개 일때 해당 프로세스들이 동시에 수행되는 것처럼 보이는 것으로 정확히는 CPU가 빠른 속도로 프로세스들을 번갈아가며 처리한다. 쓰레드 (Thread) - 프로세스 내에서 작업의 최소 단위로 하나의 프로세스 내에 쓰레드 한 개 (= Single Thread)일 때, 해당 프로세스 내에서 동시에 수행 가능한 작업은 단 하나 뿐이다. - 하나의 프로세스 내에서 동시에 수행 가능한 작업을 늘리려면 멀티 쓰레딩을 구현 해야한다! ex) 메신저에서 파일 전송과 함께 메세지 송신, 수신을 동시에 수행하는 것 기본 프로그램의 경우(쓰레드 적용x) packa..
StringBuilder & StringBuffer List-A V L array&vector 비슷한데 vector 멀티쓰레드 - StringBuffer : 문자열이 안전하게 변경되도록 보장한다. - StringBuilder : 문자열이 안전하게 변경되도록 보장하지 않는다. (멀티 쓰레드 프로그램이 아니라면 StringBuilder 속도가 좀더 빠르다) identityHashCode 인스턴스가 처음 생성되었을 때 메모리 주소 String javaStr = new String("Java"); System.out.println("javaStr 문자열 주소 : " + System.identityHashCode(javaStr)); 문자열을 추가해보자! buffer.append(" and"); buffer.app..
제네릭(일반화) 객체 생성 시 데이터타입을 지정하여 사용하도록 하는 기법 - 객체를 생성할 때마다 다른 데이터타입으로 사용 가능하다. 데이터타입은 참조데이터 타입만 지정 가능 - 제네릭 타입 지정 생략 시 모든 데이터타입은 Object로 고정된다. 제네릭 타입 사용 시 주의사항 static, new 연산자, instanceof 연산자 사용 시 제네릭 타입의 파라미터를 사용할 수 없다. 사용 시점에서 데이터타입 확인이 불가능하기 때문! Integer 타입만 허용하는 객체를 생성할 경우 List li = new ArrayList(); 다른 타입의 데이터가 입력되면 에러가 난다. li.add(1); li.add("2");// 컴파일에러 li.add(3.14);// 컴파일에러 li.add(2); li.add(3..