[ Intro.. ] android kotlin 코드 예시를 찾아보면 이런 구조의 Companion object를 간혹 발견할 수 있다. 이녀석이 무엇일까 고민하던 중 JAVA Static과 비교는 글이 되게 많아 간단히 다뤄보려한다. 이번 포스팅에서는 1. Kotlin Companion Object 와 비교되는 Java의 Static 과 특징 2. JVM에 의한 메모리 초기화 에 대해 다룬다. (사용법은 다루지 않는다!) [ Java의 Static ] Static 키워드란? "특정 멤버(변수, 메소드)를 클래스 수준으로 선언하고 공유하는데 써먹는 키워드" 이것만 봐서는 무슨 말인지 이해가 안될것이다. Static 사용 예시 예를 들어서 설명해보겠다. Static를 쓰는 예시는 다음과 같다. 위 예시와 ..
이번 포스팅에는 OOP(object-oriented programming) 즉, 객체 지향 프로그래밍의 객체라는 존재로 인하여 탄생한 "청소부" Garbage Collecter 에 대해 다뤄보겠다. GC란? Garbage Collecter 메모리 영역중 heap 영역에서 사용하지 않은 객체들을 제거해주는 청소부. (힙 메모리 영역에서 사용되지 않는 객체를 지워주는 프로그램) [자바와 코틀린의 객체 선언 방식] JAVA : Person person = new Person(" ") Kotlin : var person = Person(" ") 객체지향 언어들 중 자바는 위와 같이 new라는 키워드 등으로 생성한 객체를 다룬다. 자바 코드는 컴파일 후 메모리에 올라가게 되고 메모리의 여러 영역중에서도 Heap ..
Intro. 이번 글은 JVM, DVM, ART에 대해 얕은 지식을 공유해보려 한다. 과거 안드로이드를 공부할 때 이론이나 운영체제 공부보단, 프래임워크를 먼저 접해보고 기능 구현을 먼저 했던 터라 이론적인 내용이 너무 부족하였다. 때문에 이것저것 공부하던 도중 JVM과 Dalvik, ART가 튀어나왔다. 뭐 실행을 도와주는 녀석들인것같은데 조금 깊게 볼 필요가 있을것같았다. JVM Java virtual Machine 가상머신 JVM은 자바 가상 머신으로, 자바 컴파일러를 통해 생성된 .class 파일(자바 바이트코드)을 JVM 내부에 있는 JIT(just in time) 컴파일러를 통해 기계어로 바꿔주는 역할을 담당한다. 즉, 자바 코드를 실행시켜주는 녀석이고, JVM으로 인해 JAVA는 운영체제에서..
JVM이란? 자바를 실행시키기 위한 가상 기계 Java Virtual Machine 즉, 자바 가상 머신 이라는데,, 이게 뭐하는 녀석일까? 우리가 이클립스 등의 JAVA 프래임워크를 사용하여 코드를 작성했다고 가정해보자. System.out.println("hello world"); 그리고 실행해서 결과를 보려한다. 이를 위해선, 사용자가 작성한 자바 코드를 컴퓨터가 알아들어야 한다. 우리가 쓰고있는 JAVA같은 언어는 컴퓨터를 위한 언어가 아닌 사람을 위한 언어이기 때문이다. (컴퓨터는 못알아들음) 다시말해 고급언어(사람이 이해하는)인 자바언어를 저급언어(기계어)인 0과 1로된 코드로 바꾸는 작업이 필요하다. (컴퓨터는 0과 1만 알아들으니까!) 저급언어로 바뀌려면 다음과정을 거치게 된다. 1. 우리..