일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JPA
- exception
- ORM
- 토비의스프링
- 링커
- springboot
- String
- IOC
- DispatcherServlet
- Spring
- 프록시
- 빌드툴
- AutoConfiguration
- ApplicationContext
- DesignPattern
- 메이븐
- 토비의스프링3.1
- 클린코드
- beanfactory
- 컴퓨터시스템
- 링킹
- springwebmvc
- FunctionalInterfaces
- java
- lambda
- hibernate
- gradle
- Immutable
- Kotlin for Java Developers
- 자바
- Today
- Total
엔지니어로 가는 길
언어로서의 자바, 플랫폼으로서의 자바 본문
원문 링크
https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html
언어로서의 자바
자바의 특징
자바 코드가 실행되는 과정
자바에서는 소스코드를 plain 텍스트 파일(.java)에 작성한다. 소스코드는 javac 컴파일러에 의해 .class 파일로 컴파일된다. 이때 프로세서에게 .class 파일을 줘도 이해하지 못한다. .class 파일은 바이트 코드로 작성되어 있기 때문이다. 이는 Java Virtual Machine(이하 JVM)가 이해하는 기계어이다. JVM이 바이트 코드를 프로세서가 이해할 수 있는 명령어로 번역해준다.
Write once, run everywhere
어떤 환경에서 작성되었든 JVM만 있다면 자바 프로그램은 어디서든 동일하게 동작한다. .java 소스코드가 .class 바이트 코드(machine-independent)로 작성되기 때문이며, 운영체제마다 바이트 코드를 자신의 프로세서가 이해할 수 있는 기계어로 바꿔주는 JVM이 있기 때문이다.
플랫폼으로서의 자바
플랫폼이란 프로그램이 실행되는 하드웨어 또는 소프트웨어 환경이다. 자바 플랫폼은 다른 대부분의 플랫폼과 다른 하드웨어 기반의 플랫폼의 위에서 동작하는 달리 소프트웨어-only 플랫폼이다.
자바 플랫폼은 두 가지 컴포넌트를 갖는다.
- The Java Virtual Machine
- The Java Application Programming Interface(API)
API는 유용한 기능을 제공하는 소프트웨어 컴포넌트의 집합이다. 연관된 클래스와 인터페이스의 라이브러리로 그룹화되어 있다. 라이브러리를 패키지라고도 한다.
플랫폼 독립적이기 때문에 자바 플랫폼은 다른 native 코드보다 느릴 수 있다. 하지만 컴파일러와 virtual machine 기술 덕분에 우수한 portability는 그대로 유지한 채로 native 코드 못지 않은 성능을 낼 수 있다.
'프로그래밍 > Java' 카테고리의 다른 글
Java 접근 제어자와 접근의 의미 (0) | 2020.04.21 |
---|---|
논리 연산자 &, |와 &&, ||의 차이 (0) | 2020.04.10 |
JAVA 두 개 이상의 정렬 기준을 지원하는 방법: Comparator (0) | 2020.02.08 |
Java ConcurrentModificationException 해결하기 (0) | 2020.02.07 |
Java 객체를 생성하는 방법 (0) | 2020.01.26 |