[Kotlin] 코틀린 클래스, 인터페이스 이 글은 Kotlin In Action을 참고 하였습니다.더욱 자세한 설명이나 예제는 직접 책을 구매하여 확인 하시기 바랍니다코틀린은 Java와 같은 형태의 상속개념을 가집니다.인터페이스와 객체등의 성격도 그대로 물려받습니다만, 실효성을 강조한 언어인 만큼 자바에서 불필요하다고 생각됐던 부분들과 좀더 편한게 쓸수있도록 확장한 부분들이 존재합니다.예를들면 interface에 구현부를 갖는 함수가 들어갈 수 있으며, class의 기본값이 final 이면서 public 입니다.그외에 어떤점들이 다른지 다른부분에 초점을 맞춰 설명하겠습니다. 4.1 클래스의 계층4.1.1 kotlin interface코틀린의 interface에는 자바와 다르게 구현부가 있는 함수가 정의될 수 있습니다.단 어떤 멤버(field)도.. 카테고리 없음 7년 전
람다의 내부동작 #2 지난글에서 람다의 내부/외부 표현에 대한 글을 작성했습니다.이번에는 람다의 내부적인 동작에 대한 상세한 이해를 위해 JVM 관련 부분과 bytecode 위주로 언급합니다. JVM의 opcode compile된 bytecode를 보면 네종류의 opcode를 사용하여 Java의 method를 표현합니다.1.7 이전invokestatic: static method 실행invokevirtual: instance method 실행invokeinterface: interface method 실행invokespecial: exact한 함수 수행 - override 불가, 더이상 변화가 없는 함수들생성자, private method, super callinvokedynamic동적 타입 언어를 위한 opcodeJruby.. 개발이야기/Java 8년 전
Java 8 String join StringJoiner ClassJava 8에는 다양한 기능들이 많이 추가 되었습니다.제 블로그에서 몇가지 굴직한것들은 이미 소개를 해드렸습니다만 (Optional, Default Method, CompletableFuture) 간단하지만 편리한 API를 소개하고자 합니다. Java8에는 String.join() 메서드가 추가되었습니다.내부를 들여다 보지는 않았지만 default method로 추가되지 않았을까 하는 가능성있는 추측을 해봅니다. 간단하니 예제를 보고 쉽게 사용하시면 됩니다. ArrayList foods = new ArrayList();foods.add("피자");foods.add("치킨");foods.add("맥도날드");foods.add("불고기");foods.add("샐러드"); Sy.. 개발이야기/Java 8년 전
Java 8 Lambda Expression - 람다식 #2 지난 포스팅에 이어 계속 진행합니다.지난번에는 Strategy pattern을 람다식을 사용하면서 코드를 간결하게 변경시키는 방법을 봤습니다. 이번에는 가장 간단하게 람다식을 쓰는 방법에 대해 언급합니다. 익명클래스 (anonymous class)의 치환 - ComparatorLambda를 사용하는 가장 간단한 방법으로 익명클래스를 람다로 치환할 수 있습니다. new class...로 시작하는 불필요한 부분은 제거하고, 필요한 부분만 람다로 표현합니다. 이전 포스팅에서 상품List의 을 가격으로 정렬하려면 Collection.sort(List, Comparator)를 사용해야 합니다. 이전 포스팅에서 사용한 person 객체및 해당 list 생성 코드 입니다. public class Product { p.. 개발이야기/Java 8년 전