ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 프로그래밍 면접 이렇게 준비한다.
    My-Book(History) 2016. 8. 27. 19:26

    ● 눈에 띄는 이력서 작성하기


    - 사용할 수 있는 도구, 소스 버전 관리 시스테등 업무에 필요한 부가적인 항목들을 다룰 수 있는지 적어 넣어라


    - 사용할 수 있는 핵심 기술을 어필하라(적합한 내용인지 확인할것)


    - 핵심 기술 영역과 비슷하게 경험했던 사항을 '블릿' 기호로 요약하라 (블릿이란 ● 이런것)


    - 팀에서 어떤 역할을 했고 어떤 부분을 담당하였을때 무엇을 이루어 냈는지 어필하라


    - 수행했던 업무를 설명할떄는 강력한 형용사를 적절한 위치에 사용하는것이 좋으며, 스스로를 

      '리더' 개발자로 설명하거나 단독 권한을 가졌다거나 핵심 팀원이라고 설명하라


    - 블로그, GitHub 등 면접 환경과 다른 실제 모습을 보여줄 수 있도록 링크를 제공하는것도 좋다.



    ● 배열


    - 자바 배열은 객체로 취급한다는것을 명심하자


    ex) 

    @Test

    public void arrayReferences() {


    final int[] myArray = new int[] {0,1,2,3,4,5}

    int[] arrayReference2 = myArray;


    arrayReference2[5] = 99;


    assertFalse(myArray[5] == 5);

    }

    당연히 5겠지 했는데 ... 99가 나온다.


    ● String


    - 리터럴을 사용하여 String을 생성할경우, 내붝으로 new String() 메소드 호출 이후에 

    String intern() 이라는 메소드가 호출되어 고유의 인스턴스를 공유하도록 intermieted 된다


    즉 이전에 같은 char Sequence의 문자열이 이미 상수풀에 있다면 문자열을 힙에서 해제하고 그 상수풀의 레퍼런스를 반환한다.


    - 클래스가 JVM에 로드 되는 순간 모든 리터럴이 상수풀에 위치하게 된다.


    String intern() : 새롭게 만들어진 String 객체를 상수화 시켜준다. 만들어진 String 객체가 이미 상수로 만들어진 문자열이라면, 

    지금 만들어진 놈을 버리고 상수를 가리키게 한다. 즉 상수를 재활용하게 해준다.




    ● 가바지 컬렉션 관련 메서드


    - gc() : JVM에게 컬렉션 처리를 하라고 명령한다. 하지만 문제점은 stop-the-world 상태가 되는데 live 표시되어있는 메모리들이 컬렉션 처리후 (stop-the-world : GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다.)

    해당 메모리 영역을 재사용하면서 성능에 저하를 줄뿐아니라 메모리 누수가 발생하게 된다.


    - finalie() : JVM이 가비지 컬렉션을 통해 객체를 수집할 때는 이 메소드를 제일 먼저 호출한다. 

                 이 메소드가 가비지 컬렉션에서 수집해야 하는 객체와 연관된 모든 자원을 제거하는데 필요한 작업을 하게된다.   얘 또한 문제점은 

                 오버라이드시 언제 호출될지 모른다는것이다..



Designed by Tistory.