본문 바로가기

Java3

[Java 심화] 스트림(Stream) (매-우 기초적인 부분만) 스트림(Stream) 배열, 컬렉션 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있게 해주는 반복자 스트림을 사용하게되면 List, Set, Map, 배열 등 다양한 데이터 소스로부터 스트림을 만들 수 있고 표준화된 방법으로 다룰 수 있게된다 데이터 소스를 다루는 다양한 메소드를 제공하기 때문에 잘만 활용한다면 많은 데이터에 복잡한 연산을 수행하면서도 가독성과 재사용성이 높은 코드를 작성할 수 있다 선언형으로 데이터 소스를 처리하는데 무슨 말이냐면, 선언형 프로그래밍 : 어떻게 수행하는지 보다는 무엇을 수행하는지 관심을 두는 패러다임 이라고 할 수 있다 명령형 방식에서는 절차대로 따라가야 코드를 이해할 수 있는 반면 선언형 방식에서는 코드를 작성하면 내부 동작 원리를 모르더라도 코드가 무슨 일을 하.. 2022. 6. 6.
[Java 컬렉션] 컬렉션 프레임워크(Collection Framework) Java 컬렉션 프레임워크 구조 제네릭 부분에서도 언급한 거지만 배열을 예시로 들어보면 배열을 사용하는데 있어서 여러 비효율적인 문제가 생기는데 크기가 고정적이라는 치명적인 단점이 있다 배열의 크기는 생성할 때 결정되고 그 크기를 넘어가게 되면 더는 데이터를 저장할 수 없다 그리고 데이터를 삭제하기라도 하면 그 인덱스 데이터가 비어있어서 메모리의 낭비가 굉장히 심하다 그래서 익히 알려져있는 여러 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리할 수 있는 자료구조들을 만들어놓은 이 라이브러리를 컬렉션 프레임 워크라고 한다 컬렉션 프레임워크의 주요 인터페이스는 List, Set, Map 정도가 있다 List, Set은 객체 추가, 삭제, 검색하는 방법에 공통점이 많다 그래서 이 인터페이스들의 공통된 메.. 2022. 6. 1.
[Java OOP 심화] 다형성(Polymorphism) 다형성 (Polymorphism) 자바 객체 지향 프로그래밍의 가장 핵심적인 부분이라고 할 수 있는 다형성이다 하나의 객체가 여러가지 형태를 가질 수 있다 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미하는데 구체적으로 말해보면 상위 클래스 타입의 참조변수를 통해 하위 클래스 객체를 참조할 수 있도록 허용한 것이다 참고로 참조변수가 사용할 수 있는 멤버의 개수는 실제 객체의 멤버 개수보다 같거나 적어야 한다 상속에서 배웠듯이 상위 클래스를 상속받은 하위 클래스 멤버 개수가 상위의 것보다 많아지는 것을 보면 이해가 가는 부분 상속을 통해 확장이 될 수 있을지언정 축소되는 건 있을 수 없는 일이기 때문에 하위 클래스에서 사용할 수 있는 멤버의 개수가 항상 상위 클래스와 같거나.. 2022. 5. 29.