언어/JAVA
-
컬렉션언어/JAVA 2023. 7. 9. 18:05
1. 컬렉션 프레임워크 - 자바는 널리 알려 있는 자료구조를 바탕으로 객체들을 효율적으로 다룰 수 있는 인터페이스와 클래스를 미리 util패키지에 포함시켜둠 (이런 것들을 컬렉션 프레임워크라함) - 컬렉션 프레임워크는 몇 가지 인터페이스를 통해 다양한 컬렉션 클래스를 사용할 수 있도록 설계됨 - 주요 인터페이스는 List,Set,Map이 있다. - 각 인터페이스로 사용가능한 클래스 종류는 아래와 같다. - List와 Set는 추가,삭제,검색 방법에 공통점이 있어서 Collection인터페이스를 따로 정의해 두고 상속받는다. - Map은 키와 값을 쌍으로 묶어서 관리하는 구조이므로, List와 Set가 다름 2. List 컬렉션 (순서유지, 중복저장) - List는 객체를 인덱스로 관리,인덱스를 통해 검색..
-
어노테이션언어/JAVA 2023. 7. 8. 23:13
1. 어노테이션 - 코드에서 @으로 작성되는 요소를 어노테이션이라고 한다. - 어노테이션은 클래스 또는 인터페이스를 컴파일하거나 실행할 때 어떻게 처리해야 할 것인지를 알려주는 설정 정보이다. - 어노테이션의 컴파일 시 사용하는 정보 전달, 빌드 툴이 코드를 자동으로 생성할 때 사용하는 정보 전달, 실행 시 특정 기능을 처리할 때 사용하는 정보 전달. 2. 표준 애너테이션 자바에서 제공하는 기본 어노테이션이다. 3. 메타 어노테이션 어노테이션을 정의하기 위한 어노테이션이다. 3.1 @Target : 어노테이션이 적용가능한 대상을 지정하는데 사용된다. - 적용범위는 기본속성 value로 ElementType 열거 상수 배열을 값으로 가짐 3.2 Retention : 어노테이션 유지되는 기간을 지정하는데 사..
-
중첩 선언과 익명 객체언어/JAVA 2023. 7. 7. 13:53
1. 중첩클래스 - 객체 지향 프로그램에서 클래스간 긴밀한 관계 맺고 상호작용 - 클래스가 여러 클래스와 관계를 맺는 경우 독립 선언 - 특정 클래스와 관계를 맺는 경우에는 중첩 클래스로 선언 -> 유지보수에 도움, 코드 복잡성 줄이기, 클래스 멤버 쉽게 접근 - 크게 멤버클래스(인스턴스,static)와 로컬 클래스로 나눌 수 있다. 1.1 중첩클래스 저장 -outter$inner.class -A $1 inner.class로 저장됨 2. 멤버클래스 (인스턴스,static) > 공통점: 접근제한자 public,default,private을 가질 수 있다. 외부클래스 멤버 쉽게 접근 가능, 외부클래스는 내부클래스 멤버에 접근하려면 내부 클래스를 생성해야함 > 차이점 인스턴스 inner : outter클래스의..
-
상속,동적생성언어/JAVA 2023. 7. 6. 16:40
1. 상속 부모 클래스의 필드와 메서드를 자식 클래스에게 물려주는 것 2. 클래스 상속 *정적멤버와 생성자, 초기화 블럭등은 상속안됨 *인스턴스 멤버,메서드 중 public이나 protected만 super를 통해 가져올 수 있다. 3 부모생성자 호출 super() - 부모에 필요, 다른 생성자 있으면, 자식이 따로 호출해줘야함 자식 객체가 생성되면 부모가 먼저 생성된 후에 자식이 생성됨 4. 메소드 재정의 - 오버라이딩 ->다형성의 초석 - 부모의 메서드의 반환타입,메서드명,매개변수 일치하고 구현내용만 달라야한다. - 공변반환타입으로 리턴타입을 자식 클래스로 둘 수 도 있단다. - 접근제한자 좁게 불가, 새로운 예외( 더 많은 예외) 던질 수 없음 *메서드 재정의시 부모메서드 호출하고, 필요부분만 수정..
-
클래스,인스턴스 메서드 메모리 저장,싱글톤,접근제한자언어/JAVA 2023. 7. 6. 15:57
1. 객체지향 프로그래밍 -소프트 웨어를 개발할 때도 부픔에 해당하는 객체들을 먼저 만들고, 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 > 객체란?: 물리적으로 존재하거나 개념적인 것 중 다른 것과 식별 가능한 것 - 객체는 속성과 동작으로 구분된다. - 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. - 현실 세계 객체의 대표 속성과 동작을 소프트웨어 객체의 필드와 메서드로 정의할 수 있다. > 객체간 상호작용은 메서드를 통해 이루어진다. ( 객체가 다른 객체의 기능을 이용할 때 메소드 호출함) > 객체 간 관계는 집합,사용,상속 관계로 분류할 수 있다. 집합 : 완성품과 부품관계 사용: 다른 객체의 필드를 읽고 변경하거나 메서드를 호출하는 관계( 사람(객체) ..
-
참조타입,메모리,배열복사언어/JAVA 2023. 7. 6. 14:06
1. 데이터 타입의 분류 데이터는 기본타입과 참조타입이 있다. - 변수와 연결된 메모리셀에 무엇이 저장되느냐의 차이 - 변수의 복사는 메모리셀의 값을 기준으로 발생한다. ( 값이 복사되거나, 주소가 복사됨) 2. 자바 메모리 사용영역 jvm이 구동되면, jvm은 운영체제에서 할당받은 메모리 영역을 다음과 같이 구분해서 사용한다. - 자바 컴파일러 javac가 자바 소스코드(.java)를 바이트코드(.class)로 컴파일 - Class Loader를 통해 JVM Runtime Data Area(메모리)에 로딩된다. - Runtim Data Area에 로딩된 .class 들은 Executuion Engine이 해석 (바이트 코드 해석 (인터프리터, jit) - 해석된 바이트 코드는 Runtime Data A..
-
인터페이스언어/JAVA 2023. 7. 6. 00:01
1. 인터페이스 역할 - 인터페이스는 코드의 분리와 관련이 있다. -인터페이스는 다형성의 주된 기술임 - 두 객체를 연결하는 역할을 한다. *인터페이스는 접점으로 타 클래스,서비스와 연결 * 인터페이스는 제공자와 구현자 따로 있다고 생각하면 편해진다. >제공자는 인터페이스형으로 부품을 채워넣고 -> 구현은 따로 2. 인터페이스 선언 interface사용 - default (같은 패키지) public(모든 패키지) 접근제어자 사용가능 3. 상수필드 public static final 타입 상수명 = 값 가질 수 있다. 인터페이스 소속멤버 public abstract method 추상메서드 구현 클래스가 완성해야하는 추상메서드 인터페이스의 핵심 (부품화,다형성) 인스턴스 소속 멤버 default 메서드 완전..
-
람다식언어/JAVA 2023. 7. 5. 17:07
1. 람다식이란? - 메서드를 하나의 식으로 표현 - 함수를 간략,명확한 식으로 표현 할 수 있게 해준다. - 람다식으로 메서드를 표현하면, 이름과 반환값이 사라지므로, 익명함수라고도 한다. int method() { return (int)(Math.random()*5) +1;} () -> {(int)(Math.random()*5)+1}; *모든 메서드는 기본적으로 클래스에 포함되어 있어야하므로, 필요한 메서드를 만드는 작업이 복잡하다. *람다식은 이를 간결하게 처리할 수 있도록 해준다. *람다식을 통해 매개변수를 전달하여 값을 return받을 수 도 있지만, 람다식 자체를 매개변수로 사용할 수 있다. 1.2 람다식 작성 - 메서드의 이름과 반환타입을 제거하고 선언부와 몸통부 사이에 ->를 추가한다. -..