전체 글 95

멀티 스레드

멀티 스레드란?멀티 태스킹이란 두가지 작업을 동시에 처리하는 것을 뜻합니다.한 프로그램 안에서 멀티 태스킹을 동시에 하는 애플리케이션들도 있습니다. ex) 메신저 스레드는 프로그램의 실행흐름 입니다. 프로그램 내에 스레드가 2개라면 두 개의 코드 흐름이 생긴다는 뜻입니다. 스레드 사용방법 방법1 1. Runnable인터페이스를 상속받아 run() 추상메서드를 재정의 하고 2. Thread객체의 생성자의 매개값으로 전달합니다. 3. 그 다음 start()메서드를 통해 실행시킵니다 방법2 1. Thread클래스를 상속받아 run() 추상메서드를 재정의 하고 2. Thread객체의 생성자의 매개값으로 전달합니다. 3. 그 다음 start()메서드를 통해 실행시킵니다.두 개의 차이는 무엇인가요? - Runnab..

자바 2024.05.01

정규표현식

정규 표현식이란? 문자열이 정해진 패턴으로 구성되어 있는지 검증해야 할 때, 사용합니다. ex) 이메일, 전화번호 Pattern클래스, Matcher클래스Pattern클래스 -java.util패키지의 Pattern클래스의 matcher(), matchers() 메서드를 정규표현식 검증에 이용합니다static메서드 compile(패턴) – 정규표현엔진(정규식)을 만들어 냅니다 matcher(검증 데이터) : 데이터를 비교해서 Matcher클래스로 반환 matchers(패턴, 검증 데이터) : 패턴으로 비교하여 boolean형으로 반환String info = "30세/서울시 강남구/02-234-5678/010-234-5678"; String pattern = "\\d{2,3}-\\d{3,4}-\\d{3,4}..

자바 2024.05.01

익명객체와 람다식

익명 객체 란 인터페이스 타입으로 변수를 선언하고, 구현 객체를 초기값으로 대입하는 경우를 생각해보자. 인터페이스의 구현 클래스를 선언하고,  new 연산자를 이용해서 구현 객체를 생성한 후, 필드나 로컬 변수에 대입하는 것이 기본이다. 하지만, 구현 클래스가 매번 달라지거나, 한 번만 사용되는 경우, 굳이 구현 클래스를 생성하지 않고 익명 클래스로(이름 없는 클래스) 로 선언 할 수 있습니다. 람다식 이란 함수적 프로그래밍 Y = f(x); 형태의 함수로 구성된 프로그래밍 기법 함수를 매개 값으로 전달하고 결과를 받는 코드로 구성 함수적 프로그래밍이 객체 지향 프로그래밍 보다는 효율적인 경우. 1. 대용량 데이터의 처리시 2. 이벤트 지향 프로그램시 최근 프로그래밍 기법 객체지향프로그래밍 + 함수적 프..

자바 2024.05.01

API-IO(Input스트림-Output스트림)

스트림 이란?스트림은 데이터의 흐름(흐르는 통로)를 말합니다. - 데이터가 들어오면 입력 스트림 입니다 - 데이터가 나가면 출력 스트림 입니다 - 스트림 클래스는 크게 두 종류로 구분됩니다. (byte기반, 문자 기반) - 바이트 기반 스트림 – 그림, 문자 등 모든 종류의 데이터를 보낼 수 있습니다 - 문자 기반 스트림- 오직 문자만 보낼 수 있도록 특화되어 있습니다 스트림은 byte기반, 문자 기반으로 나뉜다  바이트 단위로 쓰는 OuputStreamOutputStream 클래스 - OutputStream은 바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스입니다. OutputStream 주요 메서드 1. write(byte b): 출력 스트림으로 1바이트를 내보냄. 2. write(byte[] ..

자바 2024.05.01

API – java.util 패키지

* java.util 패키지 - java.util 패키지는 자바 프로그램 개발에 보조 역할을 하는 클래스들을 담고 있습니다. 주로 컬렉 션 관련 클래스들을 담고 있습니다. - java.util 패키지 주요 클래스 1. Arrays: 배열을 조작할 때 사용. 2. Date: 날짜와 시간 정보를 저장하는 클래스 3. Calendar: 운영체제의 날짜와 시간을 얻을 때 사용 4. Random: 난수를 얻을 때 사용  Arrays클래스 * Arrays 클래스 - Arrays 클래스는 배열 조작 기능을 가지고 있습니다. 배열의 복사, 항목 정렬, 항목 검색과 같은 기능 을 말합니다. - Arrays 클래스의 모든 메서드는 정적 메서드이므로 클래스이름으로 바로 사용이 가능합니다. * Arrays 클래스 주요 메서드..

자바 2024.05.01

API – java.lang패키지

API – java.lang패키지API – java.lang패키지 * JAVA API(Application Programming Interface) - API는 라이브러리라고 부르며 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말합니다. - 자바 표준 API 문서 주소: https://docs.oracle.com/javase/8/docs/api* java.lang 패키지 - java.lang 패키지는 자바 프로그램의 기본적인 클래스들을 담고 있는 패키지입니다.  - 그렇기 때문에 java.lang 패키지에 있는 클래스와 인터페이스는 import 구문 없이 사용할 수 있습니다. - java.lang 패키지 주요 클래스 1. Object: 자바 클래스의 최상위 클래스 2. System: 표준..

자바 2024.05.01

예외 처리

예외란?예외에는 컴파일러 체크 예외와 실행 예외(Runtime Exception)가 있습니다. - 컴파일러 체크 예외는 자바 소스를 컴파일하는 과정에서 예외 처리 코드를 검사하여 예외 처리 코드가 없다면 컴파일 오류가 발생합니다. - 실행 예외는 컴파일하는 과정에서 예외처리 코드를 검사하지 않는 예외를 말합니다 예외처리 - 에러에 대한 처리를 의미한다. - 자바는 예외처리 메커니즘을 제공한다. - 프로그램에서 문제가 될만한 부분을 예상하여 사전에 "문제가 발생하면 이렇게 처리하라" 라고 프로그래밍 하는 것을 예외 처리라고 합니다예외가 발생하면 문제가 발생한 곳에 대한 정보 출력과 프로그램이 종료된다. 대표적인 실행 예외의 종류주요 실행 예외 - 1. NullPointerException - 객체 참조가 ..

자바 2024.05.01

인터페이스

상수, 추상메서드만 가지고 있는 인터페이스 인터페이스 선언된 변수는 public static final을 생략하더라도 컴파일 과정에서 자동으로 붙게 됩니다. (상수) - 인터페이스의 메서드를 추상메서드 형식으로 선언하면 abstract를 붙이지 않더라도 자동으로 컴파일 과정에서 붙게 됩니다. (추상메서드) - 추가적으로 static메서드의 선언 또한 가능 합니다. (자바 1.8버전 이후) 인터페이스 왜 생겼을까?인터페이스 왜 생겼을까?  인터페이스 기본 예제인터페이스의 기능1 (다중 상속을 지원한다) 인터페이스 기능2 (메서드 명세서)  인터페이스 기능3 다중 상속 예제 interface간에도 상속이 가능하다 interface간에 상속은 extends를 이용한다 인터페이스 정리- 인터페이스는 상수와 추상..

자바 2024.05.01

final

금지의 규제 final 키워드 final (변경 금지의 규제) - final 키워드는 클래스, 메서드, 변수에 적용되며 abstract와 동시에 사용될 수 없습니다. - final 클래스의 경우에는 상속이 안됩니다. 즉 서브클래스를 가질 수 없습니다. - final 메서드는 재정의를 할 수 없습니다. - final 변수는 값을 변경할 수 없습니다. final클래스 – final메서드final class - 클래스 선언 시 final을 사용하면 그 클래스는 상속이 불가능해집니다. - final 클래스는 자식 클래스를 가질 수 없고, 오직 외부에서 객체 생성을 통해서만 사용할 수 있습니다. - final 클래스의 대표적인 예가 String 클래스입니다. 사용자가 임의로 String 클래스를 상속받아 메서드를..

자바 2024.05.01

정적 제한자 static

static의 전반적인 내용 사용 제한자(Usage Level modifier) * static - static 제한자는 변수, 메서드에 적용되는 자바의 키워드입니다. - static 메서드나 변수는 해당 클래스의 객체 없이도 참조할 수 있습니다. - static 블록(static 메서드, 정적 초기화자) 안에는 static 변수만 사용해야하고, static 메서 드만 호출할 수 있습니다. 즉 static 블록에서 non-static 멤버를 객체 생성 없이 직접 참조할 수 없습니다. - static 제한자는 지정된 변수와 메서드를 객체와 무관하게 만들어주기 때문에 this를 가질 수 없습니다. - static 메서드는 non-static 메서드로 재정의(Overriding) 될 수 없습니다. - 대표적인..

자바 2024.05.01