JAVA 8

JAVA 쓰레드 1

프로세스와 쓰레드- 프로세스란 현재 실행 중인 프로그램을 의미한다. 프로그램을 실행하면 운영체제로부터 실행에 필요한 자원을 할당 받아 프로세스가 됨 - 프로세스는 실행에 필요한 데이터, 자원, 쓰레드 등으로 구성되어 있다.- 프로세스는 적어도 하나 이상의 쓰레드가 존재한다. 둘 이상의 쓰레드를 가진 프로세스를 멀티 쓰레드 프로세스라고 한다.- 쓰레드 생성 제한이 없지만, 쓰레드 또한 메모리 공간을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드 수가 결정된다.- 개발자가 직접 쓰레드 개수 조정 가능 프로세스 성능은 스레드의 수에 비례하지 않음- 하나의 코어는 한 번에 하나의 작업을 수행한다. 즉, 여러 쓰레드가 한 코어를 번갈아 수행하는 것이기에 쓰레드가 많다고 무..

JAVA 2025.02.11

JAVA 상속, 캡슐화, 인터페이스

자바에서 생략가능한 부분- 패키지를 생략할 경우 default package에 자동으로 등록된다.- import java.lang.*;가 자동으로 import 되므로 생략가능 - String, System 같은 자주 사용하는 클래스를 담고 있는 패키지- class 정의시 extends를 사용해 상속받지 않으면 자동으로 Object 클래스가 부모가 된다. Object 클래스는 모든 클래스의 최상위 클래스 - 모든 클래스는 하나 이상의 생성자를 가져야 한다. 생략할 경우 기본 생성자가 자동으로 생성된다.- 부모 클래스가 기본 생성자를 사용한다면, 자식 클래스의 생성자에서 super()를 생략할 수 있다. 만약 부모 클래스가 기본 생성자를 사용하지 않느다면 명시적으로 super()를 호출해야 한다...

JAVA 2025.02.08

지네릭스

지네릭스- 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시 타입 체크를 해주는 기능- 저장된 객체를 꺼낼 때, 형변환 필요 없음 → 어떤 타입의 객체들이 저장되어있는지 알고 있기 때문- 생성자의 지네릭 타입은 항상 일치해야 한다.ArrayList tvList = new ArrayList();[장점]- 타입 안정성 제공- 형변환 생략 가능 → 코드 간결타입 변수- ArrayList 여기서 E는 타입 변수- 타입 변수가 여러 개인 경우 콤마로 구분 HashMap- 타입변수는 실제 타입에 대응된다. ArrayListpublic class MyList { private T[] listData; // T는 임의의 타입 }제한된 지네릭 클래스- 타입문자를 모든 클래스가 아닌 일부 클래..

JAVA 2025.02.06

Object 클래스의 메서드

Object 클래스모든 클래스의 최상위 클래스 즉, 모든 클래스는 Object를 상속 받는다. 객체 간 비교, 해시 값 생성, 문자열 표현 등을 위해 기본 메서드를 제공한다. // 11가지 기본 메서드Object 타입으로 모든 객체를 참조할 수 있다. Object 클래스 메서드toString 메서드객체 정보를 문자열로 반환하는 메서드 (출력 X)객체정보는 "패키지이름.클래스이름@해쉬코드" 형식으로 표현 됨 일반적으로 하위 클래스에서 toString 메서드를 재정의해서 사용한다. 많은 표준 라이브러리 클래스에서 toString 메서드가 재정의 되어 있음 Ex) Wrapper, String, CollectionWrapper 클래스의 경우 객체에 저장된 값을 반환 하도록 재정의String 클래스의 경우 객체에..

JAVA 2024.12.04

객체지향 프로그래밍 1

객체지향언어의 특징1. 코드의 재사용성이 높다.상속을 통해 부모 클래스의 속성과 메서드를 자식 클래스에서 그대로 사용할 수 있어 재사용성 높음 Ex) 부모 클래스를 상속받아 자식 클래스를 생성하면, 추가적인 코드 없이 부모 클래스 기능 사용 가능 2. 코드의 관리가 용이하다.코드의 구조를 클래스와 객체 단위로 나누어 관리하기 때문에 유지보수가 쉬움 Ex) 부모 클래스의 메서드를 수정하면, 해당 메서드를 상속받은 모든 자식 클래스에서 수정된 메서드를 자동으로 사용 3. 신뢰성 높은 프로그래밍을 가능하게 한다. 접근 제어자를 사용하여 클래스 외부에서 필드와 메서드에 대한 접근을 제한 Ex) Getter, Setter를 통해 데이터 접근 시 조건 검사를 수행 할 수 있다.클래스와 객체클래스객체를 정의해 놓은 ..

JAVA 2024.11.27

JAVA Collection Framework 3

Mapkey와 value로 구성된 Entry 객체 저장 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체가 내부적으로 Entry 객체를 사용하여 키-값 쌍을 관리Key 중복 불가능, Value 중복 가능 순서 없음 검색에 매우 효율적 Key, Value, Entry 모두 객체 **** Map 인터페이스는 Iterable 인터페이스, Collection 인터페이스를 상속받지 않는다.즉, Iterable, Collection 인터페이스가 제공하는 메서드를 사용할 수 없다.HashMap사용자 정의 클래스 객체를 사용할 때 hashCode(), equals() 함수를 반드시 오버라이딩해줘야 한다.-> 기준 설정 TreeMap사용자 정의 클래스 객체를 사용할 때, Comparabl..

JAVA 2024.11.26

JAVA Collection Framework 2

Collection 인터페이스 메서드 11가지List와 Set 구현체에서 사용할 수 있는 부모 클래스의 메서드add(E e) : booleanCollection에 객체 추가Collection이 변경되면 true 반환 SET 사용시객체가 Set에 존재하면 true 반환, 존재하면 false 반환 addAll(Collection c) : booleanCollection에 매개변수 Collection 요소들을 추가Collection이 변경되면 true 반환 contains(Object o) : booleanCollection에 매개변수 객체가 존재하면 true존재하지 않으면 false 반환 containsAll(Collection c) : booleanCollection에 매개변수 Collection c 원소..

JAVA 2024.11.25

JAVA Collection Framework 1

Collection동일 타입의 원소들을 묶어 동적으로 관리하는 자료구조 컬렉션에서 원소는 객체만 저장 가능 ** java.util 패키지에 Collection 존재 List순서 유지 (연속적/순차적 저장)중복 저장 가능 list(파이썬)[List 구현체]ArrayList, Vector, LinkedListArrayList배열을 이용하여 List의 특징을 구현한 자료구조 배열과 같이 인덱스로 원소 관리사용자 정의 객체에 대한 contains(), remove()를 위해 equals() 재정의 필요 비동기화 메서드로 구성, 싱글 쓰레드 환경에 효율적 -> 여러 쓰레드가 ArrayList에 동시에 요소를 추가하거나 삭제하면 데이터 불일치 문제 발생 VectorArrayList와 유사 ( Vector 구버전 )..

JAVA 2024.11.24