영원히 흘러가는 강

신입 웹개발자 기술면접 (자바 ver. 1) 본문

기술면접

신입 웹개발자 기술면접 (자바 ver. 1)

double_R_one_G 2020. 12. 14. 17:13
728x90

JAVA

기본

  • Java 접근 제어자에 대해서 각각 설명해 주세요.

         

    ㄴ> 외부에서 접근하지 못하도록 제한하는 역활 (생략시 default)

 

                 public > protected > default > priavate (접근 범위)

 

                public :같은 클래스 

                protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서

                default : 같은 패키지 내에서

                private: 같은 클래스 내에서                

 

 

  • JVM의 구조에 대해서 설명해 주세요.

        github.com/ryugaram/the-java/blob/main/ryu_gr/ch1.md

 

ryugaram/the-java

Contribute to ryugaram/the-java development by creating an account on GitHub.

github.com

위는 나의 깃헙.. 

 

 

  • Garbage Collector 에 대해서 설명해 주세요. 어떻게 동작하나요?

         

    ㄴ>         동적 할당된 메모리를 회수해 가는 역활

 

                 stop the world를 통해 gc 실행 

 

                stop the world는 gc스레드 제외 나머지 스레드 작업 멈추게.

 

 

  • GC의 종류에 대해서 말해보세요.

 

           ㄴ> Serial Gc   , Parallel Gc,     CMS Collector ,        G1  Gc  

 

              참고사항 blog.voidmainvoid.net/190

 

자바 가비지 컬렉션 설명 및 종류

Getting Started JVM 기반 언어와 C, C++과 가장 큰 다른점은 free()와 같은 메모리접근을 통한 명시적 메모리 해제 여부이다. 자바는 OS메모리 영역에 직접 접근하지 않고 JVM이라는 Process이자 가상머신을

blog.voidmainvoid.net

 

 

  • Java 버전 별 특성에 대해서 아는대로 말해주세요.

            ㄴ> 표로 정리 잘된 사이트가 있어서 올려본다

 

i3utterfly.tistory.com/entry/JAVA-%EB%B2%84%EC%A0%84%EB%B3%84-%EC%A0%95%EB%A6%AC?category=831532?category=831532

 

Java 버전별 특징

Java 버전별 특징들을 정리한 내용입니다. JAVA 버전 발표일 특징 비고 Java SE 13 2019년 9월 17일 - switch문에 yield 예약어 추가 Java SE 12 2019년 3월 19일 - switch문 확장 ( -> ) - 가비지 컬렉터 개선 -..

i3utterfly.tistory.com

 

 

 

  • Java는 Call By Value일까요, Call By Reference 일까요?

          ㄴ>Call By Value

 

  • 리플렉션(Reflection)이란 무엇인가요?

         ㄴ> 리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입,

                 변수들에 접근할 수 있도록 해주는 자바 API

 

                  라이브러리나, 프레임워크에서 사용 . 동적으로 해결해주기 위해

 

 

  • Stream API란 무엇인가요?

          ㄴ> 자바 8에서 추가된 API로 함수형 인터페이스(람다식)을 적용하여 컬렉션과 같은

                저장요소를 반복적으로 처리 가능한 기능

 

                재사용 불가능, 원본 데이터 변경x , 필요할때만 연산함으로 효율적 처리

 

 

  • Lambda란 무엇인가요?

           ㄴ> 자바8에 추가된 큰 기능중 하나로 메서드로 전달할 수 있는 익명클래스 표현식이다

                 

                  ( 파라미터 ) -> { 몸체 } 

 

                  장점으로는 코드 라인수 감소, 병렬 프로그래밍,가독성 높다

 

                  단점으로는 재귀 람다 호출 까다롭다, 클로저 지원 안된다.

 

 

  • 함수형 인터페이스란 무엇인가요?  

           

          ㄴ> 단 하나의 추상 메소드만 가지는 인터페이스

 

 

  •  
  • foreach를 사용할 수 있는 자료구조는 어떤 인터페이스를 상속받고 있나요?

          ㄴ> Iterable 

 

 

  • iterator와 iterable 차이는 무엇인가요?

         ㄴ> Iterator 인터페이스는 Collection과는 별개로 존재하는 인터페이스이다.

               hasNext(), next(), remove() 등이 메소드 이용

 

              iterable은 컬렉션의 상위 인터페이스

              iterable 인터페이스 안에는 iterator 메소드가 추상메소드로 선언되어있다.

              collection 인터페이스 계층구조에서 list,set,queue 

 

 

  • synchronized 키워드에 대해 설명해 주세요.

           ㄴ> 현재 데이터 사용하는 스레드 제외하고 나머지 스레드 데이터에 접근

                  못하도록 막는 개념.

 

  • final 키워드에 대해서 설명해주세요. 각각의 쓰임에 따라 어떻게 동작하나요?

          ㄴ> 상수를 표현하기 위한 예약어.

 

                  1.final 변수 - 상수라고도 불림 , 선언 동시에 초기화 이후 수정 불가,get만 가능

 

                  2. final 메소드 - 오버라이딩 불가능 ,상속 받은 그대로 사용해야함

 

                  3.final 클래스 - 상속 불가 ,subclass 불가

728x90
Comments