목록Java (3)
free from
Intro과거에는 무어의 법칙에 따라 CPU에 들어가는 트랜지스터의 수가 증가하여 CPU 속도가 향상되었습니다. 그러나 최근에는 컴퓨터에 들어가는 CPU의 코어의 개수를 늘여서 속도를 향상시키고 있습니다. 그러므로 애플리케이션도 CPU의 코어들을 활용해야 속도를 향상시킬 수 있습니다. 그럼 어떻게 Java에서는 CPU의 코어를 잘 활용할 수 있을까요? 정답은 Thread입니다. Thread를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있습니다.JVM에서 Thread마다 PC-register, Java Stack과 Native Stack을 가지므로 Main-Thread와 별도로 실행 Context를 갖고 동작할 수 있습니다.Java에서 Thread를 생성하는 방법은 다음과 같..
IntroClassFile-1 에 이어서 클래스파일의 속성에 대해서 정리합니다.ClassFile Attribute클래스파일은 메타 정보와 속성으로 구성됩니다. 속성은 final, Exceptions, SourceFile, Generics, Code 과 같은 정보를 나타내며 클래스를 풍부하게 하는 역할입니다. 이러한 속성은 클래스를 대상으로 작성하면 class_file에 존재하며 필드 변수를 대상으로 작성하면 field_info에 존재합니다. 그리고 메서드를 대상으로 작성하면 method_info에 존재합니다.attribute_info { u2 attribute_name_index; u4 attribute_length; u1 info[attribute_length];} 모든 속성들의 기본적..
IntroJava Compiler가 .java파일을 컴파일하면 ByteCode를 담은 .class 파일이 생성됩니다..class파일은 Class Loader에 의해 해석되며 JVM 메모리에 로드되어 실행됩니다.이러한 ByteCode 덕분에 Java는 WORA(Write Once, Run Anywhere)라는 강력한 특징을 갖게되었습니다. ByteCode에는 또 다른 장점이 있습니다.JVM(자바 가상 머신)은 초기 설계부터 가상 머신에 다른 언어를 실행할 가능성을 염두에 두었습니다.그래서 자바 외 다른 언어에서 ByteCode로 변환해주는 컴파일러만 있으면 JVM에서 실행될 수 있습니다.오늘날에는 Java말고도 Scala, Kotlin, Groovy, Clojure 등 다양한 언어가 JVM에서 실행됩니다...