끝을 보는 용기

Spring 사전캠프 Day 016 - 자바(Java) 공부: 변수 (3/6)

writingforever162 2024. 10. 22. 18:34

어제저녁 아래의 문자를 받았다.

사실 강의 보는 데 큰 지장은 없어서 그냥 넘어갈까 고민했고 오류로 제보할 땐 반신반의했다. 정말 고쳐줄까, 하는 이런 의구심이 강했다. 시간이 며칠 걸렸을지언정 한 수강생의 제보를 그냥 넘기지 않아 놀랐고, 진행 상황을 공유해주어 감사했다. 이 문자를 읽으며 나 또한 프로젝트에 참여하는 동안 진행 상황을 적극 공유해야겠다고 다짐했다.

 

[습관 관련]

오늘도 어김없이 아침 일찍 일어나는 데에는 성공했으나, 어제보다 더 늦게 잠든 탓인지 집중력이 어제보다 절반 가량 떨어졌다. 오후 2시에 출석하고 나서야 졸음을 이겨내고 집중력을 발휘했기 때문이다. 문제를 읽으면 여태 배운 내용에 뿌옇게 안개 끼는 마법을 겪겠지만, 그래도 문제를 직접 풀어보고 싶다. 내일부터는 월요일같이 새로운 조에 적응하느라 시간이 걸렸다는 변명이 통하지 않는다. 어제는 자바(Java) 학습 속도가 느린 듯해서 밤 늦게까지 TIL 읽고 기웃대느라 바빴는데, 오늘부터 다시 시간에 스위치를 달아야겠다.

 

공부며 독서에 운동과 글쓰기까지.

 

하고 싶은 일만 벌써 네 가지니까.


지금이야말로 균형을 찾을 때이다.

 

[인용 및 참고 출처]

1. 강의: 클래스101 온라인클래스, "[100제 풀이] 예제로 마스터하는 Java(자바) 종합 클래스", 강의 소개, (2024.10.22)

2. 구글 검색: TechTarget, "instance object in java", What is an instance?, (2024.10.22)

3. 구글 검색: Geekster, "the static keyword in java", Static Keyword in Java, (2024.10.22)

4. 구글 검색: Simplilearn, "why we use static keyword in java", Static in Java, (2024.10.22)

5. 사전: "static", "primitive", 네이버 영어사전, 네이버 영어사전, (2024.10.22)

 

[학습 관련]

1. 자바의 일반적인 흐름

클래스(Class)는 로봇 공장. 객체(Object)는 로봇. 메서드(Method), 일명 함수는 기계

② 클래스로 재활 로봇이나 로봇 청소기처럼 다양한 객체를 만들 수 있으며, 공장에 여러 기계가 구비되었듯 클래스 안에는 여러 메서드 존재

③ 우리는 요리 전문 또는 심리 치유 목적이라고 주문서에 요청 사항을 작성하듯, 여러 값이 들어간 주문서를 클래스에 넣음

④ 이때 나오는 로봇이 객체이며 인스턴스(instance)라고도 함 ▶ '클래스의 인스턴스를 생성했다.' ▶ An instance of a class is an object.

⑤ ④의 로봇은 클래스에 있는 여러 메서드 중 아무거나 호출해서 사용 가능 ▶ 뛸 수 있다든지 청소를 잘한다든지 등등 

 

※ 문제: 메인 메서드(main method)는 프로그램의 시작점인데, 주문서 넣고 객체 생성해서 호출을 어떻게 하지?

 

'위의 절차를 거치면 메인 메서드가 시작점 구실을 못 하지 않나?'

 

'프로그램 구동과 동시에 메인 메서드를 호출해서 쓸 순 없을까?'

 

"static이 붙으면 객체를 생성하지 않고도 해당 메서드를 호출해서 사용할 수 있다!"

 

2. static

1) static이 없으면 반드시 객체를 만들어서 메서드를 호출해야 함

2) 영문 설명: [24.10.27 추가] 자바에서 static 키워드는 주로 메모리 관리에 사용된다. static 키워드가 자바에서 많이 사용되는 가장 중요한 이유는 메모리를 효율적으로 관리할 수 있기 때문이다.

▶ The static keyword in Java is mainly used for memory management. The most important reason why it is heavily used in Java is to efficiently manage memory. ▶ 사전 속 static 의미: 고정된, 정적인

3) 핵심

① 자바를 실행하면, static으로 지정된 메서드를 찾아서 먼저 메모리에 할당시킴 ▶ '지정된'과 '선언된'은 같은 표현

② static으로 지정된 메서드가 여러 개라면, 객체 생성과 상관없이 모두 메모리에 할당시킴

③ 그런 후, main으로 이름이 지어진 메서드가 있는지 찾아서 그 메서드를 가장 먼저 시작점의 메서드로써 호출함 ▶ 메인 메서드 이름을 main으로만 지어야 하는 이유

 

3. 자바의 자료형 (Data Type): 크게 두 가지로 구분

ⓐ 기본형 타입(Primitive Data Type)

ⓑ 참조형 타입(Reference Data type)

ⓒ 참고: 사전 속 primitive 의미는 '초기의, 원시적인 단계의'

 

4. 기본형 타입: 총 8개 
1) 정수형

ⓐ byte < short < int < long ▶ 총 4개

ⓑ 크기: byte는 1byte < short는 2byte < int는 4byte < long은 8byte
주로 int 사용

2) 실수형

float < double ▶ 총 2개

ⓑ 크기: float는 4byte, double은 8byte

ⓒ 주로 double 사용 

3) 문자형

char  총 1개

크기: 2byte

문자를 뜻하는 character의 약자로 문자 한 개를 의미 ▶ 참고: 문자가 여러 개 모인 걸 문자열이라고 하며, 문자열은 참조형 타입에 있음
4) 논리형

boolean ▶ 총 1개

크기: 1byte

ⓒ 참을 의미하는 true와 거짓을 뜻하는 false 값 중 하나를 저장 

 

5. 참조형 타입

1) 기본형 타입에 속하지 않는 자료형

2) 대표 예시: 클래스(class), 배열(array), 인터페이스(interface), 문자열(string) 등등 
3) 특징: 값을 직접 저장하지 않음. 대신 그 값이 저장된 메모리 주소의 값을 저장 ▶ 비유: 바다에서 보물 상자를 발견했는데 가방이나 주머니에 넣을 수 없을 만큼 크다면, 상자의 위치만 핸드폰에 적어두고 나중에 필요할 때마다 핸드폰을 보고 상자 있는 곳으로 갈 수 있음 ▶ 여기서 보물 상자가 값이며 핸드폰이 참조형 변수에 해당함

 

[기타 사항]

집중력이 월요일엔 70%, 오늘은 50% 나왔다. 내일 목표는 집중력 100% 발휘하기이다. 평소보다 한 시간 일찍 자자.