아래 클래스에 대한 설명 중 틀린 것을 모두 고르면? class Cat{ String eyeColor="brown"; int age=3; char gender='여'; } (1) Cat 클래스는 개발자가 만들어낸 자료형이며 이를 사용자 정의 자료형이라 한다. 정답: O (2) 자바언어는 기본자료형 이외에도 객체자료형을 지원하므로, 자바의 자료형은 결국 4가지인셈이다. 정답: O 굉장히 중요 문자 숫자, 논리값, 사용자정의자료형 총4가지 (3)이 클래스를 디자인한 개발자는 “브라운색의 눈을 가진 3살짜리 암컷 고양이”를 표현했다. 정답: O (4)이 클래스를 작성한 개발자는 현재 클래스에서 응용프로그램이 시작될 수 있도록 의도하지 않았다. 정답: O // 자바스탠다드, 메인을 두지 않았다. (5) 고양이가 보유한 3개의 상태값들을 사용하려면 고양이의 탄생 없이도 사용이 가능하다. 즉 고양이를 메모리에 올리지 않고도 eyeColor, age, gender 변수를 사용할 수 있다. 생물학적으로 접근해도 말되 안됨 정답: X / 사용이 불가능 (6)생물학적 판단으로도 고양이가 존재해야 상태도 존재하는 것이므로, 고양이 클래스를 먼저 메모리에 올려야 내부에 존재하는 3개의 상태값들도 사용이 가능할 것이다. 정답: O |
다음 중 틀린 것은? class Member { //A int age=23; public void talk(){ } } public class UseMember{ public static void main(String[] args){ age=7; //B Member m = new Member();//C int x = 3; System.out.println(m.age); //D } } (1) A는 개발자가 현실의 "회원"이라는 개념을 Member라는 클래스로 정의한 것이므로 자료형은 Member형이다. 정답: O (2) 위(1)과 같이 개발자가 정의하는 자료형을 사용자정의 자료형이라고 한다. 정답: O (3) Member 클래스에는 실행부가 없으므로 java.exe로 실행시킬 수 없으며 프로그램의 시작은 다른 클래스가 담당해야 할 것이다. 정답: O / java.exe 실행하면 언제나 자동으로 (4) B에서 Member 클래스의 age 변수가 7로 변경된다. 정답: X // age가 태어나지 않음 int로 넣어주던지,, 멤버변수 (5) C와 같이 객체 자료형을 메모리에 올리는 과정을 인스턴스화라 하고, 이 과정에 의해 메모리에 만들어진 객체1개를 인스턴스라 한다. 정답: O |
다음 중 틀린 것은? public class Book { // 컴파일러는 최소한의 관여 int price; //A O int page=300; boolean onSale; //B false public static void main(String[] args) { price=500; //C 인스턴스 생성없이는 쓸 수 없다~! Book b1 = new Book(); //D Book b2 = new Book(); //E b1.page=200; // System.out.println(b2.page);//F } } (1) 위 Book 클래스는 main 실행부가 있기 때문에 java.exe로 실행할 수 있는 클래스이다. 정답: O (2) A의 price는 개발자가 초기값을 할당하지 않았기 때문에 아무런 값도 들어있지 않다. 정답: X // 0으로 들어있음 (3) B에서 컴파일러에 의해 초기화되는 디폴트값은 true이다. 정답: X // false 기본값 (4) C에 의해 Book 클래스의 price 값은 500으로 변경된다. 정답: X (5) D, E에 의해 메모리에 올라간 인스턴스는 총 2개이다. 정답: O (6) F에서 출력되는 결과는 200이다. 정답: X // 300 |
JVM(자바 가상머신)의 논리적 메모리구조에 대한 설명 중 틀린 것은? (1) .java 파일을 컴파일하는 시점에 .class 파일이 생성되어지면서 메모리에 로드된다. 정답: X /변환만 되므로, ctrl2 로 실행할때 (2) 프로그램 실행시 .class 파일을 해석한 코드가 Method 영역에 올라가게 된다. 정답: O (3) Stack은 FILO로 데이터가 관리되며 자바의 모든 지역변수는 이 Stack에 생성된다. 정답: O // FILO (4) 모든 인스턴스는 Heap에 생성되어지며 , 소멸은 GC(gabage collector)가 담당한다.정답: O |
다음 설명 중 틀린 것은? (1) 클래스로 부터 인스턴스를 생성하려면 new 연산자를 사용해야 한다. O (2) new 연산자는 일반 데이터가 아닌 덩치 큰 객체 데이터를 메모리에 올릴 때 사용하는 연산자이다.O (3) 일반변수는 변수 자체가 데이터를 포함할 수 있지만, 레퍼런스 변수는 객체를 직접 포함하지 않으 며 단지 객체가 메모리상에 위치한 주소 값만을 보유하고 있다. 레퍼런스 변수 O (4) 지역 변수는 힙(heap) 영역에 생성되며, 객체는 stack 영역에 생성된다. X // 지역변수는 stack, 객체는 heap |
다음 중 틀린 것은? public class Tree { int root=1; //A 인스턴스 변수, 멤버변수, 힙 static int height=30; //B 클래스 변수, 멤버변수, 원본 public static void main(String[] args) { Tree.height=56; Tree t1 = new Tree(); //C Tree t2 = new Tree(); //D t1.height=30;//E System.out.println(t2.height); //F System.out.println(Tree.height); //G } } (1) A에서 root는 인스턴스가 생성될 때 해당 인스턴스 내에 포함되므로, 인스턴스 변수라 불린다. O (2) B에서 height를 사용하기 위해서는 Tree 클래스의 인스턴스 생성이 필요하다. X (3) C,D에서 생성된 각각의 인스턴스마다 root와 height 변수가 힙영역에 함께 생성되어 진다 X (4) E에서 height 변수는 클래스 변수이므로 인스턴스명으로 접근할 수 없다. X (5) F의 출력결과는 25가 출력된다. X / 30 (6) G처럼 클래스명으로 변수에 접근하는 것은 불가능하다. X |
다음 설명 중 틀린 것은? (1) static으로 선언한 변수와 메서드는 인스턴스에 소속되지 아니하므로, 클래스를 통해서 접근이 가능하다.따라서 static 으로 선언한 변수를 가리켜 클래스 변수라 한다. O 정적, 클래스 변수 (2) non-static 영역에서는 static 영역에 존재하는 변수 및 메서드를 클래스명만 알면 접근할 수 있지만, static 영역에서는 non-static 영역에 있는 변수 및 메서드 접근시 객체의 레퍼런스가 없다면 접근이 불가능하다 O (3)자바의 모든 코드는 클래스안에 존재해야 하므로, 전역변수의 개념이 존재하지 않는다. 따라서 프로그램이 종료될때까지 heap에 올려진 객체들간 데이터를 공유하려면 모든 객체들이 접근할 수 있는 메모리영역이 필요한데, 이 영역이 바로 static 영역이다. O (4) 특정 클래스를 대상으로 new 연산자를 3번 적용 시켰다 해도, static으로 선언된 변수는 인스턴스에 소속된변수가 아니라 클래스에 소속된 변수이므로, 메모리에 중복해서 올라가는 일은 없다. O |
빈 칸에 알맞은 단어를 채우세요. 가장 중요 (1) 클래스가 디자인 타임의 객체를 설계한 것이라면 ,실행 타임( 런타임 )시 메모리에 올라가는 객체 한 단위를 ( 인스턴스 )라고 한다. // 클래스 -> 디자인 타임의 객체 설계 (2) Car a = new Car() 에서 Car 는 자료형에 해당하고, a는 변수이지만 a와 같이 기본 자료형이 아닌 객체의 주소값을 가지는 변수를 ( 레퍼런스 변수 ) 라고 한다. (3) 객체 생성 후 프로그래머가 따로 메모리 관리를 해주지 않아도 자동으로 사용되지 않는 객체들을 소멸시키는 JVM의 메모리 청소기능을 ( 가비지 컬렉션 ) 이라한다. ----------------------------------------------------------- 여기까지----------------------------------------------------------------- (4) 메인 메서드는 개발자가 직접 호출 할 수 없으며 실행 시 ( 클래스 변수????? ) 에 의해 자동 호출된다. (5) 레퍼런스 변수값을 출력해보면 @ 형태의 데이터가 출력되는데, 이것은 객체 자체의 값이 아니라 그 객체의 ( ) 값이다. (6) 클래스로부터 생성되는 인스턴스가 메모리에 올라갈 때 ,클래스 내부에 정의한 변수, 메서드는 각각의 인스턴스마다 할당되어 지므로, 이 변수와 메서드를 각각 ( ) 변수 , ( ) 메서드라 고 한다. (7) JVM도 프로그램이므로, 메모리를 OS로부터 할당받아 사용한다. 이때 JVM에서 사용되는 메모리 영역은 크게 ( ) , ( ), ( ) 영역으로 나눌 수 있다. (8) 일반 데이터가 아닌 객체의 주소값을 담는 변수를 ( ) 라고 한다. (9) 객체 생성시 프로그래머의 의도와는 상관없이 new 연산자 뒤에서 무조건 호출되는 메서드를 ( ) 라고 하며, 반드시 클래스명과 같아야 한다. (10) 현실의 사물을 객체라고 하며, 이 객체를 자바 언어로 모델링 한 설계도가 ( )이며 이 ( )를 기준으로 메모리에 생성된 객체 한 단위를 ( ) 라고 한다. |
'빅데이터UI전문가 > JAVA' 카테고리의 다른 글
[JAVA] 빅데이터UI전문가 DAY07 - 클래스 패키지와 임포트 문제풀이 (0) | 2021.08.19 |
---|---|
빅데이터UI전문가 DAY07 - 클래스 (0) | 2021.08.19 |
빅데이터UI전문가 DAY05 - 변수선언과 자료형, 연산자, 제어문, 함수, 배열, 객체 등 / 문제풀이, 기초다지기 (0) | 2021.08.17 |
[JAVA] 빅데이터UI전문가 DAY04 - 객체, 클래스, 은닉성, 자바빈즈, 접근한정자, 생성자 (0) | 2021.08.13 |
[JAVA] 빅데이터UI전문가 DAY03 - 메서드, 클래스, 변수, 객체, 배열 (0) | 2021.08.12 |