카테고리 없음

자바의 정석 (chapter 01, 02)

DinggoP 2022. 4. 2. 23:16

(2022.03.27 ~ 2022.04.02)

Chapter 01.

자바의 장점

  • 라이브러리가 많다.
  • OS에 독립적이다. 즉, 리눅스 윈도우 맥OS에서 다 쓸 수 있다.(근데 C#하고 파이썬도 그렇다.)
  • 모바일이나 대규모 기업환경에 적합하다.(어플리케이션 부터 시스템까지 개발 가능하다.)
  • XML, JSON도 지원한다.
  • 객체 지향 언어이다.
  • 자동 메모리 관리(GC)가 된다.
  • 네트워크와 분산처리(쓰레딩, 멀티코어 프로세스)를 지원 가비지 컬렉터
  • public void Function(){ int i = 0; }

자바의 단점

  • JVM 위에서 돌아가기 때문에 한번 해석을 거쳐야 되서 느림

chapter 02.

변수(variable)

  • 변수란 단 하나의 값을 저장할 수 있는 메모리 공간
  • 변수타입에 알맞는 크기의 저장공간이 확보됨. (여기서 String은 가변임을 설명해야함.)
  • 변수 초기화 : 변수를 사용하기 전에 처음으로 값을 저장하는 것. (like. int i = 0;)
  • 기본형 : 실제 값을 저장
  • boolean, char, byte (메모리를 가장 덜씀), short (메모리를 덜씀), int(cpu가 가장 효율적으로 처리), long, float, double(float과 double은 값이 튈 수 있음. 저장공간 한계 오차)
  • 참조형 : 값이 저장된 주소 (초기화는 new를 쓰며 이걸 인스턴스화라고 부르고 이때 힙메모리에 저장된다.)
  • string, class
  • string은 참조형으로써 사용되며 java에서 기본형과 유사하게 사용되는 유일한 참조형.

<스터디장님 코드 참고>


import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/*중요함
 - 기본형 (primitive type)
   =>stack에 쌓임
 - 참조형 (Reference type)
   =>heap memory에 쌓임 (주소 참조)*/

public class Main {
    public void SettingMenuList(){
        String message = "안녕";
        String message2 = "안녕"; //위와 같은 것으로 인식

        StringBuilder builder = new StringBuilder("안녕");//예전에는 많이 사용 했지만 거의 사용하지 않음
        StringBuilder builder2 = new StringBuilder("안녕");

        //0x001
        Student john1 = new Student();
        john1.name = "john";
        john1.age = 13;
        john1.gender = true;

        builder.delete(0, builder.length() - 1);
        builder.append("굿바이");
        message = "굿바이";
        //0x002
        Student john2 = new Student();
        john2.name = "john";
        john2.age = 13;
        john2.gender = true;

        //0x001
        Student john3 = john1;

        int a = 3;
        int b = 4;

        boolean b1 = true;
        boolean b2 = false;

        if(message.equals(message2)){
            //a와 b가 같으면 여기로 들어옴.
        }else{
            //a와 b가 같지 않으면 여기로 들어옴.
        }

        //0x001
        // new를 인스턴스화 했다고 함.
        // 인스턴스화하면 새로운 객체가 만들어 진 것이고, 힙 메모리에 저장됨.

        //0x001 메모리에 저장되어있는 정보에서 name을 가져와라
        String studentName = student.name;

        //0x001 메모리에 저장되어있는 정보에서 age를 가져와라
        int studentAge = student.age;

        //0x001 메모리에 저장되어있는 정보에서 성별을 가져와라
        boolean studentGender = student.gender;

    }
}

chapter01,02 공부내용 설명하고 이해가 안된 부분 설명하고 코드로 학습함.
다음 주는 chapter03 연산자(operator), 04 조건문과 반복문(if,switch,for,while statement) 학습 예정.

내가 학습한 방법

  • chapter01,02 Java의 정석 1회독, 유튜브 강의 3번 시청