728x90

Study 202

Override재정의, Upcasting, 동적바인딩

클래스의 행위(동적) 정보에 맞춰 클래스를 설계 (상속) 하는 방법에 대해 알아보자 수평적 구조는 중복 발생, 유지보수의 여러움, 확장성 떨어짐 과 같은 많은 문제가 있다. ->그래서 수직적 구조를 쓴다. 부모가 중복 부분을 만들고, 자식들은 상속 받으면 된다. 부모와 자식을 연결해 부모를 이용, 자식을 동작시킬 수 있는 원리로 클래스를 설계 해야한다. 자식 클래스를 숨기고 바깥쪽에 있는 부모로 자식을 동작 시킬 수 있는 방법 -> 상속 상속 구조를 왜 쓸까? - 코드 중복 최소화, 메서드 재활용 부모 클래스를 통제하면 자식들도 통제된다. 부모에 의해 자식들의 동작 방법이 달라진다. Dog 클래스 사용 시 만든 사람은 동작구조를 알지만 사용하는 사람은 모른다. 왜? 소스코드를 노출시키지 않기 때문 - 다..

부모, 자식, 상속, protected, extends

부모: 상위 클래스, 슈퍼클래스, 자식 : 서브클래스, 파생클래스 부모가 자식에게 상속을 해줬다 -> 언제든 쓸 수 있다. 하지만 부모 소유이다. 상속? 클래스를 계층화 하는 것을 상속이라고 한다. 상속하는 이유? - 객체를 설계하다 보면 비슷한 클래스들끼리 중복요소가 생긴다. ex)책이라는 클래스에 꼭 들어가야 하는 것(저자, 제목, 출판사, 페이지 )을 가진 부모 클래스가 이것을 자식에게 상속해주면 자식은 자유롭게 쓸 수 있다. 상속시 자식은 extends 라는 키워를 사용한다. 자바는 단일상속만을 지원한다. 부모를 한 명으로 두고 사용하는 것을 단일상속이라고 한다. 상속에서 private를 사용하면 상속의 의미가 퇴색된다. private인데 상속을 어떻게 해 부모의 기억공간을 자식에게 상속하고 싶다..

class, object, instance

클래스, 오브젝트, 인스턴스는 서로 비슷한 개념이다. 모두 객체를 나타낸다. 명확히 구분하기는 어렵다 class: 객체를 모델링, 설계하는 도구, 새로운 자료형을 만드는 도구 student = std 를 모델링 하는 도구 설계가 끝나면 오브젝트를 만든다. Object: 클래스를 통해 선언되는 변수 st를 오브젝트라고 부른다. 객체변수 라고 부르기도 한다 int a = 변수 , student st = 는 객체변수 instance: 객체의 구체적인 모습, 실체. st = new Student(); 메모리에 만들어진 것을 instance라고 한다. 구체적인 실체를 지목. 다른 객체들과 구분이 되는 시점. 객체가 구체적인 상태를 가리키는 상태 ClassObjectInstance 클래스 생성 Student st1..

JVM의 메모리영역, 객체 생성과 static

JVM의 메모리 영역은 네개로 나뉜다. 메서드: static zone, none static zone 으로 나뉜다. 프로그램 종료 시 자동 소멸된다 Heap: 객체가 생성된다. ex) array, class.. 사용이 끝나면 소멸 되어야 함. garbage collector가 주기적으로 해줌. 포인터가 없어지면 쓰레기값이 된다. 포인터는 스택에 있고 스택은 프로그램 종료 시 소멸된다. genetration 카운트가 높은 것부터 없앤다. 높은게 gc가 수집활 확률이 높다. -왜? 숫자가 낮은 것은 방법 사용됐다는 것. 오래 사용하지 않은 것부터 없앤다. Stack: 프로그램 종료 시 소멸된다. 메소드가 호출되면 스택에 들어간다. thread가 만들어져 동작시킨다. Literal: 문자열, 상수가 저장되는 ..

Static, None Static, JVM, Stack Area

Static과 메모리의 관계? Q. 메인 클래스는 왜 객체 생성(new) 없이 실행될까 public class StaticTest { public static void main(String[] args) { main 이 있어야 시작 클래스이다. 클래스를 시작해주려면 객체 생성을 new를 해줘야하는데.. 메인은 왜 new 없이 실행이 가능할까? ->Static JVM은 실행할 파일을 찾는다 (실행하려면 메모리 위에 올라와있어야 한다.) Staitc이 붙은 멤버들은 정해진 static zone 위치에 한 번 자동으로 로딩된다. 스테틱은 프로그램 실행 시 메모리에 자동으로 할당/ 로딩돼 객체 생성 new없이 실행 가능 한 것이다. static 키워드가 붙었다면 Method zone 중 static zone으로..

배열, 클래스, 기본배열, 객체배열

배열과 클래스 : 둘 다 데이터를 담는 역할을 하지만 구조가 다르다. 배열은 동일한 데이터를 담는 동일한 구조이며, 클래스는 다른 데이터를 담는 이질적인 구조이다. 배열의 동일한 데이터? ex) 정수가 들어갈 공간을 연속적으로 만든다. int[] arr = new int[4]; //int만을 넣을 수 있는 공간 4개가 생성된다. 클래스의 이질적인 데이터? int, String, float 등을 혼합해 생성한다. ex) Student st - new Student(); //이런 것은 우리가 class를 사용해 직접 만들어야 한다. 기본배열: 기본 자료형이 들어감 ex) float[] arr = new float[3]; //실수 데이터 여러개 객체배열: 객체가 들어간다. ex) Student[] std = ..

캐시메모리 - L1, L2, L3, 참조 지역

CPU가 메모리에 접근하는 것이 레지스터에 접근하는 것보다 느려 성능상 손해를 본다. 그래서 캐시 메모리 등장 저장장치 계층 구조: 1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다. 2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다 레지스터 VS 메모리 (RAM) VS USB메모리 cpu와 가장 가까운 레지스터는 램보다 용량이 작지만 접근이 세가지 중 가장 빠르고 비싸다 램은 usb보다 cpu와 가깝고 접근 시간이 빠르지만 usb보다비싸다 즉, 낮은 가격대의 대용량 저장 장치는 속도가 느리고, 높은 가격대의 저장 장치는 속도가 빠르고 용량이 작다. (이 모든 것은 상대적 ) 저장 장치들은 CPU에 얼마나 가까운가를 기준으로 계층적 으로 나타낼 수 있다. 캐시메모리?..

CS 2024.02.24

메모리의 주소공간 - 논리주소, 물리주소, 베이스 레지스터, 한계 레지스터

https://www.inflearn.com/course/lecture?courseSlug=%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&unitId=149167 학습 페이지 www.inflearn.com 논리주소와 물리주소로 나눈 이유 논리주소 물리주소 변환 방법 매모리 주소 체계는 논리주소와 물리주소로 나뉜다. 논리주소? CPU가 받아들이고 해석하는 모든 주소. cpu와 실행중인 프로그램 입장에서 바라본 주소. 프로그램을 실행하는 cpu와 프로그램들 각각의 입장에서 바라본 주소이다. 모든 프로그램은 0..

CS 2024.02.24

램의 특징과 종류 - SRAM, DRAM, SDRAM, DDR SDRAM, DDR2, DDR3, DDR4

https://www.inflearn.com/course/lecture?courseSlug=%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&unitId=149166 학습 페이지 www.inflearn.com 메모리 : RAM(ramdom access memory), ROM 두 종류가 있다. 하지만 램을 지칭는 경우가 多 CPU는 램으로부터 명령어와 데이터를 받아 저장한다. 램은 실행할 대상을 저장한다. 하지만 전원이 꺼지면 잃버려 전원이 꺼져도 이를 기억할 보조기억장치라는 대용량 저장장치가 필요하다 램: 휘..

CS 2024.02.24

퀴즈 2회차 오답

Java의 원시타입 (primitive type), 참조타입(reference type )? 원시타입 == 기본자료형 / 참조타입 ==객체자료형 자바는 원시타입(=기본자료형)과 참조타입(=객체자료형)을 제공. 기본자료형, 원시타입은 실제 데이터를 저장. byte, short, int , long, float, double, boolean, char 바에 내장되어있는 기본적인 데이터. 메모리 상에 직접 데이터를 저장, 스택 메모리 영역에 저장 객체자료형, 참조타입은 데이터의 주소값을 저장. class, interfacem Array, Enum, String. 메모리상에 객체의 참조를 저장, 실제 데이터는 힙메모리에저장. String은 자바에서 기본으로 제공해주는 '객체'자료형이다. 내부적으로 byte[]로..

기타 2024.02.23
728x90
반응형