영원히 흘러가는 강

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

기술면접

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

double_R_one_G 2020. 12. 15. 10:15
728x90

클래스와 객체

  • Wrapper Class란 무엇인가요?

         ㄴ> 자바의 자료형은 기본형 참조형으로 나뉘는데 기본형을 객체로 다루기 위해 

               래퍼 클래스 사용

 

               byte =>Byte    char=> Character    int => Integer   float=> Float

 

               doulbe=> Double   boolean => Boolean   long=> Long    short=> Short

 

  • 클래스, 객체, 인스턴스 차이에 대해서 설명해 주세요.

          ㄴ> 클래스 - 객체를 만들어 내기 위한 설계도 틀, 연관있는 변수와 메서드 집합

 

                객체 - 구현할 대상, 클래스에 선언된 모양 그대로 실체 (클래스 인스턴스)

 

                인스턴스 - 설계도 바탕으로 구현된 실체 ,실체화된 인스턴스는 메모리에 할당

 

  • 직렬화(Serialization)과 역직렬화(Deserialization)에 대해서 설명해 주세요.

         ㄴ>  직렬화란 객체들의 데이터를 연속적인 데이터로 변형하여 Stream을 통해 데이터

                 읽도록 해준다 . 객체들을 통째로 파일로 저장하거나 전송하고 싶을때 주로 사용

 

               역직렬화란 파일 등을 역으로 직렬화하여 다시 객체의 형태로 만드는것을 의미

                 저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체 형태로 복원

 

 

  • Java Generic에 대해서 설명해 주세요.

         ㄴ> 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 

 

                타입 에러 사전 방지 , 타입 변환 제거(캐스팅) 

 

 

  • equals와 ==의 차이는 무엇인가요?

          ㄴ> equals - 객체가 가지고 있는 값을 비교

 

               ==  - 객체의 메모리 주소 비교 

 

String s1= "test";
		String s2=s1;
		String s3= new String("test");

        //객체 값 비교
		System.out.println(s1.equals(s2));   //true
		System.out.println(s1.equals(s3));   //true
		System.out.println(s2.equals(s3));   //true
		
        //객체 주소 비교
		System.out.println(s1==s2);    //true
		System.out.println(s1==s3);    //false
		System.out.println(s2==s3);    //false

 

 

  • hashCode란 무엇인가요? 

          ㄴ> 객체를 식별할 수 있는 유니크한 값을 말한다 . 메모리에 생선된 객체의 주소를 정수로 변환한 형태

 

                   이 정수는 중복되지 않는 고유의 값

 

 

  • 문자열을 리터럴(string = "abcd")로 할당하는 것과 객체(string = new String("abcd"))로 할당하는 방식의 차이가 무엇인가요?

           ㄴ>  객체 할당 하는 방식은 heap 영역에 할당되고

 

                  리터럴 방식은 String Constant Pool 이라는 영역에 할당된다.

 

                   위의 equals 와 == 를 확인해보면 주소값 다르다는거 확인

 

                 

  • 순수 추상 클래스와 인터페이스의 차이는 무엇인가요?

           ㄴ> 일단 공통점으로 찾아본다면 선언만 있고 구현 내용이 없다.

                  상속 받은 자식이 구현을 해야 함

 

 

                 차이점으로는 키워드로 abstract , implements 로 구분 가능할수 있을것 같다.

 

                 추상 클래스의 정의는 abstract 메소드가 하나라도 존재하는 클래스

 

                 인터페이스는 구현체 없이, 메소드에 대한 명세만 

 

                 자바에서 단일상속을 지원하기 때문에 인터페이스로 다중상속 가능토록

 

  • 본인 관점에서, 인터페이스는 주로 어떨 때 사용하나요?

            ㄴ> 협업해야 하는 상황 혹은 다중 상속을 위해

 

 

  • Servlet이 무엇인가요?

             ㄴ> 웹 기반의 요청에 대한 동적처리 가능한 서버 사이드에서 돌아가는 자바 프로그램

 

                    java 코드 안에 html 코드 , 웹 개발 표준

 

                    db와의 통신,Business logic 호출, 데이터 읽고 확인하는 작업에 유용

 

자료형, 자료구조

  • Java의 Collection에 대해서 설명해 주세요.

         ㄴ> 정리가 잘된 사이트가 있어서 링크 남긴다.

 

              gangnam-americano.tistory.com/41

 

[JAVA] Java 컬렉션(Collection) 정리

[JAVA] Java 컬렉션(Collection) 정리 ■ Java Collections Framework(JCF) Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬..

gangnam-americano.tistory.com

 

 

  • Array와 ArrayList의 차이점은 무엇인가요?

           ㄴ> 1. 배열은 크기가 고정되어 있지만 ArrayList는 동적 (현재 메모리에 1.5씩 늘어남)

      

                 2. 배열은 기본형, object 모두 담을수 있지만 ArrayList는 object만

 

                 3. 배열 제네릭 사용 불가  ArrayList는 사용 가능

 

                 4. 배열은 길이 length() , ArrayList는 size()

 

 

  • char type과 string type으로 나뉘어져 있는 이유는 무엇인가요?

           ㄴ> String 클래스는 char 배열에 메서드 추가

 

                 char 내용물 제한 , String은 제한없이 담을수 있음

 

                 char 변수값 가지고 좌표 가지지 않음 

 

                 String은 char과는 달리 클래스타입 변수이기에 좌표를 내용물로 가짐

 

                 

728x90
Comments