목록JAVA (10)
Cronex
스트림의 그룹화와 분할 pratitioningBy()는 스트림을 2분할 한다. Collector partitioningBy(Predicate predicate) Collector partitioningBy(Predicate predicate, Collector downstream) groupingBy()는 스트림을 n분할한다. Collector groupingBy(Function classifier) Collector groupingBy(Function classifier, Collecotr downstream) Collector groupingBy(Function classifier, Supplier mapFactory, Collector downstream) 스트림의 분할 - partitioningB..
T 타입 객체의 래퍼클래스 - Optional public final class Optional { private final T value; } Optional객체를 생성하는 다양한 방법 String str = "abc"; Optional optVal = Optional.of(str); (of는 static 메서드) Optional optVal = Optional.of("abc"); Optional optVal = Optional.of(null); //NUllpointerException 발생 Optional optVal = Optional.ofNullable(null); //OK null을 저장할 수 있는 메서드 null 대신 빈 Optional 객체를 사용하자 Optional optVal = null..
collection들의 사용방법이 같지 않았다.map, set, list jdk1.8 부터는 스트림이 나오며 표준화된 방법으로 데이터를 다룰 수 있다. 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 데이터소스로부터 stream을 만들 수 있다. 스트림을 만들고 나면 같은 작업으로 처리를 하게 된다. 작업종류는 ->중간연산(n번) 최종연산(1번) List list Arrays.sList(1,2,3,4,5); Stream intStream list.stream(); //collection Stream strStream Stream.of(new String[] {"a", "b", "c"}); //array Stream evenStream Stream.iterater(0, n->n+2); // 0, 2..
하나의 메서드만 호출하는 람다식은 메서드 참조로 간단히 할 수 있다. 종류 람다 메서드 참조 static메서드 참조 (x) -> ClassName.method(x) ClassName::method(클래스이름 ::메서드이름) 인스턴스메서드 참조 (obj, x) -> obj.method(x) ClassName ::method 특정 객체 인스턴스 메서드 참조 (x) -> obj.method(x) obj::method Integer method(String s) { return Integer.parseInt(s); } int result = obj.method("123"); int result = Integer.parseInt("123"); 입력 출력 Function f = (String s) -> Intege..
람다식이란? 간단히 말해서 메서드를 하나의 식(expression)으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 "익명 함수"라고도 한다. int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1); int method() { reuturn (int)(Math.random() * 5 + 1; } 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 이 메서드를 호출할 수 있다. 그러나 람다식은 이 모든 과정없이 오직 람다식 자체만으로도 이 메서드의 역할을 대신할 ..
패키지 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 서로 다른 패키지에 존재하는 것이 가능하므로 자신만의 패키지 체계를 휴지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. String클래스의 패키지명을 포함한 이름은 java.lang.String 이다. 즉, java lang 패키지에 속한 String 클래스라는 의미이다. 그래서 같은 이름의 클래스 일지라도 서로 다른 패키지에 속하면 패키지명으로 구별이 가능하다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나..
변수란? 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있기 때문에 "변수"라고 부른다. 하나의 변수에는 하나의 값만 저장할 수 있어, 새로운 값을 저장하면 기존의 값은 사라진다. 변수선언 변수를 선언할 때는 변수타입 + 변수이름으로 변수를 선언한다 ex) int(변수타입) + age(변수이름) -> int age; 변수타입: 변수에 저장될 값이 어떤 타입인지를 지정하는 것이다. 저장하고자 하는 데이터의 타입을 지정해주면 된다. 변수이름 : 변수의 이름. 저장되는 메모리고안에 이름을 붙여주는 것이다. 간단한 이야기지만 같은이름의 변수는 여러 개 존재해서는 안된다. 서로 구별될 수 있어야 하기 때문이다. 변수 초기화 변수를 선언한 이후 변수를 사용할 수 있으나 그 전에..

자바 개발도구(JDK) 설치하기 JDK(java Development Kit)를 설치하면, 자바가상머신(JVM)과 자바클래스 라이브러리(Java Api)외에 자바를 개발하는데 필요한 프로그램들이 설치된다. JDK 설치 후 bin 디렉토리를 path에 추가해야한다. 이 디렉토리에는 자바로 프로그램을 개발하는데 필요한 실행파일들이 들어있다. path는 OS가 파일의 위치를 파악하는데 사용하는 경로(path)로, path에 디렉토리를 등록하면, 해당 디렉토리에 포함된 파일을 파일 경로없이 파일 이름만으로도 사용할 수 있게 된다. bin에 있는 주요 실행파일들 javac.exe : 자바 컴파일러, 자바소스코드 -> 바이트코드 -ex) javac HelloWorld.java java.exe : 자바 인터프리터, ..