JAVA 18

Java Stream

Stream - 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것. 1. 자료의 대상과 관계 없이 동일한 연산 수행 - 배열, 컬렉션 대상 동일 연산 수행 - 일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 2. 한 번 생성하고 사용한 스트림은 재사용 불가 - 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모된다 - 다른 연산을 위해서는 새로운 스트림을 생성해야 한다 3. 스트림은 기존 자료 변경 불가 - 스트림 생성은 별도의 메모리 공간을 사용한다. - 기존 자료 변경 불가 4. 스트림 연산은 중간 연산과 최종 연산으로 구분된다. - 중간 연산은 여러개 적용 가능하다 filter() - 조건에 맞는 요소들만 남긴다 map() - 해당 데이터 중에서 특정 데이터만 꺼낸다 sorted()..

JAVA 2022.01.13

Java 람다식, 람다함수

Java에서 함수형 프로그래밍을 구현하는 방식으로 자바8부터 지원한다. lambda : interface 구현 객체 생성 - interface로부터 물려받은 추상 메서드를 오버라이딩 - 익명 함수 인터페이스타입 변수 = (매개변수) -> {수행문} 함수의 이름과 반환형을 없애고 -> 사용 () -> {} // 기본형 (int i) -> {i + 1} i -> i + 1 //매개변수가 하나면 자료형과 () 생략 가능, 수행문이 한 문장이면 {} 생략 가능 (int i, int n) -> i + n (i, n) -> i + n //매개변수 타입이 같으면 타입 생략 가능 (int i, String s) -> i + s //타입이 다르면 생략 불가 i -> {return i + 1;} //수행문이 return문..

JAVA 2022.01.06

Java 내부(inner)클래스

class 클래스명{ 변수 생성자 메서드 class 클래스명2{} //클래스 안에 선언되는 내부클래스 } //외부클래스 내부클래스는 보통 현재 클래스 안에서만 사용할 목적으로 만드는 클래스이며 일종의 은닉화라고 볼 수 있다. 종류 (객체 생성 시점), 객체 생성 방법 인스턴스 내부클래스 (외부클래스 생성 후 생성) static변수, static메서드 선언 불가 외부클래스 변수 사용 가능 MemberInner outer = new MemberInner(); MemberInner.Inner inner = outer.new Inner(); - 한 줄로 합치면 MemberInner.Inner inner = new MemberInner().new Inner(); 정적(static) 내부 클래스 (외부클래스 상관 ..

JAVA 2022.01.06

Java 날짜와 시간 표현

날짜와 시간 표현에 사용되는 패키지, 클레스들 java.util.Date 클래스 - 날짜 표현, 객체간 날짜 장보를 주고 받을 때 사용 java.util.Calenda 클래스 - 달력 표현, 날짜 계산 작업시 사용 (String), 추상 클래스 java.time 패키지 * 변환에 사용되는 메서드들 parse - String 타입에서 -> 다른 타입으로 변환 Integer.parseInt("문자열") - 정수로 이루어진 문자열이라면 정수로 변환 (String -> int) SimpleDateFormat 클래스 - 날짜 형식 지정 클래스 SimpleDateFormat("패턴") 생성자를 사용하면 날짜를 해당 패턴으로 지정 SimpleDateFormat.parse("패턴") - 해당 패턴대로 날짜로 변환 (S..

JAVA 2021.12.27

Java java.util / Collection,List ,Set,Map인터페이스 / 주요 메서드 정리

Collection 인터페이스 boolean add(E e) : Collection에 객체 추가 void clear() : Collection의 모든 객체 제거 int size() : Collection에있는 요소의 개수를 반환 boolean remove(Object o) : Collection의 매개변수에 해당하는 인스턴스가 존재하면 제거 Map 인터페이스 Collection 하위 인터페이스 V put(K key,V value) : key에 해당하는 value값을 map에 저장 V get(K key) : key에 해당하는 value값을 반환 List 인터페이스 Collection 하위 인터페이스로 Collection 메서드들을 다 물려받음 ArrayList와 Vector 클래스 List 구현 클래스 A..

JAVA 2021.12.22

Java Class 클래스, java.util 패키지, 제네릭<>

Class 클래스 Class.forName()메서드로 동적 로딩(Dynamic Loding)하기 클래스명을 변수로 지정해 놓고 실행 시 해당 변수에 대입된 클래스가 실행될 수 있도록하는 Class에서 제공하는 Static메서드 어떤 클래스를 사용할 지 모를때 주로 사용하며 모든 클래스를 다 올리지 않고 필요할 때 꺼내쓸 수 있다는 장점이있다. ex) String className = "classex.Person" Class pClass = Class.forName(className); java.util 패키지(https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/package-summary.html) 자바 개발에 필요한 도구성 클래..

JAVA 2021.12.22

Java Class Math, Wrapper, 참조형형변환

Class Math final클래스로 상속 불가. 모든 메서드가 Static으로 되어있어 Math.메서드명으로 바로 사용 가능하다. 주로 쓰는 메서드 ceil() - 올림 floor() - 버림 random() - 난수값 round - 반올림 rint - 제일 가까운 값을 더블타입으로 반환 -> 1.2 입력시 1.0 반환, 2.6 입력시 3.0 반환 .5 입력시 짝수 반환 1.5 > 2.0, 2.5 > 2.0 max - 최대값 min - 최소값 pow - 제곱 -> Math.pow(7,3) : 7의 3제곱 Wrapper 클래스 Object는 모든 클래스의 조상이라고 했고 모든 객체의 타입이 될 수 있다고 했다. 하지만 객체가 아닌 값이라면 불가하다. int타입은 Object타입으로 입력할 수 없지만 Wr..

JAVA 2021.12.06

Java ArrayList, String(문자열) 비교

array 배열 : 같은 타입의 여러 데이터를 모아서 순서대로 저장한다. 한번 만들어지면 크각 고정되며 크기가 넘어서면 error. ArrayList 클래스 : 지정된 타입의 여러 객체를 모아서 순서대로 저장한다. 크기가 몇개일지 모를때 주로 사용한다. 기본으로 10칸이 생성되며 부족할 때 마다 *2씩 늘어난다. 데이터가 저장되지 않은 공간은 줄일수도 있다. ArrayList 이름 = new ArrayList(); 이름.add(값); // 값을 추가, 추가한 순서대로 배열에 저장 이름.size(); // ArrayList객체 안에 저장된 데이터의 갯수 이름.remove(배열번호); // 해당 배열번호의 값을 삭제 메서드에서 return값으로 사용할 때 return 이름.remove(배열번호); //해당 ..

JAVA 2021.12.06

Java final, 추상(abstract)메서드, interface

final 뜻 그대로 마지막의, 변경 될 수 없는 예약어다. final 변수 : 값이 변경 될 수 없는 상수. 단 한번만 값을 대입할 수 있다. final 메서드 : overriding(오버라이딩) 불가. final 클래스 : 상속 불가(Super class가 될 수 없다.) * final 문자열에 + 연산 시 새로운 문자열이 만들어진다. abstract 는 미완성의, 추상의 라는 뜻으로, 의미만 있는 기능이 완성되기 전의 상태를 뜻한다. abstract 메서드 : 바디( {}블럭 )가 없는 추상 메서드 abstract 클래스 : 추상 메서드가 선언되어 있는 클래스 -> 객체 생성 불가, 일반 클래스에서 상속받아 오버라이딩(기능을 완성)해서 사용한다. 클래스가 일반 클래스를 상속 받을 때는 오버라이딩을 ..

JAVA 2021.12.06

Java 상속, 오버라이딩, 업캐스팅, 다운캐스팅, Object클래스

상속 기존 클래스의 멤버들을 다른 클래스에서 물려받아 속성이나 기능을 확장시켜 사용하는것. 여기서 기존 클래스를 Super, 조상, 상위, 부모 클래스 등으로 칭하며 물려받는 클래스를 Sub, 자손, 하위, 자식 클래스라고 칭한다. Super클래스는 넓은 의미, Sub클래스는 세분화된 의미를 갖게된다. 주로 Super클래스에는 공통적인 요소를 모아두고 Sub 클래스에서 이를 상속 받아 각각 필요한 특성과 메서드를 구현한다. class Book{ String title; String author; } class BookStore{ String title; String author; int price; } Book클래스와 BookStore는 공통적으로 title, author 변수를 가지고잇다. 중복되는 코..

JAVA 2021.12.02