기초가 튼튼하고 러닝커브가 큰 개발자가 되기 위해 공부한 것 기억 및 정확한 개념 정립 목적으로 포스트 작성.
필자는 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파일 대신 jvm이 exe에 포함되는 형식으로 exe파일로 만드는 게 가능하지만 너무 커짐
c, c++과 같은 언어는 컴파일 된 실행 파일을 모든 운영체제에서 동일하게 사용하는것이 불가능, but JVM같은 중간단계를 거치지 않기 때문에 빠른 속도로 수행, but 운영체제마다 별도의 실행파일을 작성
자바는 JVM이라는 중간단계가 있으므로 C등의 언어보다 속도가 느리다. 하지만 한번 작성한 파일은 어떤 OS에서라도 사용할 수 있다.
한번 작성한 것을 널리 재활용하는 것이 자바의 가장 큰 특징이자 가장 큰 장점이라고 할 수 있겠다. 자바 또한 발전에 발전(JIT의 도입등)을 거듭하여 실행 속도도 하드웨어를 직접 제어하는 케이스만 아니라면 c/c++ 등에 거의 근접하게 따라잡았다. -> JIT?
JIT 컴파일 : JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법
Java 파일 작성 방법
package jump2java;
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World");
}
}