반응형

자바기초 14

JAVA_18_Thread

#1 프로세스와 스레드멀티태스킹 : 동시에 두가지 이상의 작업을 처리하는 것멀티태스킹을 위한 두 가지 도구 : 프로세스, 스레드프로그램 : 파일이 존재하지만 아직 메모리에 올라가 있지 않은 상태, 즉, 실행되지 않은 코드의 집합프로그램을 실행하는 순간 메모리에 올라가고 동작하게 되는데 이 상태의 프로그램을 '프로세스'라고 함프로세스프로그램이 동작하여 메모리에 올려진 상태, 실행 중인 프로그램을 의미프로세스는 독립적으로 메모리에 등록되므로 여러 개의 프로그램을 동시에 실행할 수 있게 됨프로세스가 여럿이 병렬적으로 실행되는 것을 thread가 해결해줌스레드프로세스 내에서 독립적으로 실행되는 작업 단위프로세스 내의 주소 공간이나 자원들과 같은 스레드끼리 공유하면서 실행됨스레드는 프로세스의 heap, data(..

개발/Java 2024.07.16

JAVA_17_람다식

#1 람다식(Lambda expression)JDK 1.8부터 자바에서 지원하는 함수형 프로그래밍함수의 이름이 없는 익명 함수(anonymous function)를 만들기 위한 표현식자바는 객체 지향 프로그램으로 클래스 생성 후 클래스 안에 메서드와 객체 만들어서 사용함수형 프로그래밍은 객체 지향 프로그래밍과 달리 함수만 구현하고 실행*함수: 클래스에서 독립적, 메서드: 클래스에 종속적#2 람다식 문법'익명 함수'답게 메서드의 이름과 반환 타입을 제거하고 화살표 기호(→)를 사용해 구현생략() 소괄호 생략 : 매개 변수가 한 개인 경우{} 중괄호 생략 : 함수의 return 타입이 없는(void) 경우return 생략 : 중괄호 안의 구현 코드가 return 문만 존재하는 경우 (중괄호, return 모..

개발/Java 2024.07.16

JAVA_16_컬렉션 프레임워크

#1 컬렉션 프레임워크자바는 자료구조를 미리 구현하여 java.util 패키지에서 컬렉션 프레임워크를 제공기존에 존재했던 자료 구조에 인터페이스로 설계된 기능을 클래스를 통해 제공하여 데이터 관리에 용이한 자료 구조 객체를 구조화한 것컬렉션: 기존의 List, Map, Set 등의 자료 구조프레임워크: 클래스와 인터페이스를 묶어 놓은 개념List와 Set 인터페이스는 Collection 인터페이스를 상속받지만, Map 인터페이스는 구조상 차이로 별도로 정의인터페이스설명특징대표 구현 클래스List순서가 있는 데이터의 집합데이터 중복 ooArrayList, LinkedList, VectorSet순서를 유지하지 않는 데이터의 집합데이터 중복 xxHashSet, LinkedHashSetMap키(key) - 값(..

개발/Java 2024.07.16

JAVA_15_기본 API 클래스

#1 자바 API 문서프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음 == 라이브러리 #2 java.lang 패키지자바 프로그램의 기본적인 클래스를 담고 있는 패키지 (선언 없이 사용, import 필요 없음)클래스용도Object자바 클래스의 최상위 클래스로 사용모든 클래스는 Object가 가진 여러 메서드를 그대로 사용하거나 override해 사용 가능   - boolean equals(Object obj) : 다른 객체와 자신이 가진 실제 값 비교   - int hashCode() : 객체의 hashCode 값을 반환   - String toString() : 객체 자신의 문자 정보를 반환System시스템의 표준 입/출력 장치로부터 데이터를 입력받거나 출력하기 위해 사용자바 가상 기계를 종..

개발/Java 2024.07.16

JAVA_14_예외 처리

#1 예외 처리▶ 에러(error)해결할 수 없는 시스템에 에러가 발생해 프로그램이 종료된 경우시스템에 비정상적인 상황이 생겼을 때 발생개발자가 예측하거나 처리할 수 없는 영역OutOfMemoryError : 프로그램 실행 중 메모리 부족IOError : 입출력 에러StackOverFlowError : 가용 메모리 부족 현상, 재귀 호출 문제 시 발생▶ 예외(exception)프로그램 사용 중 발생한 오류를 개발자가 처리해 메시지가 출력된 경우프로그램 구동 중에 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고 정상 동작할 수 있도록 처리하는 과정구분체크 예외비체크 예외처리 여부문법적으로 예외 처리를 강제함반드시 처리 해야 함문법적으로 강제하지 않음개발자의 판단에 의해 처리확인 시점컴파일 단계실행 ..

개발/Java 2024.07.16

JAVA_13_내부 클래스

#1 내부 클래스 (중첩 클래스)▶ 내부 클래스란?두 클래스 간에 서로 쉽게 접근하여 사용할 수 있도록 만든 것보통 바깥쪽의 클래스를 외부 클래스, 안쪽의 클래스를 내부 클래스라고 함내부 클래스에서도 접근 제한자를 부여해, 클래스의 접근에 대한 기능을 제한할 수 있음두 클래스 멤버들 간에 손쉽게 접근 가능불필요한 클래스를 감춰 코드의 복잡성을 줄일 수 있음public class OuterClass { class InnerClass { }} #2 내부 클래스 종류▶ 선언된 위치별 내부 클래스 종류메서드설명인스턴스 클래스외부 클래스의 멤버 변수와 같은 위치에 선언주로 외부 클래스의 멤버 변수와 관련된 작업에 사용될 목적으로 선언외부 클래스가 반드시 선언된 후, 인스턴스 클래스 생성정적 클래스외부 클래스의 멤..

개발/Java 2024.07.16

JAVA_12_추상 클래스 & 인터페이스

#1 추상 클래스 & 추상 메서드▶ 추상 클래스란?일반 클래스처럼 독립적으로 생성자를 호출해 객체를 생성할 수 없음자식 클래스의 생성자에서 super()를 통해 추상 클래스의 생성자를 호출하여 부모 객체를 생성한 후 자식 객체를 생성선언: [접근 제한자] abstract class 클래스명 {필드, 생성자, 메서드}자식 클래스들이 반드시 구현해야 하는 메서드가 있다면, 추상 메서드로 해당 메서드를 부모 클래스에 선언추상 클래스를 상속받은 모든 자식 클래스는 반드시 추상 메서드를 오버라이딩 및 재정의하여 구현해야 함 자식 클래스 간의 공통적인 필드와 메서드 이름을 통일반드시 구현해야 하는 메서드를 선언함으로써 공통 규격을 제공▶ 추상 메서드란?구현 내용 없이 구현부가 비어있는 메서드선언: [접근제한자] a..

개발/Java 2024.07.16

JAVA_11_다형성 & 타입 변환

#1 클래스에서의 타입 변환자료형(타입) 변환클래스의 객체 타입 변환: 클래스의 타입 변환은, 상속 관계의 클래스들 간에서만 가능▶ 클래스 자동 타입 변환개발자가 직접 명시해주지 않아도 자동으로 타입 변환이 일어나는 것상속 관계에 있는 자식 클래스의 객체를 부모 타입의 객체로 변환부모 타입으로 변환한 자식 객체는, 부모 클래스에 선언된 멤버(필드, 메서드)만 사용 가능단, 부모 클래스의 메서드를 @오버라이딩한 메서드는 자식 객체의 것을 호출 가능▶ 클래스 강제 타입 변환자식 객체가 부모 타입으로 자동 타입 변환 한 후, 다시 자식 타입으로 변환하는 것개발자가 직접 명시해야만 타입 변환 가능 #2 다형성(polymorphism)▶ 다형성이란?객체 지향 프로그래밍의 대표적인 특징 중 하나하나의 타입으로 다양..

개발/Java 2024.07.16

JAVA_10_상속

#1 상속▶ 상속이란?부모 클래스가 자식 클래스에게 클래스 멤버를 물려주는 것클래스를 재사용하기 때문에 중복을 줄여주고 수정을 최소화함▶ 자식 클래스 선언extends 키워드를 사용해 상속받을 클래스를 지명자식 클래스는 부모 클래스의 모든 멤버를 그대로 사용 가능// 상위 클래스class A {}// 하위 클래스class B extends A {}#2 상속에서의 생성자 : super()this() 메서드가 같은 클래스의 다른 생성자를 호출할 때 사용된다면,super() 메서드는 자식 클래스에서 부모 클래스의 생성자를 호출할 때 사용필요에 따라 매개변수를 전달할 수 있음개발자가 직접 생성자를 선언할 때는 자식 클래스에서 반드시 부모 클래스의 생성자를 호출해야 함public class A { String n..

개발/Java 2024.07.16

JAVA_09_생성자

#1 생성자의 특징▶ 생성자란?클래스르르 구성하는 구성요소 중 하나객체를 생성할 때 호출되어 객체의 초기화를 담당생성자는 일반 메서드와 달리 반환 타입이 없으며, 메서드 이름은 클래스 이름과 동일클래스명(매개변수1, 매개변수2...) {}생성자 호출시 new 키워드 함께 사용클래스명 객체명 = new 클래스명();▶ 기본 생성자클래스를 생성하면서 자바 컴파일러가 기본 생성자를 자동으로 제공생성자는 객체를 생성함과 동시에 객체를 초기화 해줌필드와 메서드를 호출하는 등 객체를 사용하기 위해 객체를 메모리에 할당 #2 생성자 오버로딩매개변수의 개수와 자료형의 형태를 달리하여 생성자를 여러개 선언 다양한 객체를 생성할 수 있음 #3 this & this()▶ this 키워드객체 자기 자신 스스로를 참조필드와 생..

개발/Java 2024.07.15
반응형