2023-01-25 수 / JAVA

권혁현·2023년 1월 25일
0

Java

목록 보기
19/44
post-thumbnail

1. static 변수의 다른 용어 3가지를 말해 보시오.

  • class 변수 = 정적 변수 = 공유 변수

2.자바의 메모리 영역을 3가지로 나누고, 해당 영역에 들어가는 정보를 말하여 보시오.

  • Method Area

호출된 클래스(틀)의 메모리 생성, 그 안에 데이터 멤버 중 static 변수, static함수의 정보(값이 들어 있음)

  • Call Stack

메인함수 안에 생성되는 객체(메모리 주소를 가리킴)와 호출되는 함수들

순차적으로 생성 되었다가 사용이 끝나면 사용이 끝나는 순서로(생성된 순서와 반대 순서) 삭제됨

  • Heap

객체의 인스턴스 변수와 메소드 정보, static 변수를 포함하고 있는 클래스의 주소 정보 (동일한 클래스의 객체이고, static 변수가 있다면 static 변수 정보는 공유: 같은 주소 공유)

3.static 변수의 접근 방법은?

  • 클래스 내의 함수를 활용해서 접근.

  • static 변수가 선언된 클래스 내에서는 이름만으로 직접 접근 가능

4.클래스 변수의 활용의 예를 드시오.

class Circle {
   static final double PI = 3.1415; // 
   private double radius;
   
   Circle(double rad) {
      radius = rad;
   }
   void showPerimeter() {
      double peri = (radius * 2) * PI;
      System.out.println("둘레: " + peri);
   }
   void showArea() {
      double area = (radius * radius) * PI;
      System.out.println("넓이: " + area);
   }
}

5.클래스 함수의 활용의 예를 드시오.

class SimpleCalculator {
   static final double PI = 3.1415;
   
   static double add(double n1, double n2) {
      return n1 + n2;
   }
   static double min(double n1, double n2) {
      return n1 - n2;
   }
   static double calCircleArea(double r) {
      return PI * r * r;
   }
   static double calCirclePeri(double r) {
      return PI * (r * 2);
   }
}

6.스태틱 함수에 인스턴스 라면이 올수 없는 이유는?

  • 메모리에 올라가는 순서가 다르기때문에 오류가 난다.

  • 인스턴스 변수 new 객체 생성시 메모리에 올라간다.

  • static 변수를 선언 할때 메모리에 올라간다.

7.인스턴스 함수안에 스태틱 변수와 함수가 올수 있는 이유는?

  • static 변수를 선언 할 때 메모리에 바로 올라가기 때문에, 이미 저장되어 있는 값을 불러오는것 이므로 스태틱 변수와 함수는 인스턴스 함수안에서 호출 할 수 있다.

0개의 댓글