메모리에서 지역성이란 ? 메모리에 어떤 곳에 프로그램의 일부를 둘 것인지도 관건이다. CPU는 메모리의 어떤 위치에서 값들을 가져오는데 그 해당하는 내용이 메모리에 없다면 다시 하드디스크로부터 해당하는 파일의 일부를 메모리로 불러 들여야 한다. 그래서 Hit율이라는 말이 있다고 하였는데, Hit가 잘되어야 성능이 좋을텐데, 그렇다면 어떤 값들이 더 사용되어질 것인가에 대한 예측이 필요하다. 이것이 최근에 사용했던 메모리를 그리고 해당 메모리 인근을 접근할 가능성이 높다는 의미에서 지역성이라고 표현을 한다

 

 

참조의 지역성과 Quicksort vs Mergesort

참조의 지역성과 메모리의 특성에 대해서 이해한다.

velog.io

 

'OS' 카테고리의 다른 글

[OS]Kernel - Monolithic kernel, Microkernel  (0) 2020.06.21
[OS]퀴즈  (0) 2020.06.20
[OS] 가상 메모리(Virtual Memory)  (0) 2020.06.13
[OS] 디바이스 드라이버란  (0) 2020.06.13
[OS] 메모리 관리(Memory Management)  (0) 2020.06.10

가상메모리 <-> 물리적메모리(메인메모리)

 

 

운영체제 - 가상 메모리 개념

프로세스와 메모리   모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레��

velog.io

 

'OS' 카테고리의 다른 글

[OS]퀴즈  (0) 2020.06.20
[OS] 지역성의 원리(Locality)  (0) 2020.06.13
[OS] 디바이스 드라이버란  (0) 2020.06.13
[OS] 메모리 관리(Memory Management)  (0) 2020.06.10
[OS] CPU 스케줄링(CPU Scheduling)  (0) 2020.06.07

 

 

리눅스 커널 (2.4) 모듈 프로그래밍

#include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("yundream@joinc.co.kr"); static short int myshort = 1; static int myint = 420; static long int mylong = 9999; static char *mystring = "blah"; MODULE_PARM (myshort, "h"); MODULE_PARM (myint, "i

www.joinc.co.kr

 

 

다형성(Polymorphism) :  같은 자료형에 여러 가지 객체를 대입하여 다양한 결과를 얻어내는 성질을 의미한다. 

 

즉 한타입의 참조변수로 여러타입의 객체를 참조할 수 있도록 한다.

 

 

 

부모클래스로 자식클래스 참조 가능

자식클래스로 부모클래스 참조 불가능

 

 

 

 

참조변수는 참조할뿐 실체 객체는 Dog 이다.

하지만 참조변수가 Animal을 가리키기때문에 Animal의 메소드만 사용가능하다.

 

 

 

아니면 위와같이 클래스형변환(다운캐스팅) 해서 Dog의 메소드를 사용가능하다.

반대로 Animal의 참조변수로 Dog객체를 가리키는것은 업캐스팅 이라고하는데, 아래는  다형성의 사용예시이다.

 

 

 

 

Object 클래스는 모든 클래스들의 조상이다. 따라서 Object 를 통해 하위클래스들의 메서드를 사용할수있는 것을 보여준다. 

 

 

 

 

 

 

 

부모 클래스
자식 클래스

 

 

 

자식클래스는 부모클래스를 상속받았지만, 

부모클래스의 print를 '재정의'해서 사용하고있다.

 

조건: 부모클래스의 메서도와 이름 및 매개변수, 반환타입은 같아야한다. + 접근제어자는 부모클래스보다 좁은범위로 하지못한다 + 부모클래스의 메서드보다 많은수의 예외를 선언할 수 없다.

 

 

 

 

 

 

  오버로딩 vs 오버라이딩   

 

오버로딩 : 기존에 없는 새로운 메서드를 정의, but 매개변수가 다르면 다른메서드 === > "중복정의"

오버라이딩 : 상속받은 메서드의 내용을 변경 ===> "재정의"

 

 

 

 

 

 

 

'Java' 카테고리의 다른 글

자바 String 클래스  (0) 2020.06.12
자바 표준입출력(I/O)  (0) 2020.06.06

여느 언어가 그렇듯, 문자열 처리가 가장 어렵다.

자바에서는 어떤식으로 문자열처리를 할까.

 

자바는 char형, 즉 문자형이 없다.

String클래스 하나를 이용해 모두 처리한다. 여기서 알아야할것은 String은 결국 주소를 참조하기 마련이다.

단, c는 포인터가있는데 자바는 없다. 게다가 자바는 근데 char배열도 없다. 

한마디로 String배열을 선언시 내용을 변경할 수 없다. (추후 StringBuffer 클래스는 가능하다.)

 

그렇다면 String클래스로 생성된 문자열은 어떻게 수정되고, 뒤에 덧붙여질까.

그냥 새로운 문자열을 만들고 이전 문자열을 버려버린다.

 

변경불가한 string 클래스

 

 

 

또한 String클래스로 빈 공백문자열로 초기화도 가능하다.

String str = "";  --> 가능

 

 

 

<<알아두면 좋을 String 클래스의 메소드>>

 

 

이외에도

 

boolean contains(String str)string이 str을 포함하는지

String replace(char old, char new)String의 특정 문자 바꾸기

String split(String str)지정된 분리자로 나누기

String toString()인스턴스의 문자열을 반환

 

 

'Java' 카테고리의 다른 글

오버라이딩(Overriding)  (0) 2020.06.13
자바 표준입출력(I/O)  (0) 2020.06.06