전체 글 (70) 썸네일형 리스트형 객프 10주차 객체의 생성과 소멸 다른 프로그래밍 언어 : 객체를 제거하지 않으면 메모리 공간 부족 -> 소멸하는 과정 필요 자바 : 가상머신기계에서 자동으로 객체를 제거해주기 때문에 별도의 소멸 과정 필요X *자바 가비지 컬렉터 : 사용하지 않는 객체를 자동으로 모으는 공간 => 지워달라는 명령어를 사용할 수 있으나, 실행하진 않음. => JVM이 알아서 작동 1. 코드 2. 사용하지 않는 객체 선택 3. 삭제 4. 압축 인수전달방법 1. Call-by-value : 인수값 전달 => return이 필요함. 지역변수이기 때문에 클래스를 벗어나면 값 전달X 2. Call-by-reference : 주소값 전달 => return 필요하지 않음. 클래스를 벗어나도 값 전달O 정적멤버(static) VS 인스턴스 멤버 정적.. 컴프 9주차 요약 Call-by-value (인수의 값을 매개변수로 전달) #include void f1(int x){ x = x + 10; } int main(void){ int a = 5; f1(a); //인수의 값을 전달 printf("%d\n", a); } Call-by-reference (인수의 주소값을 매개변수로 전달) #include void f1(int *p){ *p = *p + 10; } int main(void){ int a = 5; f1(&a); //인수의 주소값을 전달 printf("%d\n", a); } 예1) void swap(int *x, int *y) { int tmp; tmp = *x; *x = *y; *y = tmp; } int main(void) { int a = 100, b = 200;.. 컴프 10주차 *표준 입력 장치 : 키보드 *표준 출력 장치 : 모니터 *표준 입출력 함수 : stdio.h *버퍼 : 키보드로부터 입력되는 데이터들을 모아서 한 번에 CPU로 전달을 해주는 임시 저장소 *에코 : 입력한 내용을 화면에 보여주는 것 ● 문자 단위 처리 3~4는 #include scanf("%c", &ch); printf("%c", ch); 하나의 문자를 읽고 저장. 버퍼O, 에코O, 공백을 기준으로 (문자) ch = getchar(); putchar(ch); 하나의 문자를 읽고 반환. 버퍼O, 에코O, 엔터를 기준으로 (줄) ch = _getch(); _putchar(ch); 하나의 문자를 읽고 반환. 버퍼X, 에코X, 공백을 기준으로 (문자) ch = fgetc(stdin); fputc(ch, std.. Power JAVA 개정3판 CHAPTER01 답 1번 : 2 2번 : 객체 지향적 3번 : 바이트코드가 생성되어 자바가상기계로 운영되기 때문에 4번 : 다른 컴퓨터에서 컴파일을 하지 않아도 실행가능하지만 네이티브 코드의 속도보단 느리다. 5번 : 실행 가능하다 6번 : .exe 7번 : SE는 임베디드 등 EE는 기업용 애플리케이션 등 8번 : JDK는 개발하기 위해 JRE는 실행하기 위해 9번 : 4번 10번 : 파일 이름 - Test / This is a Test 11번 : Welcome! 컴파일 오류는 발생하지 않는다. 1번 : int, float 등등 2번 : ? 3번 : 객체 생성? 4번 : 3 5번 : 5 6번 : (a) long int size; (b) var height = 183.2; (c) char ch = '가'; (d) Strin.. 컴프 7주차 포인터는 c계열에만 있다.자바에는 없음. c언어는 하드웨어용 제어를 할 때 많이 쓴다.(가전제품 등등) 하드웨어를 제어하기 편리함. 반면 하드웨어를 직접 제어하므로 실수하면 문제가 생겨서 자바에서는 사라짐. (11장 교재) 포인터도 변수이다. 배열도 변수이다. 모두 변수이다. 그런데 변수와는 조금 다르다. 지금까지느 ㄴ변수가 값을 갖고 있었는데, 포인터 변수는 값이 아닌 주소를 가진다. 포인터는 메모리 주소를 가지고 있는 변수이다. 다른 변수는 값을 가진다. 메모리를 그리고 변수가 있으면 a는 10 0x16진수로 주소값이 정해짐. 포인터는 P라는 변수명(자주) 0x16진수가 들어가 있다. 주소값을 가졌다는의미. 값이 없고 주소가 있따. 값은 그 주소에 가야 있다. 그래서 주소를 쫓아 가보면 값이 있다. .. 6주차 복습 -배열 선언하기 방법1 : 선언 하기 int[] arr; //배열 이름 선언하기. arr = new int[10]; //배열의 크기 선언하기 int[] arr = new int[10] //선언과 동시에 크기 선언하기 방법2 : 초기화 시키기 int[] arr = { 1, 2, 3, 4, 5 }; //선언하지 않아도 길이가 나오기 때문에 새로 선언하지 않아도 됨. *단 c언어 처럼 이렇게 초기화할 수는 없다. => int[10] arr = { 0 }; +) 배열의 길이 구하는 메서드 : arr.length //값의 개수가 아닌 항상 배열의 전체 길이를 반환한다. - random 함수 선언하기 import java.util.Random int random = new Random(); int x; x = ra.. 컴프 6주차 1차시 교재 12장 문자와 문자열 구분이 확실함. c언어는 문자는 글자 하나. 글자 하나는 ''으로 다룸 문자열은 한글자 이상. 문자열은 ""로 다룸 문자와 문자열은 다르다. 'A'와 "A"는 다르다. 문자는 있는 만큼 메모리를 차지하고 문자열은 메모리상에 \0가 추가로 차지됨. 문자는 char 문자열은 string 문자는 모두 아스키코드 값을 가진다. A는 65 a는 97 숫자 0이 있고 문자 0이 있다. 문자 0의 아스키코드값은 48이다.(0도 외우기) 문자열을 나타내는 데이터타입이 따로 없다. 그래서 char을 이용하여 배열로 선언한다. str이라는 변수는 문자열을 가질 수 있는 것. str[10]은 최대 9개의 문자까지 가진다(\0이 들어가므로) 문자열은 끝에 \0이 있고 문자형 배열은 \0이 없다. 문.. 변수 *변수의 범위 : 지역 변수의 경우 자기가 만들어진 함수에서만 생존 가능 *변수의 생존시간 : 지역변수는 그 지역을 벗어나면 메모리에서 사라짐. 전역변수는 프로그램이 끝날 때까지 생존. -> 단, static 변수는 지역을 벗어나도 프로그램이 끝날 때까지 메모리 값을 가지고 있음. 그러나 범위는 자기가 만들어진 함수에서만 사용이 가능함. (즉, 범위는 지역변수지만 생존시간은 전역변수와 같음) *변수의 연결 : a파일에 있는 변수를 b파일에서 사용하고 싶을 때 extern을 이용하면 가능함. (단, main함수는 단 하나여야 함, 지역변수는 가져올 수 없고 전역 변수와 전역 함수만 가능하다. 또 static가 붙은 함수와 변수는 사용할 수 없다.) *전역 변수 만드는 법 : int main 바깥에 써서 전.. 이전 1 ··· 3 4 5 6 7 8 9 다음