-
DAY1. 자바의 특징기록 2022. 9. 8. 09:13
자바
1. 소스코드(.java) 작성한다.
2. 소스코드(.java)를 실행파일(.class)로 변환 - 자바개발도구(jdk)에서 자바컴파일러(javac.exe)를 제공한다.
javac.exe에 의해 소스파일(App.java) -----> 실행파일(App.class)을 생성한다.
javac.exe는 컴파일러(Compiler) 프로그램이다.
* 컴파일 : 소스파일을 실행파일로 변환하는 작업을 의미한다.
program Files > Java > jdk-17.0.4.1 > bin 폴더 안에 java와 javac가 있다.
javac : 컴파일러, 소스코드를 실행파일로 만들어준다.
java : 자바가상머신(jvm)을 실행시켜준다. 실행파일을 실행시켜준다.
javadoc : 메뉴얼 문서를 만드는 도구
jar : 패키징하는 도구
3. 실행파일을 실행한다.
java.exe 실행파일명
* .class 확장자는 생략한다.
ex) App.class 실행파일 실행하기
java.exe App (.class 생략! 소스코드 확장자는 여러개일 수 있지만 자바에서 실행파일은 무조건 .class라서)
* 자바 가상머신이 실행되고, 자바 가상머신은 App.class 파일을 읽어서 실행한다.
4. 프로그램이 실행된다.
자바의 모든 프로그램은 컴퓨터가 수행할 작업이 정의된 작업지시서다.
소스파일(.java) : 개발자용 작업지시서, 텍스트파일이다.
실행파일(.class) : 자바가상머신용 작업지시서, 바이트코드파일이다.
* 바이트코드는 자바가상머신(jvm)이 이해할 수 있는 코드다.
* 컴파일러는 소스코드를 바이트코드로 변환한다.
- 예약어(키워드) : 사용위치와 사용목적이 이미 결정된 키워드, 식별자로 사용할 수 없다.
- 식별자 : 고유한 이름이다. 패키지명, 클래스명, 메소드명, 변수명이 식별자다.
식별자는 개발자가 임의로 정하는 것이다. 식별자는 문자, 숫자, _만 사용할 수 있다.
(단, main은 프로그램 실행의 진입점이기 때문에 변경할 수 없다.)
값을 식별자와 구별하기 위해 "" 안에 작성한다. 숫자로 시작하는 식별자는 없기 때문에 쌍따옴표를 적지 않는다.
- 수행문 : 메서드 안에 적은 문장
- 크로스 플랫폼을 지원한다.
: 자바가상머신이 설치되어 있기만 하면 운영체제나 하드웨어 플랫폼에 상관없이 자바응용프로그램을 실행할 수 있다.
- 객체지향프로그래밍 언어다.
: 레고블록을 조립하듯이 각각의 블록에 고유한 기능을 구현하고, 그 블록들을 조립해서 완성된 프로그램을 개발하는 방식이다.
: 블록 하나하나가 객체에 해당되며, 그 블록은 설계도를 이용해서 만들어진다.
: 하나의 설계도로 같은 블록을 여러 개 만들어 내는 게 가능하다.
: 기존 블록보다 더 좋은 블록이 개발되면 언제든지 새로운 블록으로 교체가능하다.
: 재사용성, 확장성이 매우 뛰어나다.
- 플랫폼 독립적인 언어다.
: 시스템의 소프트웨어, 하드웨어 사양에 상관없이 자료형이 크기가 고정적이다. (c언어의 경우 가변적으로 변한다. 시스템에 따라 정수의 최소 범위, 최대 범위가 달라진다, 자바는 값을 예상할 수 있다. 최소 범위, 최대 범위는 예측 범위 내에 있다. -> 시스템 독립적인 언어)
- 자바가상머신이 메모리 관리 작업을 자동으로 수행한다.
: 개발자가 메모리 관리기능을 신경 쓸 필요 없이 업무로직의 구현에만 집중할 수 있게 한다.
- 멀티쓰레드를 지원한다. (쓰레드는 한번에 동시 실행되는 것을 말한다.)
- 함수형 프로그래밍을 지원한다. (java8부터 지원)
'기록' 카테고리의 다른 글
DAY6. while문 (0) 2022.09.09 DAY3. 설계도로 객체 생성하고, 참조하기 (0) 2022.09.08 DAY4. 제어문과 반복문, 변수의 스코프 (0) 2022.09.08 DAY2. 변수의 데이터 타입, 식별자 작성 관례, 자바가상머신 메모리 구조 (0) 2022.09.08 DAY5. String 객체 비교, break와 continue (0) 2022.09.07