일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Stored Procedure
- 이진탐색
- two pointer
- DP
- String
- Dijkstra
- 그래프
- Hash
- Brute Force
- Two Points
- Trie
- union find
- MYSQL
- SQL
- 다익스트라
- 스토어드 프로시저
- binary search
- Today
- Total
codingfarm
개요 본문
자바란?
$\bullet$ 자바는 OS에 독립적이다.
$\bullet$ 자바로 작성된 프로그램은 OS에 관계없이 실행이 가능하다. 그러므로 다양한 기종의 컴퓨터와 OS가 공존하는 인터넷 환경에 적합한 언어이다.(하지만 이는 Python, Ruby, PHP, JavaScript같은 고급언어 관점에서는 장점이라 보기 힘들다.)
$\bullet$ C++의 장점을 채택하면서 잘 사용되지 않는 부분은 과감히 제외시킴으로써 비교적 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능토록했다.
$\bullet$ 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공하므로 자바 프로그래머는 단순히 이 클래스 라이브러리만을 잘 활용해도 강력한 기능의 자바 프로그램을 작성할 수 있다.
$\bullet$ Garbage Collector가 자동적으로 메모리 관리를 해준다.
$\bullet$ 네트워크와 분산처리를 지원한다.
$\bullet$ 멀티쓰레드를 지원한다.
$\bullet$ 실행시에 모든 클래스가 로딩되지 않고, 필요한 시점에 클래스를 로딩하여 쓸 수 있는 Dynamic Loading을 지원한다.
JVM(Java Virtual Machine)
$\bullet$ 자바를 실행하기 위한 가상 기계
$\bullet$ 자바로 작성된 어플레키에션은 모두 JVM에서만 실행되므로, 자바 어플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.
일반 어플리케이션은 OS바로 위에서 작동되는반면 Java 어플리케이션은 JVM을 한번 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행시에 해석(interpret)되기 때문에 속도가 느리다는 단점이 있다.
그러나 요즘엔 바이트코드를 HW의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이 적용되어 속도의 격차를 많이 줄였다.
앞서 설명했듯이 Java 어플리케이션은 어떤 OS에서 작동하든지 JVM만 이에 맞게 바꿔주면 되므로, 프로그램의 수정이 필요없다.
JVM : OS에 종속적이다.
Java application : JVM하고만 상호작용한다. OS에 따라 바뀔 필요가 없다.
write once, run anywhere
'Programming Language > JAVA' 카테고리의 다른 글
변수 (0) | 2020.11.02 |
---|---|
객체지향 프로그래밍 (0) | 2020.11.01 |
배열(Array) (0) | 2020.11.01 |
JVM의 메모리구조 (0) | 2020.10.11 |
JDK(Java Development Kit) (0) | 2020.10.10 |