일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 백준 4358 자바
- 리액트 네이티브
- 지네릭스
- 데이터베이스
- 문자열
- 리액트 네이티브 프로젝트 생성
- 팀플회고
- 모두의네트워크
- 정리
- 백준 4358번
- 스터디
- 모두를위한딥러닝
- 모두를 위한 딥러닝
- 머신러닝
- 리액트 네이티브 시작하기
- React Native
- 백준
- 딥러닝
- 깃 연동
- 데베
- HTTP
- 자바
- 깃허브 토큰 인증
- 깃 터미널 연동
- 네트워크
- 깃허브 로그인
- 모두의 네트워크
- 백준 4949번
- 백준 5525번
- SQL
- Today
- Total
솜이의 데브로그
Chapter 01 ) 자바를 시작하기 전에 본문
참고 책 : Java의 정석
백엔드 개발을 위해 자바를 주 언어로 잡고자 자바의 특징을 더 확실하게 알고 코테 준비 및 인터뷰 준비를 위해 자바를 꼼꼼히 복습 및 공부하기로 했다!
1. 자바란?
Java 란, 대표적인 객체 지향 프로그래밍 언어로, 운영체제에 독립적이라는 것이 큰 특징이다.
자바는 많은 클래스 라이브러리 (Java API)를 통해 프로그래밍에 필요한 요소들을 제공한다.
책에 나와있는 것 중에서도 내가 개인적으로 생각하는 자바의 큰 특징은 다음과 같다.
1. 운영체제에 독립적이다. 자바가 운영체제에 독립적인 이유는, 일종의 에뮬레이터인 자바가상머신(JVM)을 통해 통신하기 때문이다. 자바는 JVM하고만 통신하고, 이 JVM이 운영체제가 이해할 수 있도록 변환하여 전달한다. (os에 독립적인 건 알고 있었지만, JVM을 통하기 때문이란건 몰랐다!)
2. 자동 메모리 관리. (가비지 컬렉터) C에서는 직접 메모리를 할당하고 해제해줬어야하는데, 개인적으로 편하게 생각했던 부분이다.
3. 멀티쓰레드를 지원한다. 또 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당한다.
4. 동적 로딩을 지원한다. 따라서 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있고, 일부 클래스가 변경되었을 때 전체를 다시 컴파일 할 필요가 없다.
예전에 학교 수업에서 배웠을 땐 자바의 가장 큰 특징을 상속, 캡슐화, 다형성 이라고 배웠던 기억도 난다!
2. 자바로 프로그램 작성하기
class Hello{
public static void main(String[] args){
System.out.println("Hello, world.");
}
}
다음과 같은 코드를 실행하는 과정은 다음과 같다.
Hello.java 작성 -> javac.exe 로 컴파일하여 Hello.class 생성 -> java.exe로 실행 -> "Hello, world." 출력
하나의 Java 어플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 한다. main 메서드는 Java 애플리케이션의 시작점이다.
또 하나의 주의해야 할 점은 자바는 대소문자 구분을 철저히 해줘야한다는 것이다. 이것 때문에 자바로 코딩 할 때 대소문자 신경 많이 썼던 기억이 있다.
3. 자바 프로그램의 실행 과정
내부적인 진행 순서는 다음과 같다.
1) 프로그램의 실행에 필요한 클래스를 로드한다.
2) 클래스 파일을 검사한다. (파일 형식, 악성코드 체크)
3) 지정된 클래스에서 main(String[] args)를 호출한다.
'책을 읽자 > Java의 정석' 카테고리의 다른 글
Chapter 06 ) 객체지향프로그래밍(1) (0) | 2021.09.04 |
---|---|
Chapter 05 ) 배열 array (0) | 2021.09.03 |
Chapter 04 ) 조건문과 반복문 (0) | 2021.09.03 |
Chapter 03 ) 연산자 operator (0) | 2021.09.03 |
Chapter 02 ) 변수 (0) | 2021.09.02 |