Java 언어의 특징

자바 언어로 작성된 소스코드는 운영체제로부터 독립적인 특징을 갖는다.
원래는 운영체제마다 코딩을 작성해야 하는데, 자바 언어는 운영체제와의 호환성에 대한 부분을 JVM(Java Virtual Machine)이라는 레이어로 해결. 따라서 자바 애플리케이션을 만들 땐 JVM에서 동작할 수 있게만 작성하면 된다.
** JVM : 운영체제(OS)와 자바 애플리케이션 사이의 호환을 해결해줌. 또한 메모리관리, 가비지 컬렉션, 스레드 관리 등의 작업도 동시에 수행

Java언어는 객체지향 프로그래밍이다.
소스 코드를 작성할 떄 클래스 단위로 작성
클래스는 객체를 만들기 위한 설계도이다. 클래스는 객체가 가질 수 있는 특징으로 필드와 메서드에 대한 설계를 포함

필드는 객체의 속성, 같은 종류의 클래스로부터 만들어지는 객체가 갖는 공통된 성격의 값
메서드는 객체의 동작, 같은 종류의 클래스로부터 만들어진 객체가 갖는 공통된 함수

자바 애플리케이션은 JVM 위에서 돌아가며, 메모리(RAM)을 자동관리해준다.
따라서 메모리 관리에 대해 고려하지 않고 애플리케이션을 개발할 수 있다.

Java는 오픈 소스 라이브러리가 풍부하며 오픈소스는 무료이기 떄문에 비용 효율적이다.

Java 개발 환경 설정하기

자바 언어로 애프리케이션을 개발하기 위해선 자바개발도구(JDK)를 설치해야 한다. LTS(오랫동안 지원해줌)에 해당하는 버전을 사용하는 것이 좋다.

  1. https://jdk.java.net/archive/ -> LTS버전중 최근 버전인 JDK17로 설치
  2. 압축 해제 후 C드라이브에 옮긴다.
  3. 환경변수에 JDK폴더의 경로 추가(시스템 -> 고급 시스템 설정 -> 고급탭 -> 환경변수 클릭 -> 새로만들기 -> 변수이름(JAVA_HOME) / 변수 값(JDK경로) 생성
  4. 시스템 변수 중 Path선택 후 편집 -> 새로만들기 -> %JAVA_HOME%\bin값 입력
  5. cmd -> java --version 으로 설정이 잘되어있는지 확인

자바 프로그램 개발 과정

자바는 파일의 확장자가 .java인 파일에 명령어를 작성한다.
이 파일은 javac프로그램을 통해 컴파일할 수 있으며 .class 파일인 바이트 코드로 생성된다.
바이트 코드 파일은 완전한 기계어는 아니며, 이 바이트 코드는 java 프로그램에 의해서 JVM에서 사용된다.

자바 프로그램은 완전한 기계어가 아닌, 바이트 코드 파일(.class)로 구성되며, 바이트 코드 파일은 운영체제에서 바로 실행할 수 없고 JVM에 의해 완전한 기계어로 번역하고 실행 된다.

패키지란? 패키지 생성 방법

패키지는 동일한 카테고리에 속하거나 유사한 기능을 제공하는 클래스를 그룹화하고, 수백 개의 클래스로 구성된 대규모 애플리케이션을 구조화하고 조직화하는 데 사용된다.
1. 프로젝트 도구 창에서 src 폴더를 마우스 오른쪽 버튼으로 클릭한 다음, 새로 만들기(New)를 선택하거나 Alt+Insert키를 누른 뒤, Java Class를 선택
2. 이름 필드에 sec03.exam01.Hello 를 입력한 다음 OK클릭. Intellij IDEA가 sec03.exam01 패키지와 Hello 클래스를 생성 (패키지는 소문자로 작성, 클래스는 첫글자만 대문자)

main 메서드

public static void main(String[] args) 에서 main은 메소드 이름이며, java 명령어로 바이트 코드 파일을 실행하면 제일 먼저 main()메소드를 찾아 블록 내부를 실행한다. 그래서 main() 메소드를 프로그램 실행 진입점 이라고 부른다.

System.out.println()

문장이 자동 완성되며 이는 괄호 속에 있는 내용을 출력하고 줄바꿈을 하는 동작이다.

바이트 코드 만들고 실행하기

Run 메뉴의 Run(shift + f10)을 누르면 바이트코드(.class)를 생성하고 실행한다. 실행 후 out이라는 폴더가 생성이 되며,소스코드를 javac를 통해 complie이 되어 class 파일을 만들며 그 파일이 out폴더로 들어간 것을 확인할 수 있다.

profile
새로운 시작. 그리고 도약

0개의 댓글

Powered by GraphCDN, the GraphQL CDN