이게 문제로 나왔는데 ㅠㅠ 도저희 잘 모르겠어요 ㅠㅠ
1. Android resource file을 컴파일하고 android package file을 생성하는 도구를 무엇이라 하는가?
2. c언어 소스 파일의 확장자는 .c이고 컴파일하면 .obj 파일이 된다. 자바 소스파일의 확장자와 컴파일 된 파일의 확장자는 무엇인가?
= 소스파일의 확장자 - .java 컴파일된 파일의 확장자 - .class
3. 다음 각 항목이 나타내는 JAVA변수를 완성해 보라.
1) int 형 변수 age
2) 문자‘a'의 유니코드로 초기화된 char형 변수 d
3) 자신의 이름으로 초기화된 문자열 변수 name
4. 원주율 값을 갖는 double형 상수를 선언해 보라.
5. java의 garbage collection이 필요한 시점은 언제인가? 그리고 garbage collection이 필요한 근본 이유는 무엇인가?
음..ㅋㅋ 꼭 시험문제 같네요.ㅋ.ㅋ 맞는지는 모르겠지만, 저도 확실한가 알고 싶어서 한번 달아봅니다.
1. 이거 설마 개발툴인 eclipse를 말하는 건가 싶네요..(이클립스가 자동빌드까지 다 해주거든요~)
3.
(C언어와는 다르게 java는 객체지향 프로그램이기 때문에 객체형태로 사용합니다. 아래 답은 해당 클래스에 대한 객체를 생성하여 만드는 것입니다.)
1) 음.. 객체로 선언하라는 말인가요? Integer age = new Integer();
2)Character d = new Character('a');
3)String name = new String("last9999");
4. public static final double MATH_PI = 3.14 (C에서는 상수선언을 const로 쓰지만 java에서는 final입니다.)
5.
요건 gabage collection에 대한 이해가 필요한 것데요.. 저도 완벽히 알고있지는 않지만..ㅋㅋ
아는 수준에서만 말씀드리겠습니다.
일반적으로 java에서는 메모리를 해제하는(C언어에서 malloc, free)게 없습니다.
new라는 키워드를 이용하여 객체를 생성하게 되는데 이 때 메모리를 할당하게 되겠죠?
나중에 사용자가 이를 다 쓰고 나도 해당 객체로인하여 할당된 메모리를 해제하지는 않습니다.
(강제로 해제하는 법이 있긴 하다고는 들었습니다만... 요건 저도 알아보지 않아서 확실하진 않네요..
머 무튼... 있다고 하더라고 아마 거의 사용하지 않을 겁니다.)
이런 메모리가 쌓이다 보면, 쓸데없이 메모리 공간만 엄청나게 차지하겠죠?(왜냐면.. 메모리는 계속 할당하는데 해제는 되지 않기 때문에)
그래서 gabage collection이라는 것을 이용하여
메모리를 할당하고 있는 넘들 중 사용하지 않는 넘들을 java에서 자동으로 정리해줍니다(해제)
gabage collection은 java 내부적으로 알아서 자동적으로 처리하기 때문에 사용자는 크게 신경쓰지 않아도 됩니다.
하지만 정확히 어느 시점에 이 gabage collection이 동작하는지는 저도 잘 모르겠네요.. random하다는 말이 있긴 하지만.. 그래도 사실상 그런 시스템이 동작하는 시점이 있을텐데요....
이상 초보자 답변입니다.ㅋㅋ
다른 분들께서.. 제가 잘못 이해하고 있는 부분은 좀 수정해주시면 감사드리겠습니다.^^
추가적으로... 글 올리신 분께서는 과제를 하기 위한 것이라면.. 추후 올리시는 글들을 포함하여 답만 옮겨적지 마시고.
왜 그렇게 되는것인지에 대해서 확인하시고 가시면 좋을 듯 싶습니다.
사소한 것이라도 한번이라도 이유를 확인하고 가신다면 추후 도움 정말 많이 될 겁니다.^^
숙제는 스스로.......