본문 바로가기
[android] Pie (android 9) 의 변경점 [android] Pie (android 9) 의 변경점 https://developer.android.com/about/versions/pie/android-9.0-changes-all -다음 변경점들은 API level 이나 targeting 에 상관없이 Android 9 platform 에서 동작하는 “모든 앱” 에 적용된다. * Power management 전원 관리 관련된 새로운 기능들이 추가되었다https://developer.android.com/about/versions/pie/power app standby bucket 과 battery saver improvements 가 주 내용이다. * Privacy changes bg app 이 sensor 에 접근하거나, Wi-Fi scan 하.. 2019. 7. 31.
[Java8 In Action] #10 null 대신 Optional [Java8 In Action] #10 null 대신 Optional Java8 In Action 내용을 보며 정리한 내용입니다. 정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다. 위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 10.1. 값이 없는 상황을 어떻게 처리할까? 10.1.1. 보수적인 자세로 NullPointerException 줄이기 10.1.2. null 때문에 발생하는 문제 - 에러의 근원이다. : NullPointerException 은 자바에서 가장 흔히 발생하는 에러다. 코드를 어지럽힌다 : 중첩된 null 확인 코드. 아무 .. 2018. 12. 30.
[android] Framework 혹은 3rd-party lib 이 뿜는 Exception 을 피해보자 ( ex) NullPointerException at acm.a ) Framework 혹은 3rd-party lib 이 뿜는 Exception 을 피해보자 ( ex) NullPointerException at acm.a ) 현재는 문제가 되지 않겠지만, 이전 버전의 adsense lib 을 사용하다 보면, 아래와 같은 crash report 가 올라오곤 했다. Caused by: java.lang.NullPointerException at acm.a(SourceFile:215) at acz.onTransact(SourceFile:58) at android.os.Binder.transact(Binder.java:279) at com.google.android.gms.internal.co$a$a.onCreate() at com.google.android.gms.ads.AdA.. 2018. 4. 22.
[Java] Jit Compiler 에 대한 이야기 [Java] Jit Compiler 에 대한 이야기 http://blog.takipi.com/java-on-steroids-5-super-useful-jit-optimization-techniques/ -bytecode 는 original Java 코드를 그대로(dynamic optimization 없이) 나타낸 것이라고 보면 된다.JVM 이 bytecode 를 Assembly로 변환할 때 2가지 mode 가 작동한다. 1.Interpreted mode : JVM 이 bytecode 를 읽고 실행시킨다.2. Compiled mode(byte code to assembly) 이 두가지 mode 를 잇는 것이 JIT compiler 이다. Interpreted mode 가 assembly level 로 최적.. 2018. 1. 14.
[Kotlin Tutorial] Kotlin 의 Type system #2 [Kotlin Tutorial] Kotlin 의 Type system #2 참조 : Kotlin in action 6.2. Primitive and other basic types 6.2.1. Primitive types: Int, Boolean, and more -Kotlin 은 primitive type 과 wrapper type 을 구분하지 않는다. -그렇다면 Int 가 object 라면 Kotlin 은 모든 primitive type 을 실제로 object 로 만드는가?당연히 그렇게 안 했다.compiler 가 대부분의 Int type 을 Java 의 primitive type 으로 변형시킨다.generic, collection 등은 원래 Java 의 Integer 형태만 담을 수 있으므로 이 경.. 2017. 8. 22.
[Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system [Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system 출처 : Kotlin in action 6.1. Nullability 6.1.1. Nullable types -Kotlin 은 nullable types 를 지원한다.nullable type 이라는 것은 어떤 variable 이 null 을 가질 수 있는지를 명시하는 것이다. -nullable 하지 않은 곳에 null 을 넣으면 compile error 가 난다.기본 type 은 nullable 하지 않으며, nullable 을 만드려면 type 뒤에 ? 를 붙여주면 된다.어떤 타입이든 뒤에 ? 를 붙여줄 수 있다.fun strLenSafe(s: String?) = … 6.1.2.. 2017. 8. 18.
[Kotlin Tutorial] Kotlin 소개 - Kotlin : what and why [Kotlin Tutorial] Kotlin 소개 - Kotlin : what and why 참조 : Kotlin in Action -Kotlin 은 Java platform 을 targeting 한 새로운 프로그래밍 언어.Java 코드와 함께 쓰일 수 있다.Android 개발 뿐만 아니라 Server-side 개발에도 쓰일 수 있다. -Java 의 iib, framework 와 함께 쓰일 수 있고, Java 와 비교해 Performance 도 거의 동일하다. 1.1. A Taste of Kotlin -http://try.kotl.in 을 통해 코드 실습을 할 수 있다. -data class Person(val name: String, val age: Int? = null) fun main(args: A.. 2017. 7. 12.
[Effective Java] 박스화 기본형보다는 기본형을 사용하자. [Effective Java] 박스화 기본형보다는 기본형을 사용하자. - 기본형과 박스화 기본형 간에는 크게 세 가지 차이점이 있다. 1. 기본형은 자신의 값만을 갖는 반면, 박스화 기본형은 식별성(identity)를 갖는다. 두 개의 박스화 기본형이 값은 같지만 == 로 비교하면 다를 수 있다는 것이다. 2. 기본형은 완전한 기능 값만을 갖는 반면, 박스화 기본형은 자신과 대응되는 기본형이 가질 수 있는 모든 기능 값에 추가하여 비 기능 값인 null 을 갖는다. 3. 기본형은 일반적으로 박스화 기본형에 비해 실행 시간과 메모리 사용 효율이 좋다. - == 비교 연산자를 박스화 기본형에 적용하면 대부분 틀린 결과가 나온다. 박스화 기본형을 비교할 떄는 두 개의 지역 변수를 추가하여 primitive 타.. 2017. 2. 2.
[Effective Java] null 대신 비어있는 배열이나 컬렉션을 반환하자. [Effective Java] null 대신 비어있는 배열이나 컬렉션을 반환하자. - 비어있는 배열이나 컬렉션 대신 null 을 반환하는 메소드를 사용할 때는 null checking 을 하는 복잡하고 긴 형태의 코드를 작성해야 한다. 또한 클라이언트 코드를 작성하는 프로그래머가 반환 값인 null 을 처리하는 코드 작성을 잊어버리면 NullPointerException 이 발생하기 쉽다. - 비어있는 배열보다는 null 값을 반환하는 것이 좋다는 주장도 있다. 배열을 생성하는 비용이 들지 않기 때문이다. 그러나 두 가지 면에서 이는 틀렸다. 1. 해당 메소드가 정말로 성능 문제의 원인인지 성능 프로파일에 나타나지 않으면 이런 경우에는 성능 우려를 할 것이 못 된다. 2. 길이가 0인 배열은 불변 객체이.. 2017. 1. 19.
반응형