일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jsp게시판만들기
- 날짜지정팝업
- 프로그래머스 MYSQL
- jsp 날짜팝업
- 자바 정규표현식 예제
- CRUD게시판만들기
- js datepicker
- 프로그래머스 쿼리문
- 게시판만들기
- 자바배열예제
- 스프링 CRUD게시판
- PLSQL
- Oracle기초
- 스프링게시판만들기
- 오라클설치
- 자바연산자
- 2020정보처리기사실기정리
- 2020정보처리기사실기
- 2020정보처리기사실기요약
- 스프링 crud
- 정처기실기정리
- 정보처리기사실기정리
- jsp 팝업띄우기
- crud게시판
- html기초
- 자바기초
- 오버라이딩
- spring crud
- 프로그래머스 SQL
- spring crud게시판
- Today
- Total
영보의 SystemOut.log
[JAVA] 자바 Back-end 백앤드 면접 질문 정리 본문
1. Garbage Collection 가비지 컬렉션
- 메모리 누수 방지
- 힙에 저장된 데이터 중 더 이상 콜 스택에 의해 접근할 수 없는 대상의 메모리 회수
2. Vector와 ArrayList의 차이는?
- 벡터는 한 번에 하나씩 쓰레드에서만 접근 가능
- 어레이리스트는 동시에 여러 쓰레드에서 접근 가능
# 사용해 본 결과 List.remove할 때 어레이리스트는 주의를 요함
3. String과 StringBuffer의 차이
- 스트링은 불변, 스트링 버퍼는 가변
- 스트링 연산 시 새로운 인스턴스 생성, 스트링 버퍼는 기존 인스턴스 변경
# 연산이 많은 경우 스트링 버퍼가 속도나 메모리 절약 면에서 유리함을 경험.
4. JAVA Serialization
- 서로 다른 자바 프로그램 간의 데이터 교환을 위해 데이터를 바이트 형태로 변환하는 것
- java.io.ObjectOutputStream 객체를 사용
5. JAVA의 메모리 영역
- 메소드 : 클래스
- 힙 : 클래스 인스턴스 저장
- 스택 : 프로그램 실행 시에 필요한 임시 공간. 후입선출
# 질문 드리기 : 힙 선입선출?
6. 오버로딩과 오버라이딩의 차이
- 오버로딩은 같은 메소드 이름에 매개변수를 달리하여 동일한 기능 수행
- 오버라이딩은 부모 클래스의 메소드를 재정의(변경)하는 것
7. 추상 클래스와 인터페이스의 차이
- 추상 클래스는 클래스 내에 추상 메소드가 하나 이상 포함된 것
- 인터페이스는 모든 메소드가 추상 메소드인 것(jdk 1.8부터는 default 키워드로 구현 가능)
8. 제네릭이란?
- 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법
- 타입 체크를 강력하게 하는 것. 반복문을 돌 때 에러 방지
9. 자바 바인딩의 종류
- 정적 바인딩 : 프로그램 실행 전, 컴파일 단계에서 메모리에 할당되는 것
→ static 클래스, static 메소드
- 동적 바인딩 : 프로그램 실행 중 메모리에 할당되는 것.
→ 인스턴스 메소드
10. Stack과 Queue의 차이
- 둘 다 자료구조의 종류
- 스택은 후입선출
- 큐는 선입선출
11. 자바 컴파일 과정
- Javac가 .java컴파일 해서 .class파일 생성. JVM은 이 class파일을 읽어서 실행. Interpreter가 한 줄씩 인터프리팅하는 동안 JIT Compiler가 코드 전체 컴파일 진행. 전체 컴파일이 끝나면 이후로는 컴파일된 코드 직접 실행
12. Wrapper Class
- 기본형 변수를 객체처럼 다뤄야 할 경우 사용. 자주 사용되는 메소드 지원.
13. 소프트웨어 패턴
1. 싱글톤 : 생성자가 여러 차례 호출되어도 최초의 생성자가 생성한 객체를 리턴. 메모리 절약
2. 팩토리 : 생성자를 별도의 인터페이스로 분리하여 객체를 만들어내는 공장으로 이용하는 것.
3. 프로토타입 : 데이터를 이미 가지고 있는 기존 객체를 복사하여 데이터를 수정하는 것
4. 어댑터 : 서로 다른 클래스를 연결하여 사용하는 것. Via 인터페이스
5. 옵저버 : 객체의 상태 변화를 관찰하는 관찰자들의 목록을 객체에 등록하여 이벤트 핸들링
14. DAO와 Service 차이
- DAO : 단일 데이터 접근 / 갱신
- Service : 여러 DAO를 호출하여 여러 곳의 데이터 접근 / 갱신
15. OOP (Object Oriented Programming)
- 객체 지향 프로그램
- 반복되는 코드의 양을 줄여줌
- 어플리케이션 전체에서 사용되는 부가 기능들을 모듈화 하기 어려움
'Language > JAVA' 카테고리의 다른 글
[JAVA] overriding 오버라이딩이란? (0) | 2021.01.04 |
---|---|
[JAVA] 접근 제어자(access modifier)란? (0) | 2021.01.02 |
[JAVA] 생성자(Constructor)란 무엇인가? (1) (0) | 2020.12.29 |
[JAVA] overloading 오버로딩이란? (0) | 2020.12.28 |
[Java] db와 연동하여 우편번호 검색 프로그램 만들기 (0) | 2020.08.05 |