목록JAVA (8)
개발자의 서재
package com.kevin.java8.stream; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * Stream - Stream 소개 */ public class App { public static void main(String[] args) { List names = new ArrayList(); names.add("chawon"); names.add("jinsol"); names.add("yena"); names.add("naeun"); names.add("rachel"); names.add("chakyung"); names.stream().map(s -> { System.out..
package com.kevin.java8.java8method; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.function.Consumer; public class App { public static void main(String[] args) { List name = new ArrayList(); name.add("chawon"); name.add("jinsol"); name.add("yena"); name.add("naeun"); name.add("rachel"); name.add("chawon"); //Iterable 의 기본메소드 : forEach(); //forEa..
package com.kevin.java8.interfacemethod; public interface Foo { void printName(); String getName(); //* 디폴트 메소드. //기존에는 인터페이스에 메소드를 추가하면 해당 인터페이스를 구현하는 //모든 클래스에 컴파일에러가 생김. (추가한 메소드를 구현클래스에도 모두 만들어줘야함) //하지만 인터페이스 메소드앞에 default 를 달아주면, 컴파일에러없이 인터페이스에 내용이 있는 메소드 추가 가능. //디폴트 메소드도 일반 인터페이스 메소드처럼 구현체에서 오버라이딩 해서 재정의 가능하다. default void printNameUpperCase(){ System.out.println(getName().toUpperCase())..
package com.kevin.java8.functionalInterfaceLamda; import javax.annotation.processing.Generated; /** * 강의 2 - 함수형 인터페이스와 람다 = 4.메소드 레퍼런스 */ public class Greeting { private String name; //생성자1 public Greeting(){} //생성자2 public Greeting(String name){ this.name = name; } //일반 메소드 public String hello(String name){ return "hello "+name; } //스태틱 메소드 public static String hi(String name){ return "hi "+na..
1. 함수형 인터페이스와 람다표현식 소개 2. 자바에서 제공하는 함수형 인터페이스 3. 람다표현식 * 람다 표현식 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다. 코드의 길이를 줄일 수 있다. * 함수형 프로그래밍 함수를 class object로 사용할 수 있다. 순수함수 - 사이드 이펙트 만들수없다. 함수 외부에있는 값 변경불가 + 외부의값을 참조하지 않는다. 고차함수 : 함수가 함수를 매개변수로 받을 수 있고, 함수를 리턴할 수도 있다. package com.kevin.java8.functionalInterfaceLamda; //함수형인터페이스 일경우 어노테이션 명시 @FunctionalInterface public interface RunSomething { //JAVA8에서 추가된 ..
1. 새로운 날짜와 시간 API 생성 배경 1-1. java 1.0 에서는 java.util.Date 클래스 하나로 날짜와 시간 관련 기능을 모두 제공했다. 날짜를 의미하는 Date 라는 뜻과 달리 특정 시점을 밀리초단위로 표현한다. 게다가 1900년을 기준으로 하고, 0부터 시작하는 달 인덱스등 모호한 설계가 문제였었다. Date date = new Date(); System.out.println(date.getTime()); // 1654145972877 -> 1900년 1월1월 0시0분0초 기준 현재까지의 밀리초 System.out.println(date); //Thu Jun 02 13:59:32 KST 2022 Date date2 = new Date(2022,6,2); // 년,월,일을 그대로 넣..
클래스명에 @Slf4j 를 선언해주면 해당 클래스 메소드에서 log.info("~~~"); 로 로그출력이 가능하다. import lombok.extern.slf4j.Slf4j; @Slf4j @Controller public class HomeController { @GetMapping public String home(Model model, Locale locale){ log.info("Welcome home! The client locale is "+locale+"."); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년M월d일(E) a h시m분s초"); Strin..
기본적으로 배열은 Arrays List는 Collections 를 이용해서 정수형타입 or 문자형타입으로 오름차순, 내림차순 정렬이 가능하다. String[] numbers = {"1", "3", "2", "5", "4"}; //Arrays 를 이용한 배열정렬 (오름차순) Arrays.sort(numbers); for(String n : numbers) {System.out.print(n+",");} //1,2,3,4,5, //Arrays 를 이용한 배열정렬 (내림차순) Arrays.sort(numbers,Collections.reverseOrder()); for(String n : numbers) {System.out.print(n+",");} //5,4,3,2,1, List list = new Arr..