[면접예상] 20230622

neul·2023년 6월 22일
0

면접예상

목록 보기
11/36
post-thumbnail

🌵함수오버로딩이란?

  • 함수 오버로딩(overloading)은 같은 이름의 함수를 중복하여 정의하는 것을 의미
  • 메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야 한다.
  • 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없다는 것이다.

🌵static 을 표현하는 용어 4가지는?

: static변수 = class변수 = 공유변수 = 정적변수

🌵인스턴스 라면이 static 냄비에 올수 없는 이유는?

: 메모리 생성 시간차가 나기 때문

🌵static을 쓰는 예는?

  • static은 사실 static안에서만 놀려고 나옴 + 어느정도 용도가 정해짐
  • 단순 기능 제공이 목적인 메소드들, 인스턴스 변수와 관련 지을 이유가 없는 메소드들은 static으로 선언한다.

🌵함수 오버로딩에 대하여 설명하시오.

  • 똑같은 함수 이름을 사용할 수 있는 것
    (파라미터 데이터 타입 또는 갯수를 달리해서 쓸 수 있다.)
    1. 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다.
    2. 메소드의 이름을 절약할 수 있다.

🌵함수 오버로딩의 대표적인 함수는?

println

🌵지역변수, static 변수 , 인스턴스 변수의 차이는?

클래스(Static)변수
1. 같은 클래스들의 모든 인스턴스들이 공유하는 변수
2. 인스턴스 생성없이 클래스 이름.static변수명으로 접근 가능
3. 클래스가 로딩될 때 제일먼저 생성되며, 프로그램이 종료될 때 소멸

인스턴스(instance)변수
1. 각 인스턴스의 개별적인 저장공간
2. 인스턴스마다 다른 값으로 저장 가능
3. 인스턴스를 생성 후 참조변수.인스턴스 변수명으로 접근이 가능
4. 인스턴스를 생성할 때 생성되고 참조변수가 없을 때 가비지 컬렉터에 의해 자동 제거

지역(local)변수
1. 메소드 내 선언되며, 종료와 함께 소멸
2. 조건문과 반복문의 블럭{} 내에서 선언된 지역변수는 블럭을 벗어나면 소멸

🌵static 변수의 접근 방법 2가지는?

  • 값의 참조가 목적인 변수
  • 값의 공유가 목적인 변수

🌵아래의 Accumulator를 완성하시오.

for (int i = 0; i <= 10; i++)
		Accumulator.add(i); // 전달되는 값을 모두 누적

	Accumulator.showResult(); // 최종 누적 결과를 출력 sum = 55
class Accumulator {
	private static int sum =0;
	
	public static void add(int i) {
		sum = sum + i;
	}
	public static void showResult() {
		System.out.println("sum = " + sum);
			
	}

}
	public static void main(String[] args) {
    	Accumulator acc = new Accumulator();
		
		for(int i= 0; i<= 10; i++) {
			acc.add(i);
		}
	     acc.showResult();
		
	}

🌵아래의 결과를 예측하고, 이유를 설명하시오.

        String str1 = "Simple String";
        String str2 = "Simple String";
        
        String str3 = new String("Simple String");
        String str4 = new String("Simple String");
        
        if(str1 == str2)
            System.out.println("str1과 str2는 동일 인스턴스 참조");
        else
            System.out.println("str1과 str2는 다른 인스턴스 참조");

        if(str3 == str4)
            System.out.println("str3과 str4는 동일 인스턴스 참조");
        else
            System.out.println("str3과 str4는 다른 인스턴스 참조");

str1과 str2는 동일 인스턴스 참조
str3과 str4는 다른 인스턴스 참조

  • 문자열 리터럴을 사용하여 String 인스턴스를 생성하면, 동일한 값을 가진 문자열을 참조하는 경우 동일한 인스턴스를 재사용한다.

  • srt1과 str2는 Immutable한 문자열을 참조하는 것이기 때문에, 내부 상태 변경이 불가능하며 변경시에는 새로운 인스턴스를 생성한다.

  • new String()을 사용하여 명시적으로 String인스턴스를 생성하는 경우에는 새로운 인스턴스가 생성되므로 str3과 str4는 다른 인스턴스를 가리킨다.

profile
🍙

0개의 댓글

관련 채용 정보