Java (1)

이재문·2022년 9월 21일
0

나의 첫 프로그래밍 언어는 파이썬이다.
파이썬은 따로 컴파일을 하지 않는 인터프리터 언어여서 그런지 *.py파일을 만들고 실행하면 바로 결과값이 나온다.
Java를 처음 공부하며 알게 된 것은 Intelij(IDE)를 실행하고 프로젝트를 시작하면 자동으로 폴더가 만들어진다.
처음 Java를 보는것이기 때문에 쉽고 어려움을 떠나 새로운 것은 모두 기록 할 예정이다.

src

  • 프로젝트 생성시 자동으로 만들어지는 초기 폴더
  • 실제 코드를 작성한 파일을 저장하는 폴더

class 생성

// Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}
  • 파일 내 여러 코드, 기능 중 main메소드를 가장 먼저 실행한다.

환경변수 설정

컴퓨터가 java 실행 폴더를 찾을 수 있도록 path를 항상 입력 해 줘야 하지만 간단하게 처리 하도록 환경 변수 또한 설정 해 준다.

내 컴퓨터(mac)의 경우 ~/Library/Java/JavaVirtualMachines에 자바가 있다. ~/.zshre~/.bash_profile에 아래와 같이 입력 해 준다.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-19/Contents/Home
export PATH=${PATH}:/Library/Java/VirtualMachines/openjdk-19/Contents/Home

이후 source로 환경변수를 적용 해 준 뒤 커맨드에 ${PATH}를 입력 했을 때 Java 경로가 출력되면 완료.

컴파일러, JVM

컴파일러(javac)

  • java 소스 코드를 바이트 코드 파일로 컴파일을 처리 해 주는 도구
  • 다른 컴파일 언어에서도 사용한다.

JVM(java)

  • 바이트 코드 파일을 기계어로 변환 해준다.
  • 기계어를 실행 해 줌
  • 메모리 로딩, 실행 준비, 실행, 초기화

실행(command)

나는 IDE를 사용하기 때문에 버튼으로 위 과정을 실행 할 수 있다. 하지만 직접 커맨드로 쳐 보는게 재미있기 때문에 터미널에서 java를 실행 시켜 보겠다.

  1. 터미널에서 위 코드Main.java가 있는 위치로 이동
  2. javac Main.java를 입력
  3. 컴파일된 Main.class가 생성
  4. java Main을 입력
  5. 코드로 정의 해 둔 Hello Java 출력
  6. command에 java *.java 를 입력하면 자동으로 컴파일을 하고, 실행까지 진행

Gabage Collector

C계열

  • 메모리 관리를 개발자가 직접 관리 함 (실제로 아두이노를 만들 때, 메모리가 계속 출력이 되는 것을 보았다.)
  • 메모리를 직접 관리하기 때문에 관리가 소홀해지면 당연히 메모리 누수가 발생할 것이고, 프로그램이 멈출 수 있음

Java

  • 개발자가 메모리에 접근 불가
  • Gabage Collector가 불필요한 메모리 회수 후 최적화

Gabage Collector는 학습 후 다른 포스팅에서 남겨야 할 거 같다.

profile
이제부터 백엔드 개발자

0개의 댓글