오늘은 본캠 java 공부 첫날이다.
일단 3주간 진행 할 OT를 진행하고 노션 내용을 확인했다, 관련 자료를 여러가지 주셨는데 우선은 강의부터 듣고 정리하려 한다.
자바를 공부하면서 컴파일러나 기본 main 코드에 대한 내용이 이해가 잘 안갔었는데 오늘 강의를 들으면서 이해가 됐다.
사람이 작성한 코드 --(컴파일러)--> 바이트 코드--(인터프리터)--> 기계어
좋은 개발자가 되는 법!
- 오류 메세지 읽고 고민해보기, 고민의 흔적을 남겨보기
- TIL, WIL > 일기장처럼 쓰지 말고 문제 > 고민 > 해결을 쓰면 좋음(타임라인 순으로)
상단에 오늘의 목표와 달성률 > 좋음
- 공유잘되는 문화권 글 많이 읽기 -> medium
초보자 검색 태그 :#beginner #programmer
문제에 있어 도전하고 끝까지 구현해내며, 소통도 잘하는 사람이 롱런하는 시대
신입에게 있어 소통이 최우선, 소통만 잘해도 실력은 순차적으로 따라오게 되어있다
Java 문법 종합반 1주차
1주차 : JVM, 변수 강의 자료
java의 기초
관련 단어 설명
- system : input과 output이 있는 것(동일한 값 입력시 동일한 값출력)
- 메서드 : 프로그램이 하는 행동을 정의한 것(ex.걷다,뛰다 등)
java
- 객체 지향 언어
- java는 c언어에 많은 특징들을 가져왔다.
- 핵심기능 : C언어 기능 + 공통실행환경(JVM) + 클래스 + 객체
->공통실행환경(JVM) : 어떤 os에서든 실행 가능
-> 앱(운영체제 위에서 실행되는 프로그램) 개발에 적합
- 안정성이 높고 보안상 안전하다.
JVM(java Vritual Machine)
- 자바 가상 머신이라는 뜻
- 자바가 구동될 수 있는 가상의 기기를 만들어 준다.
- JVM만 깔아주면 어디든 자바를 구동할 수 있는 환경이 됨
- 바이트 코드 : 운영체계가 읽을 수 있는 코드
- java compiler : java 파일을 class로 변환
-> java : 사람이 짠 코드
-> class : 운영체계가 읽을 수 있는 코드
- 인터프리터(interpreter) : 해석 + er
-> 바이트 코드를 기계어로 번역
-> JIT 컴파일러 : 인터프리터의 효율을 높여주는 서포터 해석기
** 기계어에 가까워 질 수록 low레벨 언어라고 함
사람이 작성한 코드 --(컴파일러)--> 바이트 코드--(인터프리터)--> 기계어
- 메모리 영역
-> 자바에 데이터를 저장하는 영역
-> JVM 이 돌아가기 위한 영역
- 클래스 로더
-> 바이트 코드를 메모리 영역으로 운반하여 저장함
- 가비지(=쓰레기) 컬렉터
-> 메모리 영역 데이터를 주기적으로 청소
JVM 구성
- JVM을 설치하기 위해서는 JRE를 설치하면 됨
- JRE(Java Runtime Environment)
-> class(바이트 코드)만 실행 가능
- JDK(Java Development Kit)
-> 컴파일러, JRE, 디버깅(ex.Jdb) 기능을 가지고 있음
** 디버깅 : 중단점 일시정지 + 코드 라인단위 수행
- 요약
JVM < JRE < JDK
- JVM : 자바가 구동될 수 있는 가상기기
- JRE : JVM + Java class Libray(class 파일 실행)
- JDK : JRE + Java Development Tolls(컴파일러 등등)
미리 알아둘 것!
- 디버깅 : 버그를 없애는 과정
-> 하는 방법 : 숫자 옆에 빈칸을 누르고(빨간 동그라미) 오른쪽 상단에 디버그(벌레)을 누름
() : 소괄호
{} : 중괄호
[] : 대괄호
java 기본 코드
public class Main {
- class : .java -> .class로 바꿀 때 기준이 되는 영역
- public : (접근)제어자, main이란 class를 어디까지 접근하게 할거냐라는 뜻으로 public은 공공의, 공통의 라는 뜻 이기 때문에 어디서든 해당 claas에 접근 가능하다.
* 메소드(main 메소드 라고 부름)
public static void main(String[] args) {
System.out.println("Our First Project! :)");
}
}
-
메소드 : class의 하위
-
자바 프로젝트는(앱)는, 제일 먼저 클래스의 main 메소드를 실행시킨다.
= JVM의 약속
-
public : 어디서든 접근 가능
-
static : 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현
-
void(output) : 메서드의 출력값의 데이터 타입
-> 뜻 : "아무것도 없다." -> 출력은 없다.
-> 만약 void 대신 String을 입력하는 경우 출력(return)값을 문자로만 줘야 한다.
-
String[] args(input) : 매개변수 자리
-> String 타입 / args > 변수명
-> main이라는 메서드를 호출할 때 input은 어떤것으로 할거냐에 대한 값
-> args : 이름 바꿔도 상관X
-
객체 : 특징(속성, 변수) + 행동(메소드)
-> . 이 나오면 하우요소로 들어가는 것
System.out.println("Our First Project! :)");
class . 객체 . 행동();
input : Our First Project! :)
output : Our First Project! :)
-
상수
- final int number; -> 선언
- number = 10; -> 할당
- int number = 10; -> 선언&할당
- number = 11; -> 불가능
-
변수
- int number; -> 선언
- number = 10; -> 할당
- int number = 10; -> 선언&할당
- number = 11; -> 값 변경
-
변수 종류
- 기본형 : 논리형, 문자형, 정수형, 실수형
- 참조형 :