TIL)프로그래밍 기초_23.05.22

주민·2023년 5월 22일
0

TIL

목록 보기
3/84

오늘은 본캠 java 공부 첫날이다.
일단 3주간 진행 할 OT를 진행하고 노션 내용을 확인했다, 관련 자료를 여러가지 주셨는데 우선은 강의부터 듣고 정리하려 한다.

자바를 공부하면서 컴파일러나 기본 main 코드에 대한 내용이 이해가 잘 안갔었는데 오늘 강의를 들으면서 이해가 됐다.

사람이 작성한 코드 --(컴파일러)--> 바이트 코드--(인터프리터)--> 기계어

좋은 개발자가 되는 법!

  1. 오류 메세지 읽고 고민해보기, 고민의 흔적을 남겨보기
  2. TIL, WIL > 일기장처럼 쓰지 말고 문제 > 고민 > 해결을 쓰면 좋음(타임라인 순으로)
    상단에 오늘의 목표와 달성률 > 좋음
  3. 공유잘되는 문화권 글 많이 읽기 -> 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; -> 값 변경
  • 변수 종류

    • 기본형 : 논리형, 문자형, 정수형, 실수형
    • 참조형 :

0개의 댓글

관련 채용 정보