minuco
article thumbnail
JVM 동작과 실행과정
Android/java 2021. 8. 12. 08:33

목표 - 자바소스 파일 JVM 실행 과정 이해 학습할것 - JVM이란 무엇인가 - 컴파일 하는 방법 - 실행하는 방법 - 바이트코드란 무엇인가 - JIT 컴파일러란 무엇이며 어떻게 동작하는지 - JVM 구성요소 - JDK와 JRE 차이 1. JVM 이란 무엇인가? JVM (Java Virtual Machine) 이란 각 종 OS에 '독립적' 으로 java 프로그램을 작성하여 실행할 수 있게 해주는 구현체이다. EX) C 언어는 기계어로 컴파일이 되프로 H/W 에 맞게 각각 컴파일이 되어진다. - CPU 제조사에 따라 해석할 수 있는 기계어가 다르기 때문이다(C 프로그램은 플랫폼에 종속적). 그에 반에 java 프로그램은 cpu가 해석 할 수 있는 기계어가 아닌 JVM이 해석 가능한 가성 머신용 바이트 코..

article thumbnail
Java 기초개념 (컴파일, 실행)
Android/java 2021. 2. 27. 18:20

안녕하세요? 오늘부터 java에 대해서 공부해 보겠습니다. java란? java는 객체지향(OOP) 프로그래밍 언어입니다. 현재 웹 개발이나 앱 개발 등 다양한 실무에서 쓰이고 있습니다. java의 특징 ● 객체지향(OOP, Object OrientedProgramming) 언어이다. - 쉽게 생각하면 자동차를 만드는 과정에서 처럼 부품 하나하나(하나하나가 객체)를 만들어 조립해서 자동차를 완성한다고 생각하면 될 것 같습니다. ● 이식성이 높다. - 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. ● 메모리를 자동 관리한다. 등등 이 있습니다. java가 실행되는 과정 JVM은 운영체제에 따라서 알맞은 신호로 변경해서 프로그램의 구동을 도와줍니다. 하지만 각 운영체제..

article thumbnail
스레드 (Thread) - 제어
Android/java 2021. 2. 26. 23:46

스레드를 생성하고 시작하려면 스레드는 다양한 상태를 가지게 됩니다. 스레드의 상태는 자동으로 변경되거나 코드로 변경해서 제어할 수 있는데요. 이번 시간에는 스레드 제어에 대해서 알아보겠습니다. 스레드 상태 우선 스레드의 실행 흐름을 그림으로 알아보겠습니다. 스레드 객체를 생성하고 start() 메서드를 호출하면 바로 실행되는 것이 아니라 실행 대기 상태가 됩니다. 실행 대기상태란 언제든지 실행할 준비가 되어있는 상태를 말합니다. 운영체제는 실행 대기 상태에 있는 하나의 스레드를 선택하고 CPU가 run () 메서드를 실행상태로 만듭니다. 실행 상태의 스레드는 run() 메서드를 모두 실행하기 전에 다시 실행 대기 상태로 돌아갈 수 있고, 실행 대기 상태에 있는 다른 스레드 중에서 하나를 선택해 실행 상태..

article thumbnail
스레드 (Thread) - 동기화 메소드 (1)
Android/java 2021. 2. 23. 23:58

싱글 스레드 프로그램에서는 1 개의 스레드가 객체를 독차지해서 사용하면 되지만, 멀티스레드 프로그램에서는 스레드들이 객체를 공유해서 작업해야 하는 경우가 있습니다. 이때 여러 스레드에서 동시에 한 객체에 접근할 수 있게 되면, 한 스레드에 의해 변경된 객체의 상태가 다른 스레드의 작업에 영향을 미쳐서 의도치 않은 결과를 낼 수 있습니다. 공유 객체를 사용할 때의 주의할 점 멀티 스레드 프로그램에서 스레드들이 객체를 공유해서 작업해야 하는 경우, 스레드 A가 사용하던 객체를 스레드 B가 상태를 변경할 수 있기 때문에 스레드 A가 의도했던 것과는 다른 결과를 산출할 수도 있습니다. User1 스레드가 Calculator 객체의 memory 필드에 100을 먼저 저장하고 2초간 일시정지 상태가 됩니다. 그동안..

스레드 (Thread) 하위클래스
Android/java 2021. 2. 21. 23:56

안녕하세요 오늘은 스레드(Thread) 2편입니다. 지난번 시간에 스레드란? 에서 Runnable로 스레드를 만들어 보았는데요. 지난 시간 내용입니다 :) 스레드 (Thread) 란? 우선 스레드를 공부하기 전 알고 넘어가야 할 개념이 있는데 프로세스(process)입니다. 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 시행되는데, 이것을 프로세스 itminco.tistory.com 오늘은 Thread를 하위 클래스로부터 생성해 보겠습니다. 작업 스레드가 실행할 작업을 Runnable로 만들지 않고, Thread의 하위 클래스로 작업 스레드를 정의하면서 작업 내용을 포함시킬 수 있습니다. Thread 클래스를 상속한 후 run() 메서드를 재정의(Overriding)해서 스레드가 ..

코틀린(Kotlin) 이란?
Android/Kotlin 2021. 2. 21. 03:31

안녕하세요. 오늘은 코틀린(Kotlin)에 대해서 공부해 보겠습니다. 코틀린(Kotlin)이란, JVM에서 동작하는 프로그래밍 언어입니다. 현재 현업에서도 JAVA에서 코틀린(Kotiln)으로 변환하는 추세입니다. 대표적으로 Android에서 많이 사용이 되고 있습니다. 안녕, Kotlin fun main() { println("안녕, kotlin") } 코틀린 (Kotlin)은 Java와 다르게 class를 따로 선언하지 않고 함수를 선언할 수 있습니다. 우선 함수 fun(Function)의 약자로, 앞으로 나올 코드가 함수임을 나타내는 키워드입니다. 함수는 그저 명령어들을 담아 놓는 상자라고 생각하시면 됩니다. 이름이 main인 함수는 프로그램의 시작점입니다. 함수는 거저 명령어들을 담아 놓는 상자라..

article thumbnail
스레드 (Thread) 란?
Android/java 2021. 2. 18. 22:41

우선 스레드를 공부하기 전 알고 넘어가야 할 개념이 있는데 프로세스(process)입니다. 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 시행되는데, 이것을 프로세스라 합니다. 그리고 내부에서 코드의 실행 흐름을 스레드(Thread)라고 하죠. 운영체제는 두 가지 이상의 작업을 동시에 처리하는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킨다. 스레드(Thread)의 뜻은 한 가닥의 실이라는 뜻이다. 한 가지 작업을 실행하기 위해 순차적으로 코드를 실처럼 이어 놓았다 해서 유래된 이름이다. 멀티 프로세스는 OS(운영체제)에서 할당받은 자신의 메모리를 가지고 실행하기 때문에 각 프로세스는 서로 독립적이다. 따라서 하나의 프로세스에..

article thumbnail
알고리즘이란?
Algorithms 2019. 1. 23. 11:09

알고리즘이란 무엇일까요? 알고리즘이란 문제를 해결하기위한 여러 동작들을 말합니다. 즉, 조건을 만족하는 해결 방안이 될수 있겠죠? 입력 , 출력, 명확성, 유한성, 효율성 의 조건을 만족해야해요. 입력, 외부에서 제공되는 자료가 0개이상 존재 해야합니다.출력. 모든 입력에 하나의 출력이 나와야 합니다.명확성, 수행한 과정은 면확하고 모호하지 않은 명령어로 구성되어야 합니다.유한성, 유한 번의 명령어를 수행 후에 종료해야합니다.효율성, 모든 과정은 명백하게 실행(검증)이 가능 해야합니다. 우선 짧은 예제를 통해 알아볼께요. 3개의 정수값 가운데 '최댓값'을 구하는 프로그램입니다.변수 a, b, c 에 들어가는 값은 키보드에서 입력한 값이며, 그 3개의 값 증 퇴댓값을 변수 max로 찾을 수 있습니다. 여기..