본문 바로가기

분류 전체보기292

2024.07.05 (금) {인터페이스, 디폴트메서드, relatable인터페이스, 해시함수, 해시코드, 타입캐스팅 } 인터페이스(Interface)다른 클래스들이 구현해야 하는 메서드들을 정의하는 추상 타입입니다. 인터페이스는 클래스가 제공해야 하는 행동의 규약을 정의하며, 클래스와 달리 인터페이스 자체는 구현을 포함하지 않습니다. 자바의 인터페이스는 다중 상속을 우회하는 방법으로 많이 사용됩니다.단, 클래스와는 달리 인터페이스의 모든 필드는 public static final이어야 하며, 모든 메소드는 public abstract이어야 합니다.이 부분은 모든 인터페이스에 공통으로 적용되는 부분이므로 이 제어자는 생략할 수 있습니다.이렇게 생략된 제어자는 컴파일 시 자바 컴파일러가 자동으로 추가해 줍니다.인터페이스의 특징추상 메서드: 인터페이스는 기본적으로 구현 없이 메서드 시그니처만을 가집니다. 자바 8부터는 디폴트 .. 2024. 7. 5.
2024.07.04 (목) { Thread 클래스, final 키워드, 익명 클래스, 로컬 클래스, 루즈 커플링, 펑셔널인터페이스, 람다 표현식, 오토박싱, 캐스팅 } Thread 클래스Thread 클래스는 Java의 표준 라이브러리에 포함된 멀티스레딩을 위한 클래스입니다. 이 클래스는 여러 작업을 병렬로 실행할 수 있게 도와줍니다.주요 메서드start(): 새로운 스레드를 시작하고, 새로운 호출 스택을 생성합니다. 이 메서드는 스레드의 run() 메서드를 호출합니다.run(): 스레드가 실행할 코드를 포함하는 메서드입니다. Runnable 인터페이스를 구현하거나 Thread 클래스를 상속받아 오버라이드할 수 있습니다.join(): 현재 스레드를 대기 상태로 만들고, 다른 스레드의 종료를 기다립니다.sleep(long millis): 현재 스레드를 일정 시간 동안 대기 상태로 만듭니다.interrupt(): 스레드를 중단하도록 요청합니다.Runnable 인터페이스는 J.. 2024. 7. 4.
2024.07.03 (수) { 가비지컬렉션, 추상클래스, 어노테이션, 접근제어자, 스태틱 블럭, 중첩클래스, this키워드, 이터레이터 } 가비지 컬렉션(Garbage Collection)자바 런타임 환경은 더 이상 사용되지 않는 객체를 자동으로 삭제합니다. 이 과정을 가비지 컬렉션(Garbage Collection)이라고 합니다. 객체에 대한 모든 참조가 없어지면 그 객체는 가비지 컬렉션 대상이 됩니다. 변수에 보관된 참조는 변수가 스코프(범위)를 벗어날 때 일반적으로 제거됩니다. 또는, 참조변수를 특별한 값인 null로 설정하여 객체 참조를 명시적으로 제거할 수도 있습니다. 자바 런타임 환경에는 가비지 컬렉터가 있어서 더 이상 참조되지 않는 객체가 사용하는 메모리를 주기적으로 해제합니다. 가비지 컬렉터는 적절한 시점이라고 판단되면 자동으로 작업을 수행합니다. 추상 클래스 (Abstract Class)추상 클래스는 하나 이상의 추상 메서드.. 2024. 7. 3.
2024.07.02 (화) { 콜바이밸류,레퍼런스, 인터페이스, this,super, 함수형 인터페이스 } 콜바이밸류 (Call by Value) 콜바이벨류(Call by Value)는 함수가 인수로 전달받은 값을 복사하여 처리하는 방식이다.이때, 전달된 값은 기본형, 즉 JS의 원시 타입(primitive type) 데이터인 경우에 해당하며, 변수가 가진 값을 복사하여 전달하므로 함수 내에서 값을 변경해도 원본 값은 변경되지 않는다. 따라서 값의 불변성(Immutability)을 유지하는 데에 용이하다. "Call by Value"는 함수 호출 시 매개변수로 값을 전달하는 방식 중 하나입니다. Java에서는 모든 메서드 호출이 "Call by Value" 방식으로 이루어집니다. 즉, 메서드에 인자로 전달되는 값의 복사본이 전달됩니다. 이를 통해 메서드 내부에서 인자의 값이 변경되더라도 원본 변수에는 영향을 .. 2024. 7. 2.
2024.07.01 (월) { 메서드와필드, 신택틱슈가, 이터레이터, ArrayList, ArrayCopy, 런타임에리어, 증감연산자, 엔트리포인트, 콜스택, 클래스로더 ... } Syntactic Sugar  (신택틱 슈가)프로그래밍 언어에서 특정 기능이나 작업을 더 쉽게 읽고 쓸 수 있게 하는 문법적 구조를 의미합니다. 이러한 구조는 본질적으로 새로운 기능을 추가하지 않지만, 코드의 가독성을 높이고 더 간결하게 작성할 수 있도록 도와줍니다. 즉, 프로그래밍 언어의 편의성을 높이기 위해 제공되는 문법적 편의 장치입니다. 자바의 향상된 for 루프// 전통적인 for 루프int[] numbers = {1, 2, 3, 4, 5};for (int i = 0; i Iterator (이터레이터)자바 컬렉션 프레임워크에서 컬렉션 요소를 순차적으로 접근하는 방법을 제공하는 인터페이스입니다. 이를 통해 컬렉션의 요소를 반복(iterate)하고, 필요에 따라 요소를 제거할 수 있습니다. Iter.. 2024. 7. 1.
2024.06.28 (금) { 상속, 자동변수, 참조변수, 액세스연산자, 클래스 리터럴 } **자동 변수(Automatic Variable)**는 주로 **지역 변수(Local Variable)**를 의미합니다. C, C++ 등 많은 프로그래밍 언어에서 자동 변수는 함수나 블록이 시작될 때 자동으로 생성되고, 해당 함수나 블록이 끝날 때 자동으로 소멸되는 변수를 말합니다.특징:자동 할당 및 해제: 함수가 호출될 때 메모리가 자동으로 할당되고, 함수가 반환될 때 메모리가 자동으로 해제됩니다.지역성: 자동 변수는 선언된 함수나 블록 내부에서만 접근할 수 있습니다.스택 영역: 일반적으로 자동 변수는 스택 메모리 영역에 할당됩니다.2. 메모리 관리 측면에서의 자동 변수일부 프로그래밍 언어에서는 변수의 수명 관리 방식을 설명할 때 자동 변수와 정적 변수(Static Variable)를 구분하기도 합니다.. 2024. 6. 28.