JAVA (18) 썸네일형 리스트형 JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가? JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는가 JVM 구성요소 JDK와 JRE의 차이 JVM이란 무엇인가 JVM은 Java Virtual Machine '자바 가상 머신'을 뜻하는 말로 바이트코드를 실행하는 주체입니다. 자바가 처음 세상에 나왔을 때 WORA (Write Once Run Anywhere) 를 내세워 홍보하였습니다. 한번 작성해서 어디서든 실행할 수 있다는 말로, 자바 코드로 작성한 프로그램은 실행할 환경 (예를 들어 운영체제)에 독립적으로 실행할 수 있음을 뜻합니다. JVM과 같은 중간언어를 해석해주는 추상화된 장치가 없는 언어들은, 운영체제가 바뀔 때마다 그에 맞는 실행 가능한 프로그램을 만들어야 합니다. 이런 불편.. 람다식 학습 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식을 사용하기에 앞서 익명 구현 객체라는 것에 대해 알면 좋습니다. 익명 구현 객체는 인터페이스나 클래스의 객체를 생성해서 사용할 때, 재사용하지 않는 경우 보통 사용합니다. 예를 들어 보겠습니다. 특정 인터페이스를 사용하기 위해 이 인터페이스를 상속 받은 클래스를 구현하는 방법이 있습니다. public class Exam_001 { public static void main(String[] args) { Exam_001_Sub exam_001_sub = new Exam_001_Sub(); exam_001_sub.doSomething(); } } interface AnoymousTest_001 { void d.. 제네릭(Generic) 제네릭이란 제네릭 사용법 제네릭 메소드 만들기 제네릭 주요 개념(바운드 타입 와일드 카드) Erasure 제네릭이란? 제네릭은 '클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법' 입니다. 그러면 왜 클래스 내부에서 사용할 데이터 타입을 밖에서 지정해주자는 것인가? 아래 상황을 살펴봅시다. 자바를 좋아하는 촉이 좋은 '감자바'씬느 친구 '좀해조'씨로부터 두개의 숫자를 출력하는 프로그램을 만들어 달라는 요청을 받았습니다. 그래서 감자바씨는 흔쾌히 만들어주겠다고 하며 두팔을 걷어부치고 코딩을 했습니다. public class GenericExample { public static void main(String[] args) { cal cp = new calc(13, 17); cp.print(); .. I/O (Input/Output) - 자바의 Input과 Output에 대한 학습 * 학습할 것 - 스트림(Stream) / 버퍼 (Buffer) / 채널(Channel) 기반의 I/O - InputStream과 OutputStream - Byte와 Character 스트림 - 표준 스트림(System.in, System.out, System.err) - 파일 읽고 쓰기 스트림(Stream) / 버퍼(Buffer) / 채널(Channel) I/O란? Input과 output의 약자로 입력과 출력을 나타냅니다. 죽, 컴퓨터 내부 똔느 외부와의 장치와 프로그램간 데이터를 주고 받는 것을 말합니다. input : 데이터를 입력 받는 것 output : 입력받은 데이터를 내보내는 것 스트림 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을.. 어노테이션 어노테이션이란? 1.1 어노테이션 어노테이션은 컴파일 과정에서 코드를 어떻게 컴파일할 것인지 실행 과정에서 코드를 어떻게 처리할 것인지를 알려주는 정보입니다. 즉 메타 데이터로써 역할을 합니다. 메타데이터는 데이터를 위한 설명을 의미하는 데이터가 담겨있습니다. 주로 컴파일러에게 코드 문법 에러를 검사하도록 정보를 제공하거나 코드를 자동으로 생성할 수 있도록 정보를 제공합니다. 런타임 시에는 특정 기능을 실행하도록 정보를 제공합니다. 사용방식은 @ + 어노테이션 명으로 특정 클래스나 메소드, 변수에 붙여 사용합니다. 1.2 Java에서 제공하는 어노테이션 @Override - 선언한 메소드가 오버라이드 되었다는 것을 나타냅니다. - 상위 클래스에서 해당 메소드를 찾을 수 없으면 컴파일 에러를 발생 시킵니다.. Enum Enum 정의하는 방법 Enum이란? enum(열거형)은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 상수를 여러개 정의할 때 사용합니다. enum은 여러 상수를 정의한 후, 정의된 것 이외의 값은 허용하지 않습니다. 가장 간단하게 선언하는 방법은 다음과 같습니다. enum 열거형이름 {상수명1 상수명2, 상수명3} public class EnumDemo { enum Season {SPRING, SUMMER, FALL, WINTER} public static void printSeason(Season season) { switch (season) { case SPRING: System.out.println("봄입니다."); break; case SUMMER: System.out.println("봄입.. 멀티쓰레드 프로그래밍 스레드 운영체제는 두가지 이상의 작업을 동시에 처리하는 멀티 태스킹(multi tasking)을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킵니다. 예를 들어, 워드로 문서 작업을 하면서 동시에 윈도우 미디어 플레이어로 음악을 들을 수 있습니다. 멀티 태스킹은 꼭 멀티 프로세스(프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원과 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는것이 바로 쓰레드입니다.)를 뜻하는 것은 아닙니다. 한 프로세스 내에서 멀티 태스킹을 할 수 있도록 만들어진 애플리케이션도 있습니다. 대표적인 것이 미디어 플레이어와 메신저입니다. 미디어 플레이어는 동영상과 재생과 음악 재생이라는 두 가지 작업을 동시.. 자바의 예외처리 자바에서 예외 처리 방법(try, catch, throw, throws, finally) try - catch - finally 블록은 생성자 내부와 메스드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해줍니다. try - catch - finally 블록은 다음과 같이 작성합니다. 정상 실행 되었을 경우 try { [실행 O] [예외 발생가능 코드] } catch(예외클래스 e) { [실행 X] [예외 처리] } finally { [실행 O] [항상 실행] } 예외가 발생되었을 경우 try { [실행 O] [예외 발생O] [예외 발생가능 코드] } catch(예외클래스 e) { [실행 O] [예외 처리] } finally { [실행 O] [항상 실행] } try 블.. 이전 1 2 3 다음