자바의 특징
1. 운영체제 독립적이다
JVM 이라는 가상머신이자 *에뮬레이터가 존재해서 운영체제(Window, Linux, iOS, Android 등)에 맞춰 변화를 주지않아도 된다는 뜻
JVM : '자바를 실행하기 위한 가상 컴퓨터'라고 이해하면 됨, 운영체제에 종속적이어서 썬에서는 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다.
Java Application 실행되기 위해 JVM이 꼭 필요, 컴퓨터(하드웨어) <-> OS <-> JVM <-> 일반 어플리케이션
일반 Application 실행은 컴퓨터(하드웨어) <-> OS <-> 일반 어플리케이션
Java가 옛날에 속도가 느리다는 단점이 있었는데 이는 실행시에 해석(interpret)되기 때문이었다.
요즘에는 바이트 코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술(ex. Hotspot) 이 적용되어 속도의 격차를 많이 줄였다.
2. 객체 지향 언어(object-oriented programming language) 중 하나
특징 : 상속화, 캡슐화, 다형성이 적용됨
3. 배우기 쉽다
C++에서 연산자와 기본 구문
객체지향 관련 구문은 small talk이라는 객체 지향 언어에서 가져왔다.
객체지향언어 : 재사용성, 유지보수의 용이성
4. 자동 메모리 관리(Garbage Collection)
가비지 컬렉터가 자동적으로 메모리 관리를 해준다
이는 다소 비효율적인 면도 있다 그러나 프로그래머들에게는 보다 프로그래밍에 집중할 수 있도록 해준다
5. 네트워크와 분산처리를 지원한다.
풍부한 Java API를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발 할 수 있도록 지원한다
6. 멀티스레드를 지원한다.
OS 에 따라 다른데, 자바에서 개발되는 멀티스레드 프로그램은 시스템과는 관계없이 구현가능하고 관련 라이브러리가 제공되어 구현이 쉽다
그리고 여러 스레드에 대한 스케줄링(*scheuduling)을 자바 인터프리터가 담당하게 된다.
7. 동적 로딩을 지원(Dynamic Loading)
여러 클래스로 구성된 어플리케이션을 동적로딩이 지원하기에 모든 클래스가 로딩되지 않고 필요 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
일부 클래스가 변경되어도 전체 어플리케이션을 다시 컴파일 하지 않아도 되며 어플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로 처리가능한 어플리케이션 작성가능
자바개발환경 구축하기
JDK설치하기(Java Development Kit)
JDK를 설치하면, 자바가상머신과 자바클래스 라이브러리(Java API)이외에 자바를 개발하는데 필요한 프로그램들이 설치된다
JDK1.2이후의 버전을 Java2라고도 한다.
- javac.exe : 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다.
- java.exe : 자바 인터프리터, 컴파일러가 생성한 바이트코드를 해석하고 실행한다.
- javap.exe : 역어셈블러, 컴파일된 클래스 파일을 원래의 소스로 변환한다.
- 역컴파일되어 선언부만 저장된다. '-c'옵션 이용하면 바이트코드로 컴파일된 내용도 볼 수 있다.
- javadoc.exe : 자동문서생성기, 소스파일에 있는 주석을 이용하여 Java API문서와 같은 형식의 문서를 자동으로 생성한다.
- jar.exe : 압축프로그램, 클래스파일과 프로그램의 실행에 관련된 파일을 하나의 .jar파일로 압축하거나 압축해제한다.
appletviewer.exe : 애플릿 뷰어 , HTML문서에 삽입되어 잇는 애플릿을 실행시킨다.
>>지금 보는 자바의 정석버전이 2008년도꺼라 ㅎ
++ appletviewer.exe :
2015년 10월 파이어폭스에서 NPAPI 플러그인 지원을 중단하겠다는 발표를 했고, 곧이어 오라클에서는 2016년 1월 Java 9부터 애플릿을 위한 자바 플러그인 지원을 중단하겠다고 발표했다. 따라서 자바 애플릿은 Java 9 이후 역사 속으로 사라질 예정이며, 이후 자바 애플릿이 했던 역할은 유사한 기술인 Java Web Start가 대신하게 된다. ActiveX나 NPAPI를 지원하지 않는 브라우저에서는 자바를 사용할 수 없다.
결국 Java 17에서 Applet API가 완전히 삭제되었다
압축할때는 cvf
압축풀때는 xvf
비슷한 용어들
JRE : 자바실행환경*(Java Runtime Enviroment) 자바로 작성된 응용프로그램이 실행되기 위한 최소 환경
JDK : JRE + 개발에 필요한 실행파일(javac.exe 등)
JRE : JVM + 클래스라이브러리(Java API)
헷갈리는 용어 및 모르는 용어 정리
* 에뮬레이터(Emulator)는 한 시스템에서 다른 시스템을 복제한다. 그리하여 두 번째 시스템이 첫 번째 시스템을 따라 행동하는 것이다. 외부의 행동에 대해 똑같이 따라하려고 하는 이 관점은 시뮬레이션과는 정 반대이다. 왜냐하면, 시뮬레이션은 자주 내부 상태와 관련하여, 흉내내는 시스템의 추상적인 모델과 관계가 있기 때문이다.
Reference
'Back > Java' 카테고리의 다른 글
[ 자바 웹 프로그래밍 Next Step] Day.01 테스트와 리팩토링의 중요성 (0) | 2022.02.23 |
---|---|
[Java / Collection] 컬렉션 개념 이해 및 정리(*) (0) | 2022.02.17 |
[programming basic] 메소드와 클래스, 객체, 추상화, 필드 (+캡슐화) (0) | 2021.07.11 |
[programming basic] java의 특징, 메모리, 연산자 정리 (0) | 2021.07.11 |
[programming basic] 간단한 기본지식과 java의 자료형 (0) | 2021.07.09 |