Java

Java

    [Java] 스트림(stream)

    [Java] 스트림(stream)

    📌스트림이란? 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 코드를 작성하면 너무 길고, 재사용성도 떨어진다. 이런 문제를 해결하기 위해 만든 것이 스트림(stream)이다. 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 데이터소스를 추상화하였다는 것은, 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되었다는 것과 코드의 재사용성이 높아진다는 것을 의미한다. 즉, 스트림(Stream)은 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 간단한 예를 하나 보여주도록 하겠다. 뒤에서 자세히 설명할 것이니 그냥 보기만 해도 된다. //기존 Iterator List..

    [Java] 람다식 (Lambda expression)

    [Java] 람다식 (Lambda expression)

    📌람다식 (Lambda expression) 객체 지향 프로그래밍이 나오기 전부터 Lisp 또는 Scheme와 같은 함수적 프로그래밍 언어들이 있었다. 현업에서는 호응을 얻지 못하였지만, 빅데이터가 각광받으면서 이를 프로그램적으로 다룰 방법이 필요해짐에 따라 멀티 코어를 활용한 분산처리와, 병렬화 기술이 필요하였다. 즉 이제 하나의 CPU안에 다수의 코어를 삽입하는 멀티 코어 프로세서들이 등장하면서 일반 프로그래머에게도 병렬화 프로그래밍에 대한 필요성이 생기기 시작했다. 이러한 추세에 대응하기 위해 Java 8에서는 병렬화를 위해 컬렉션(배열, List, Set, Map)을 강화했고, 이러한 컬렉션을 더 효율적으로 사용하기 위해 스트림(Stream)을 강화했다. 또 스트림을 효율적으로 사용하기 위해 함수..

    [Java]Java.lang 패키지 (Object, System, Class, String, String, Pattern, Arrays, Math, Wrapper)

    [Java]Java.lang 패키지 (Object, System, Class, String, String, Pattern, Arrays, Math, Wrapper)

    📌java.lang 패키지 클래스 용도 Object -자바 클래스의 최상위 클래스로 사용 System -표준 입력 장치(키보드)로부터 데이터를 입력받을 때 사용 -표준 출력 장치(모니터)로 출력하기 위해 사용 -자바 가상 기계를 종료시킬 때 사용 -쓰레기 수집기를 실행 요청할 때 사용 Class -클래스를 메모리로 로딩할 때 사용 String -문자열을 저장하고 여러 가지 정보를 얻을 때 사용 StringBuffer, StringBuilder -문자열을 저장하고 내부 문자열을 조작할 때 사용 Math -수학 함수를 이용할 때 사용 Wrapper (Byte, Short, Character, Integer, Float, Double, Boolean -기본 타입의 데이터를 갖는 객체를 만들 때 사용 -문자열을..