CS/Java

🎮 [JAVA 자바] #1 | 자바 특징, WORA, Eclipse, package, static, extern, JDK, JRE, SE, 디버그

주미니마니모 2022. 4. 16. 11:27
반응형

 


🎮 자바 특징

 - WORA(Wirte Once Run Anywhere)

- 자바의 가장 큰 특징으로, 한 번 작성된 코드는 OS, H/W와 관계없이 모든 플랫폼에서 똑같이 실행될 수 있다.

 

 - WORA 가능하게 하는 자바 특징

- 바이트 코드(byte code) : 자바 소스를 컴파일한 목적 코드 (.class 파일) 컴파일러에 의해 변환되는 코드의 명령어 단위가 1byte이며, 운영체제에서 직접 실행되는 것이 아니라 JVM 상에서 실행된다.

- JVM(Java Virtual Machine) : 자바 바이트 코드를 클래스 로더를 통해 읽어들여 자바 API와 함께 실행하는 자바 가상 기계. 자바 가상 기계가 설치된 모든 컴퓨터에서(어떤 플랫폼)에서도 동일한 실행 환경을 제공할 수 있다.

 

 - 프로그래밍을 위해 필요한 개발 도구

- 편집기, 컴파일러, 실행환경, 디버거 -> IDE(통합개발환경으로 Eclipse, Xcode 같은거)


🎮 자바 프로그램

 - public class HelloWorld {} 

HelloWorld는 클래스 이름

public이 붙은 클래스의 이름과 파일명이 일치해야 한다.

모든 코드를 클래스 안에 작성하고, 한 파일에 여러 클래스를 작성 가능하다.

 

 - public static void main(String[] args)

자바 프로그램은 main()메소드에서 실행 시작

main()메소드가 반드시 하나 존재해야한다.

String[] args는 program argument로 프로그램 시작될 때 사용자로부터 입력 받는다.

-> args[0], args[1], args[2] 이렇게 접근 가능하다.

 

 - System.out.prinln("Hello World!");

화면 출력 후 줄바꿈. (System.out.print()는 줄바꿈 없이 출력)

숫자는 문자로 변형돼서 출력된다.

 

public : 어디에서나 접근 가능

static : 객체 생성없어도 호출이 가능

   - static + (지역변수 또는 함수) : 데이터 공간에 할당되어 사라지지 X

   - 그냥 지역변수는 stack영역에 할당되며 블럭단위, 로컬파일 안에서 사용

 

 - 패키지 package  

서로 관련된 클래스들의 묶음. 자바 클래스들을 고유한 이름을 제공하기 위해 패키지 단위로 구분.

 

* 임포트 : 자바 API의 패키지 클래스 사용하기 위해서 import 선언과 함께 패키지 단위로 사용 가능

(ex. import java.lang.String;   import java.lang.Math;)

사용할 때는, Math.random() 이런식으로 사용.

 

* 패키지 선언 : package xxx  (ex. package week2_1; )

 


🎮 이클립스 기능  

 - 디버그

동적분석으로, 중단점을 찍고 실행할 수 있으며, call stack, stack frame확인 가능

F11 : 디버그 모드 실행
F6 : step over (next)
F5 : step into
F7 : step return
F8 : 다음 중단점까지 실행
F2 : 실행종료

🎮 JAVA SE 설치와 실행

 - JDK와 JRE 

JRE : Java Runtime Environment 자바 실행환경(JVM)

JDK : Java Development Kit 또는 Java SDK(Softwore ~~) JRE 포함 + 자바 개발환경으로 SE, ME, EE로 구분

   - Java ME(Micro Edition) : 휴대전화나 PDA, 셋톱박스 등 임베디드 하드웨어 응용 개발 위한 플랫폼 (SE + 임베디드 API)

   - Java SE(Standard Edition) : 데스크탑서버 응용 개발 플랫폼

   - Java EE(Enterprise Edition) : 자바 이용한 다중 사용자, 기업용 응용 개발 위한 플랫폼 (SE + 서버 관련 API)

 

JRE < JDK

JDK : ME < SE < EE

 

- Java SE 구성 

 \Java\jdk-x.x.x\

bin : 자바 개발, 실행에 필요한 도구와 유틸리티 명령
conf : 여러 종류의 배치 파일
include : 네이티브 코드 프로그래밍에 필요하는 C 언어 헤더 파일
jmods : 컴파일된 모듈 파일들
legal : 각 모듈에 대한 저작권과 라이선스 파일
lib : 실행 시간에 필요한 라이브러리 클래스들

 

 \Java\jdk-x.x.x\bin\

javac : 자바 소스를 바이트코드로 변환하는 컴파일러
java : JVM을 작동시켜 자바 프로그램(.class) 실행
...

 


 

반응형