Jump to Java 01장 안녕 Java !!

whco·2021년 8월 6일
0

Jump to Java

목록 보기
2/4

2021.08.05

작성 개요 및 목적

기초가 튼튼하고 러닝커브가 큰 개발자가 되기 위해 공부한 것 기억 및 정확한 개념 정립 목적으로 포스트 작성.

필자는 C++을 주로 공부하였고 알고리즘 문제풀이나 코딩테스트에 주로 활용하였고 파이썬으로 문자열 문제 등을 처리함. C++은 프로그래머스 3단계 2개 중에 1개 정도 맞추는 수준이고 쉽거나 중간 난이도 코테는 C++과 파이썬 합쳐서 그럭저럭 잘 통과하는 편이고 카카오 등 난이도 높다고 여겨지는 코테는 떨어지곤 함. 그간 C++은 채용 과정에서 크게 써먹을 수 있는 데가 없어서 코테 등 공부하면서 다른 언어도 같이해야 하나 하는 애매함과 고민이 있었는데 이제 백엔드 인턴으로 들어가면서 Java와 Spring Boot공부에만 집중하면 되기에 마음이 조금은 편해짐.

이제 Java 기초부터 문제풀이, Spring Boot공부까지 할 예정이고 그 과정에서 중요한 개념인 것 같거나, 내가 잊어버릴 것 같거나, 기록해 두고 싶은 것들을 기록할 예정임.
우선 가볍게 개념 훑을 수 있는 wikidocs 웹북으로 "점프 투 자바" 선택. "자바의 정석" 요약본도 참고하고 실물 책도 뭘 살까 고민 중임.

https://wikidocs.net/book/31 (점프 투 자바)을 보고 기억하고 싶은, 내가 모르거나 중요하게 여겨지는 개념을 적어 보기로 함.

개인 공부용 및 기록용이기 때문에 보편적으로 중요하고 핵심적인 내용이라도 필자가 알고 있거나 잊어버릴 것 같지 않으면 안 적을 수도 있고 기분에 따라 알아도 적을 수도 있기 때문에 타인이 글을 보면서 공부하는 것은 개인적으로 추천드리지 않습니다ㅎㅎ :)

01-01 안녕, 세상 ! https://wikidocs.net/887

  • 자바 역사, 실행 과정

    • 자바는 원래 썬 마이크로시스템즈에서 만들고 배포했지만 오라클이 썬을 인수

    • JDK는 Java Development Kit

    • jdk가 설치된 디렉토리1의 bin이라는 하위 디렉토리에 javac.exe와 java.exe 파일

    • javac는 java compiler : 자바파일을 컴파일할 때 사용하는 것이 바로 javac.exe 파일

    • jre는 jdk보다는 작은 개념으로 java runtime environment의 약자이다. 자바가 실행될 수 있는 최소한의 파일들이 설치되어있는 환경이라고 생각하면 된다. jre에는 보통 javac는 설치되지 않는다.

    • 컴파일이란 프로그래머가 작성한 소스코드를 컴퓨터가 이해할 수 있는 말(기계어)로 바꾸는 행위

    • 자바파일 실행 위한 두 단계

      • .java 파일을 .class 파일로 바꾸어 주는 컴파일 단계(by Compiler)
      • .class 파일을 실행시키는 실행단계(by JVM)
    • java도 컴파일해서 class파일 대신 jvm이 exe에 포함되는 형식으로 exe파일로 만드는 게 가능하지만 너무 커짐

    • c, c++과 같은 언어는 컴파일 된 실행 파일을 모든 운영체제에서 동일하게 사용하는것이 불가능, but JVM같은 중간단계를 거치지 않기 때문에 빠른 속도로 수행, but 운영체제마다 별도의 실행파일을 작성

    • 자바는 JVM이라는 중간단계가 있으므로 C등의 언어보다 속도가 느리다. 하지만 한번 작성한 파일은 어떤 OS에서라도 사용할 수 있다.

    • 한번 작성한 것을 널리 재활용하는 것이 자바의 가장 큰 특징이자 가장 큰 장점이라고 할 수 있겠다. 자바 또한 발전에 발전(JIT의 도입등)을 거듭하여 실행 속도도 하드웨어를 직접 제어하는 케이스만 아니라면 c/c++ 등에 거의 근접하게 따라잡았다. -> JIT?

      JIT 컴파일 : JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법

  • Java 파일 작성 방법

    • 파일명과 클래스명이 동일한 경우 클래스명 앞에 public 키워드를 붙여주어야 한다.
    • 클래스 내의 함수는 보통 함수라고 말하지 않고 메소드라고 한다. 자바는 모든것이 클래스기반이므로 자바에서 사용되는 함수는 모두 메소드
      package jump2java;
      public class HelloWorld {
        public static void main(String args[]) {
            System.out.println("Hello World");
        }
      }
  • main 메소드는 반드시 필요하며 꼭 위와 같은 형태의 main 메소드만 가능
  • static : 메소드에 static 이 지정되어 있는 경우 이 메소드는 인스턴스 생성없이 실행 할 수 있음을 의미

0개의 댓글