개발자 기술 면접 준비 69

접근제한자

접근 제한자 - 논리적인 오류가 생기지 않도록 변수에 아무 메소드나 접근할 수 없도록 제한하는 것 public - 다른 클래스, 다른 폴더내의 다른클래스에서 사용가능, 즉 모든 곳에서 사용가능 protected - 동일한 클래스, 같은 폴더 내의 다른 클래스에서 사용가능, 다른 폴더의 경우는 상속관계면 사용가능 default - 동일한 클래스에서나 혹은 같은 폴더 내의 다른 클래스에서 사용가능 - 따로 접근지정자를 명시해주지 않을시 default의 값을 가짐 private - 동일한 클래스 내부에서만 사용 가능 접근지정자 접근범위 동일클래스 동일패키지 다른패키지의 자식클래스 다른패키지 public 접근 제한 없음 O O O O protected 동일 패키지와 상속 받은 클래스 내부 O O O defaul..

오버라이딩 VS 오버로딩

오버라이딩 - 부모Class에서 정의한 메서드를 자식 Class에서 변경하는 것 (메소드 재정의) ex) 상속관계에 있는 부모클래스 A와 자식클래스 B사이에서 부모클래스 A가 C메서드를 가질때 B는 자연스럽게 A클래스의 메서드 C를 상속받게 된다. 하지만 이는 자식클래스 B사이에서 원하는 기능이 아닐 때 오버라이딩을 통해 자식클래스 B에서 한번더 메소드 C를 정의하여 자식클래스 B만에서의 메서드 C를 가지는것 (= 덮어쓰기) 사용 시 조건 - 부모클래스의 메서드랑 메서드이름이 같던가 매개변수, 리턴타입이 같아야 함 - 자식클래스의 접근 지시 제어자는 부모클래스의 것보다 넓거나 같아야함 - 예외는 부모의 클래스의 메소드 보다 많이 선언 불가능 * Static 메서드는 오버라이딩 허용 X -> 클래스에 속하..

인터페이스란?

인터페이스(interface)란? - 모든 메서드가 구현부가 없는 추상메서드와 상수로만 이루어진 클래스 - 모든 멤버 변수는 public static final, 모든 메서드는 public abstract 이어야 하며 이를 생략 가능 (컴파일러에 의해 컴파일 시 자동으로 추가) - 개발시간 단축 - 클래스간 결합도 낮춤 - 다중상속이 가능 - 협업시 객체의 내부 구조를 모르더라도 인터페이스의 메서드명만알면 사용가능하므로 협업에 유리 인터페이스를 자식으로 가질 경우 interface 자식인터페이스 extends 부모인터페이스 {} 클래스를 자식으로 가질경우 class 자식클래스 implements 부모인터페이스 {} https://sungwoon.tistory.com/59

추상클래스란?

추상클래스 (abstract Calss) 란? - 클래스 안에 추상메소드가 하나라도 존재하는 클래스 의미 - 스스로 객체 생성 불가능 - 추상클래스로부터 상속받는 실체클래스가 있어야함 - 실체클래스는 추상메소드를 오버라이딩하여 구현해야한다. - 뼈대가 만들어져있어 그안에 내용만 구현하면 되니 시간절약 많이되고 효율적으로 사용가능 - 주로 팀작업할때 각자 코딩을 좀더 편하게 합치기 위하여 사용 https://ucong-9796.tistory.com/26?category=815682

Call By Value vs Call By Reference

Call By Value - 인자로 받은 값을 복사하여 처리하는 방식 - Call By Value에 의해 넘어온 값을 증가시켜도 원래의 값이 보존 - 값을 복사하여 넘기기 때문에 메모리 사용량 늘어남 Call By Reference - 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 주는 방식 - 값을 복사하지 않고 직접 참조하기 때문에 속도가 빠름 - 원래의 값에 영향을 주는 리스크 존재

Primitive type vs Reference type

JAVA의 변수 데이터 타입 기본형(Primitive) - stack 메모리 영역에 실제 값을 저장하는 데이터 타입 - 기본값이 있어 null 이 존재하지 않음 ex ) byte, short, int, long, float, double, char, boolean - call by value 호출 방식 사용 참조형(Reference) - 기본형을 제외한 모든 타입 - 메모리 상에 객체의 주소를 저장하는 것 - 기본값은 아무런 참조 정보가 없으므로 null을 리턴 ex ) class, interface, array, Enum Type - 실제 값은 heap에 저장되고 stack에는 메모리 주소만 저장 - call by reference 호출 방식 * String - char의 Array = Referenc..

C++ vs Java

C++ JAVA 설계 목표 속도, C와의 하위 호환성에 집중 보안과 빠른 이식성에 집중 클래스 C언어의 상위 호환으로 절차지향이 섞임 기본단위 Class, 거의 완전한 OOP 컴파일과 런타임 각 운영체제에 맞는 기계어로 컴파일 가상머신 바이트 코드로 컴파일 하며, 이를 실행 시키기 위해서는 가상머신이 필요 이식성, 보안성 상대적으로 낮음 상대적으로 높음 바인딩 정적 바인딩 ( 컴파일 시, 어떤 함수를 호출할 지 결정) - 프로그램 실행 중에는 불필요한 오버헤드 없음 - virtual 키워드 제공 동적 바인딩 ( 런타임 중, 실행코드가 결정 ) - 실행 시간에 그 인스턴스가 실제로 담고 있는 객체의 종류를 판단하여 메서드 호출 - 별도의 데이터 관리해야 하고 부가적인 오버헤드 붙음 문법 차이 - 동적으로 ..