✔️ 배열의 인덱스 배열의 인덱스 부분에서 지속적으로 같은 오류가 반복되어 제대로 짚고 넘어가려 한다. 자바는 인덱스가 배열의 크기보다 크거나 음수를 요청할 경우 예외를 발생시킨다. 다음은 예외 발생의 예시이다. arr이란 배열의 크기는 5이다. 따라서 인덱스는
✔️ 삼항연산자 정의 : 피연산자를 세 개 갖는 조건 연산자 문법 > 조건식?반환값1:반환값2 예시 ✔️ next() / nextLine() next() : 공백(Space) 전까지 입력받은 문자열 반환 nextLine() : Enter 전까지 입력받은 문자열
✔️ 생성자 정의 : 클래스 안에 있는 필드의 초기값을 지정함 예시 ✔️ 설정자 정의 : 초기화 된 필드값을 변경함 예시 ✔️ 접근자 정의 : 변경된 필드값을 읽어옴 예시
학기 중에 배웠던 내용을 복습하다가 궁금한 점이 생겨서 제대로 짚고 넘어가려 한다. 같은 내용을 또 다시 모르는 일이 없도록 숙지하자!!! ✔️ 접근지정자 접근 지정자|동일 클래스|동일 패키지|상속|다른 패키지 :--:|:--:|:--:|:--:|:--: public
✔️ 제네릭 1. 제네릭이란 : 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것 2. 제네릭 예시 위 예시처럼 String 타입과 Integer 타입 모두 사용하고 싶을 경우 제네릭을 사용하면 타입을 미리 지정하지 않고 필요에 의해 지정할 수
✔️ 스트림 1. 스트림이란 : List, Set, Map과 같은 다양한 데이터 소스를 표준화된 방법으로 다루는 것 2. 특징 Read Only 일회용이다 기본형 스트림을 제공한다.(ex) IntStream, LongStream, DoubleStream 등) ✔️
✔️ 상속 1. 상속이란 : 기존 클래스(부모 클래스, 상위 클래스, 슈퍼 클래스)를 재사용하여 새로운 클래스(자식 클래스, 하위 클래스, 서브 클래스)를 작성하는 것 2. 특징 > 1. 자식 클래스는 부모 클래스의 모든 멤버 필드와 메소드를 새롭게 정의하지 않아도
✔️ 추상클래스 1. 특징 적어도 하나의 추상메소드를 갖는 클래스 -> 추상메소드 : body를 갖지않는 메소드 상속에 사용 가능 객체 생성에 사용 불가 > ** 추상메소드 withdraw를 가지는 추상클래스 Account 2. 용도 상속에 사용 : 추상클래스를 상
✔️ 인터페이스 1. 특징 한 객체의 인터페이스는 다른 객체들이 호출할 수 있는 메소드의 집합을 정의함 상수, 디폴트 메소드, 정적 메소드를 가질 수 있음 > **
✔️ ECB(Entity-Control-Boundary) 패턴 > Entity : 시스템 데이터 Control : Boundary와 Entity 사이를 중재하는 객체 Boundary : 사용자 interfaces, gateways, proxies 등 시스템 액터와 인터
✔️ HTML 문서 기본 구조 ✔️ 텍스트 관련 태그 > hn : 제목 표시 br : 줄 바꾸기 hr : 수평 줄 생성 p : 텍스트 단락 blockquote, q : 인용구 lorem100 : 임의의 단어 100개 생성 strong, b : 굵게 표시 mark :
✔️ 자료구조 : 일련의 동일한 타입의 데이터를 정돈하여 저장한 구성체 1. 목적 : 저장한 데이터의 연산을 효율적으로 수행하기 위해 ✔️ 시스템 생명 주기 > 1. 요구사항 : 사용자 요구 사항 추출 단계, 입∙출력 명시 분석 : 추출된 요구사항의 정확성/안정성 등
✔️ 점근표기법 : 입력의 크기에 대한 함수로 표현한 것 1. O(Big-Oh) 표기법 : 점근적 상한, N0과 같거나 큰 모든 N에 대해서 f(N)이 c*G(N)보다 크지 않음 > 예시) 2N^2 + 3N + 5 = O(N^2) // 다항식에서 최고 차수 항의 계수를
✔️ Object 클래스의 메서드 메서드 | 설명 :--: | :--: public boolean equals(Object obj) | 객체 자신과 객체 obj가 같은 객체인지 여부 반환 public int hashCode() | 객체 자신의 해시코드 반환 public
✔️ Overflow 배열은 미리 정해진 크기의 메모리 공간을 할당 받아 사용해야 함 빈자리가 없어 새 항목을 삽입할 수 없는 상황인 Overflow 발생 Overflow 발생 시 주로 에러 처리를 하지만 프로그램의 안전성 향상을 위해서는 다음과 같은 방법 사용 💡 배열에 Overflow 발생 시 배열 크기를 2배 확장 💡배열의 3/4이 비어있을 시...
✔️ 연결 리스트(import java.util.LinkedList) 특징 데이터가 저장되어 있는 노드(Node) 객체들을 참조 체인으로 엮어놓은 자료구조 배열과 달리 데이터가 추가될 때마다 노드들이 생성되어 참조 체인에 추가되어서 빈 공간이 존재하지 않음 삽입이나 삭
✔️ 이중연결리스트(Doubly Linked List) 단일연결리스트는 삽입/삭제 시 반드시 이전 노드를 가리키는 레퍼런스를 추가로 알아내야 하고 역방향으로 노드 탐색이 불가함이중연결리스트는 이러한 단점을 보완 각 노드마다 한 개의 레퍼런스를 추가로 저장해야 한다는 단
✔️ 원형연결리스트(Circular Linked List) 마지막 노드가 첫 노드와 연결된 단일연결리스트 리스트가 empty가 아니면 어떤 노드도 null 레퍼런스를 가지고 있지 않으므로 프로그램에서 null 조건을 검사하지 않아도 되는 장점 💡 원형연결리스트의 노
✔️ String 불변성을 가짐 문자열 추가 시 새로운 메모리 영역을 가리켜 처음 선언했던 값이 할당되어 있는 메모리 영역은 garbage collection에 의해 사라지게 됨 Multi-thread-safe, synchronized O ✔️ StringBuffer
✔️ JDBC 자바에서 DB에 접속할 수 있도록 하는 API ✔️ JDBC 프로그래밍 절차 > 1. DriverManager 이용해 JDBC 드라이버 로드 Connection 이용해 DB 연결 Statement 생성 executeQuery 혹은 executeUpdat
✔️ ResultSet 쿼리 결과 수신 1. Cursor > (1) ResultSet을 가리키는 포인터 역할 (2) next() : 커서가 BOF(Begin Of File)에서 EOF(End Of File)에 도달할 때까지 하나씩 이동시켜 행의 유무를 Boolean으
✔️ Transaction 단위 작업 여러 개를 묶어 하나의 작업 단위로 만드는 것 DBMS로부터 ACID를 제공받기 위해 사용 ACID > - Atomicity(원자성) : All or nothing(모든 작업 성공 or 실패) Consistency(일치성) : 동
✔️ DTO(Data Transfer Object) JavaBean(간단하게 여러 데이터를 하나로 묶고 이를 getter와 setter로 조작하는 클래스) DTO가 테이블의 모든 컬럼을 포함할 필요 X 일반적으로(OMR 프레임워크에서) 테이블의 모든 컬럼과 매핑되는 객
✔️ 기존 JDBC 프로그래밍의 문제점 클라이언트 요청 처리에서 가장 많은 시간을 소요하는 것은 Connection 객체를 생성하고 DB에 접속하는 것 동시 사용 가능한 연결 개수의 제한 필요 ✔️ DBCP(Database Connection Pool) 1. 특징 >
✔️ Process 1. Process란? 실행중에 있는 프로그램 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고 있는데, 보통 스레드 단위로 스케줄링을 함 프로세스가 되는 과정 : 하드디스크에 있는 프로그램 실행 → 실행을 위한 메모리 할당이 이루어짐 →
✔️ Synchronized 1. Synchronized란? 동기화 하나의 객체에 여러 개의 객체가 동시에 접근해 처리하는 것을 막는 것 공유 데이터가 사용되어 동기화가 필요한 임계영역에 동기화를 사용하여 여러 스레드가 동시에 접근하는 것을 금지함 예시) ✔️ De
✔️ Overloading 기존에 없던 새로운 메서드를 정의함 메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것 리턴값만 다르게 갖는 오버로딩은 작성 불가 ✔️ Overriding 상속 받은 메서드의 내용만 변경함 상위 클래스의 메서드를 하위 클
✔️ Exception handling 1. 예외처리(Exception Handling)란? 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지함 2. 예외 클래스의 계층구조 자바에서는
✔️ Collection Framework 1. 핵심 인터페이스와 특징 인터페이스 | 특징 :--: | :--: List | 순서가 있는 데이터의 집합, 데이터 중복 허용 O Set | 순서가 없는 데이터의 집합, 데이터 중복 허용 X Map | 키와 값의 쌍으로 이루
✔️ Iterator Collection 인터페이스에 정의된 메서드 주로 Collection 클래스의 요소들을 읽어올 때 사용함 코드의 재사용성을 높일 수 있음 메서드 | 설명 :--: | :--: boolean hasNext() | 읽어올 요소가 남아있는지 확인 O
✔️ Enum(열거형) 1. 열거형 정의 2. 열거형 사용 사용 : 열거형 이름.상수명 비교 연산 : ==, equals(), compareTo 사용 ✔️ Annotation 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것 주석처럼 프로
✔️ Thread 1. Thread란? 프로세스(공장) + 스레드(일꾼) 프로세스 내부 작업의 흐름 또는 단위 한 프로세스 내부에 적어도 하나 존재함 2. Thread 구현 방법 1) Thread 클래스 상속받기 2) Runnable 인터페이스 구현하기 실행결과
✔️ Lamda 람다식은 메서드를 하나의 식으로 표현한 것 객체 지향 언어보다는 함수 지향 언어에 가까움 메서드를 람다식으로 표현하면 메서드의 이름 및 반환 값이 없어지므로 익명 함수라고도 함 람다식의 형태는 매개 변수를 가진 코드 블록이지만 런타임 시에는 익명 구현
✔️ Stream 만들기 컬렉션 배열 특정 범위의 정수 람다식 Stream 클래스의 iterate(), generate()는 람다식을 매개변수로 받아서 이 람다식에 의해 계산되는 결과값들을 요소로 하는 무한 스트림을 생성함 iterate() : 이전 결과에 대해
✔️ Networking 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것 1. Client/Server Client : 서비스를 사용하는 컴퓨터 Server : 서비스를 제공하는 컴퓨터 네트워크 구성 시 전용 서버를 두는 것을 서버기반 모델이라 하고,
✔️ Socket Programming Socket : 네트워크의 양방향 통신에서 양쪽 끝단으로, TCP/IP 단에서 구분할 수 있는 하나의 포트 번호를 가짐 java.net 패키지가 소켓 프로그래밍 클래스들을 제공함 1. TCP(Transmission Control
✔️ List 1. 특징 여러 개의 데이터를 한꺼번에 다룰 수 있음 미리 공간을 확보해놓지 않아도 됨 메모리 상에 연속되지 않아도 됨 필요에 따라 데이터가 늘어나거나 줄어듬(동적 할당) 데이터 사이에 빈 공간을 허용하지 않음 2. 단점 목표 위치를 알려면 첫 번째 위
✔️ HashMap 1. 특징 Array 장점 + List 장점 => 유연하면서도 빠르게 값을 찾아낼 수 있는 자료구조 key와 value 쌍으로 이루어짐 2. 종류별 시간복잡도 종류 | get() | containsKey() | next() :--: | :--: |
✔️ HashSet 데이터의 저장 순서가 유지되지 않음 중복이 허용되지 않음 HashSet의 메서드는 list의 메서드와 비슷함
✔️ Queue FIFO - First in First out ✔️ Deque(Double-Ended Queue) 양방향에서 추가/삭제 가능
✔️ Stack LIFO - Last in First out 순차적으로 데이터 추가/삭제
✔️ Binary Search Collections.binarySearch => Comparable이 구현되어 있어야 함, 순서대로 정렬되어 있어야 함 배열의 중앙값과 원하는 값이 일치하는 경우를 탐색하는 자료구조 예제) PracticeBinarySearch.jav
✔️ Sort 오름차순/내림차순 실행결과 1. Bubble Sort 정렬 알고리즘 중 가장 단순한 알고리즘, 비효율적임 동작 방식 : 인접한 두 요소간의 대소 비교 진행 시간 복잡도(최고, 평균, 최악) : O(n^2) 공간복잡도 : O(n) 2. Insertio
✔️ Graph(그래프) 정점(Vertex)과 간선(Edge)로 이루어짐, 비선형 자료구조 중 하나 1. 그래프의 종류 2. 그래프 구현 방법 (1) 인접 행렬 (2) 인접 리스트 인접 행렬 예제 Connection.java Node.java - 제네릭 타입 T
✔️ Tree 1. 용어 루트(root) : 트리 구조 중 최상위에 존재하는 노드(1을 가리킴) 노드(node) : 트리에서 각각의 구성 요소 레벨(level) : 트리에서 각각의 층을 나타내는 단어(루트 노드 : 0) 형제 노드(sibling) : 같은 레벨의 노드
✔️ @SuppressWarnings 컴파일 경고를 사용하지 않도록 설정해주는 것 경고를 제외시킬 때 사용하는 어노테이션 1. 사용 이유 제네릭으로 프로그래밍 할 때 무점검 형변환 경고(unchecked cast warning), 무점검 메서드 호출 경고(unchec