목록전체 글 (243)
컴퓨터공학 💻 도서관📚
참조 변수 : studentKim (스택 메모리) 인스턴스 변수 : studentKim.studentId (힙 메모리) 멤버 변수 : studentId (힙 메모리) 인스턴스 : new student(); (힙 메모리)
위에서 선언한 함수 이름은 printHeap 인데 밑에서 함수 호출할 때 printfHeap --> printHeap
int tmp = arr[i];arr[i] = arr[i+1];arr[i+1] = arr[i]; int tmp = arr[i];arr[i] = arr[i+1];arr[i+1] = tmp;
serialization 이란?인스턴스의 상태를 그대로 파일 저장하거나 네트웍으로 전송하고 (serialization) 이를 다시 복원(deserialization) 하는 방식자바에서는 보조 스트림을 활용하여 직렬화를 제공함ObjectInputStream과 ObjectOutputStream(input스트림, output스트림에서 하는 일은 데이터 형에 따른 메서드를 호출해서 저장하고 복원하는 것인데 직렬화에서 하는 일은 object 자체, 인스턴스 자체를 저장하고 그다음에 이를 다시 복원하는 것이다. 이거를 파일에서 쓰거나 네트워크로 전송할 때 많이 한다 객체가 인스턴스화돼서 메모리에 있으면 생성자로 생성한 값이 아니라 그 이후에 메서드들이 호출하면서 계속 값이 변화하는데 어느 순간 그 상태 그대로를 저..
%c 앞의 공백은 scanf에게 앞의 모든 공백 문자(띄어쓰기, 탭, 개행)를 무시하라고 지시합니다. c언어에서 문자 입출력 코드를 작성할 때 정말 편리하게 사용할 수 있다.
int num = 5;int result = num++; 이렇게 하면 result는 5 num 은 6이 출력된다. 그런데 int num = 5;num = num++; 이렇게 하면 어떻게 될까??? num 은 5 가 된다. 왜 그럴까? result = num++ 일때 num++ 의 매커니즘은 먼저 1. temp = num;컴퓨터에서 num 의 값을 임시 변수에 저장한 후 2. num = num + 1;num 값을 중가시킨 후 3. result = temp;result 에 temp 의 값을 대입한다. 그러다 보니 num = num++ 의 값은 최종적으로 5가 되는 것이다.마지막 3번 과정 num = temp; 때문에 말이다.
노드 추가를 할 때 크게 3가지 경우가 있는데 1. 맨 앞에 추가 2. 중간에 추가 3. 맨 뒤에 추가 그런데 헤더, 트레일러 노드가 없으면 1번과 3번은 연결해야 하는 링크가 2개 이고 2번은 4개이다 그래서 if 문으로 나눠서 해야 하는 번거로움과 비효율이 생긴다 그런데 헤더 트레일러 노드가 있으면 1,2,3번 모두 4개로 동일하다
보조 스트림실제 읽고 쓰는 스트림이 아닌 보조 기능을 제공하는 스트림(보조 스트림은 읽고 쓰는 기능은 없고 감싸서 다른 기능을 제공한다보조 스트림은 또 다른 보조 스트림을 계속 감쌀 수 있다.보조스트림은 읽고 쓰는 기능이 없어 혼자 돌아갈 수 없기 때문에 반드시 다른 인풋, 아웃풋 스트림을 생성자의 매개변수로 받는다 (보조 스트림들은 다 매개변수로 스트림을 받는다 , 혼자 못 돌아가기 때문에) 그래서 매개변수로 다른 스트림의 기능을 호출하고 거기에 자기가 플러스 알파를 해준다.부가적인 기능을 제공하는 방법이 클래스로 제공이 된다)FilterInputStream과 FilterOutputStream이 보조 스트림의 상위 클래스들생성자의 매개변수로 또 다른 스트림(기반 스트림이나 다른 보조 스트림)을 가짐..