
Java에서 Set 인터페이스는 java.util 패키지의 일부로, 중복을 허용하지 않는 유일한 요소들을 저장하는데 사용됩니다. 이 인터페이스는 컬렉션 프레임워크의 일부이며, 순서에 의존하지 않는 데이터 집합을 관리하기 위해 설계되었습니다.주요 특징중복 허용 불가: Set에 같은 요소를 추가하려고 하면, 추가가 되지 않습니다. 즉, 모든 요소가 고유해야 하며, 이미 존재하는 요소를 추가할 경우 무시됩니다.순서 보장하지 않음: Set은 요소들의 순서를 유지하지 않습니다. 요소들이 내부적으로 어떻게 저장되고 관리되는지는 Set을 구현하는 클래스에 따라 다릅니다. 따라서 요소들이 추가된 순서와 Set에서 요소를 순회할 때의 순서가 다를 수 있습니다.값의 유일성: Set은 각 요소의 유일성을 보장합니다. 이는 ..

List 인터페이스자바에서 객체를 순서대로 저장하고 관리할 수 있도록 설계된 인터페이스java.util 패키지에 속하며, 배열이나 연결 리스트 등의 순차적 자료 구조의 구현체를 위한 메서드를 정의한다. List 인터페이스의 주요 특징순서 유지: List 인터페이스를 구현하는 자료 구조는 원소들이 삽입된 순서를 유지한다. 이는 원소들이 리스트 내에서 특정 위치(index)를 가지며, 이 인텍스를 통해 접근할 수 있다는 것을 의미한다. 중복 허용: List 는 같은 값을 가진 원소의 중복 저장을 허용한다. 예) 같은 값을 여러 번 리스트에 추가할 수 있으며, 이는 리스트의 크기를 증가시키고 각각의 원소는 별도의 인덱스를 갖게 된다.가변 크기 : List의 구현체들은 동적으로 크기가 조절된다. 즉, 원소를..

Stack(스택)데이터를 일시적으로 저장하기 위한 선형 자료구조'후입선출(Last in, First Out ; LIFO) 원칙을 따른다. 가장 마지막에 추가된 요소가 가장 먼저 제거된다는 것을 의미한다.(예를 들어, 식상에서 사용된 접시를 쌓아 두었다가 사용할 때 가장 위에 있는 접시부터 꺼내는 것과 비슷하다.) 스택의 주요 연산 Push: 스택에 요소를 추가하는 연산입니다. 스택의 맨 위에 새로운 요소를 놓습니다.Pop: 스택에서 요소를 제거하는 연산입니다. 스택의 맨 위에 있는 요소를 꺼내며, 그 요소는 스택에서 삭제됩니다.Peek 또는 Top: 스택의 맨 위에 있는 요소를 반환하지만, 제거하지는 않습니다. 스택의 최상위 요소를 확인할 때 사용합니다.IsEmpty: 스택이 비어 있는지 확인합니다...

자료구조데이터를 효율적으로구성하고 조작하기 위한 방법을 제공하는 클래스와 인터페이스의 모음 다양한 요구 사항에 맞게 설계되어 있으며 데이터를 삽입, 삭제, 검색, 정렬 등의 작업을 효율적으로 수행할 수 있도록 지원한다.자바에서 제공하는 자료구조에는 배열, 리스트, 스택, 큐, 집합, 맵 등이 포함된다.프로그램의 성능과 효율성을 향상시킨다.정리프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법들이다.자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있다.여러 자료구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 한다 자바 컬렉션 프레임워크(Collection Framework)는 다양한 자료구조를 표준화하여 제공하는 클래스의 집합이다.자바 컬렉션 프레임워크프로..

class OuterClass{ //외부 클래스 ...class NestedClass{ // 중첩 클래스 ... }}외부 클래스: 내부에 클래스를 가지고 있는 클래스중첩 클래스: 클래스 내부에 포함되는 클래스 중첩 클래스 종류 정적 중첩 클래스: 앞에 static 이 붙어서 내장되는 클래스비정적 중첩 클래스: static 이 붙지 않은 일반적인 중첩 클래스- 내부 클래스: 클래스의 멤버처럼 선언되는 중첩 클래스- 지역 클래스: 메서드의 몸체 안에서 선언되는 중첩 클래스- 익명 클래스: 수식의 중간에서 선언되고 바로 객체화되는 클래스 내부 클래스(inner class)클래스 안에 클래스를 선언한다. 외부 클래스의 인스턴스 변수와 메서드를 전부 사용할 수 있다.private 로 선언되어 있어도 접근이..

String 선언하는 2가지 방법1. heap 메모리에 인스턴스로 생성되는 경우2. 리터럴 영역으로 상수 풀(constant pool)에 있는 주소를 참조하는 방법 heap 메모리는 생성될 때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가진다. String 을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열이 생성된다.=> 리터럴 방식으로 한 번 생성된 String 은 불변이므로 계속 새로 생겨진다. 예시) 예시2) StringBuffer 클래스 String 클래스의 잦은 변화가 있을 때 메모리 낭비가 발생할 수 있다.이를 대체하는 방법으로는 StringBuilder, StringBuffer 활용할 수 있다. 내부적으로 가변적인 char[]를 멤버 변수..

프로그램에서의 오류컴파일 오류(compile error)프로그램 코드 작성 중 발생하는 문법적 오류최근에는 개발 환경(eclipse)에서 대부분 컴파일 오류는 detection 됨. 실행 오류(runtime error)실행 중인 프로그램이 의도하지 않은 동작(bug)을 하거나 프로그램이 중지 되는 오류실행 오류 또는 비정상 종료가 되는 경우 시스템의 심각한 장애를 일으킴.실행 오류는 개발자가 해결 가능하다. 시스템 오류(error): 컴퓨터 하드웨어의 고장으로 인해 가상 머신에서 응용프로그램 실행 오류가 발생하는 것. 너무 심각해서 프로그래머가 처리할 수 있는 방법이 없는 오류다. 동적 메모리가 없는 경우, 스택 메모리 오버플로우 등예외(Exception): 잘못된 사용 또는 코딩으로 인한 오류, 프로그..

Thread 하나의 프로세스는 하나 이상의 Thread를 가지게 되고, 프로세스 내에서 실제 작업을 수행하는 단위는 Thread 이다.(process: 저장되어 있는 프로그램이 실행되면 OS로부터 메모리를 할당 받아 프로세스 상태가 된다.)모든 자바 프로그램은 메인 스레드에서 시작되면, 사용자는 추가적인 스레드를 생성할 수 있다.각 스레드는 독립적으로 실행되면, 자신만의 호출 스택을 가진다.(각 스택 영역은 서로 독립적이다.)프로세스의 모든 스레드는 같은 Heap 메모리 공간과 다른 자원을 공유할 수 있다. 쓰레드를 추가로 만들어서 사용하는 방법 1. Thread 클래스를 상속하여 만들 수 있다.예시 1) 예시2) 2. Runnable 인터페이스를 구현하여 만들 수 있다. 멀티 스레딩..

Event Listener implements ActionListener 사용ActionListener => 운영 체제가 제어하는 이벤트를 등록할 수 있다.운영 체제가 이 버튼을 눌렀을 때 자신에게 알려달라는 의미즉, addEventListener() 는 button1이 눌러지는지 확인하는 이벤트이며 이 메서드의 책임은 이벤트 리스너만 등록하는 것임. button1.addActionListener(this) 로 이벤트를 등록함. 오버라이드 : 이벤트가 일어나면 호출되어지는 메서드약속되어 있던 추상 메서드를 오버라이드 했다.이벤트가 발생되면 이 메서드를 수행하라고 약속되어 있다.단, 어떤 컴포넌트가 이벤트가 할당되었는지 등록을 먼저 해야 한다. Key Listener키보드를 눌렀을 때 호출textA..