-IDE란?
= 통합 개발 환경으로 개발자가 효율적으로 개발하도록 도와주는 소스 코드 편집기
-마크업 언어란?
= 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지
-C언어, Python, Java의 차이?
= C언어 : 절차지향 언어
Java, Python : 객체지향 언어
- 자바의 특징
= 객체지향 언어이며, jvm이라는 가상 머신을 사용하기 때문에 이식성이 좋고 GC가
자동으로 메모리 관리를 해주기 때문에 편리하다
- 컴파일이란
= 고수준 언어(C, Java등등)을 컴퓨터가 이해할 수 있는 언어로 바꾸어 주는 과정
- JVM이란
= Java Virture Machine의 약어로 자바안에 내장된 가상 컴퓨터이다,
이로 인해 이식성이 좋다는 장점이 있지만 속도가 저하된다.
- 객체란 무엇일까?
= 객체란 우리가 일상생활에서 볼 수 있는 물체를 비롯해 추상적인 것 들까지 우리가
식별 가능한 개체를 말한다.
- 클래스는 무엇일까?
= 클래스란 객체를 분류하기 위한 추상화 도구이다.
- 객체지향이란?
= 캡상추다의 특성을 지닌 객체 중심적인 개발 기술을 말한다.
- 변수의 종류
= 지역 변수, 인스턴스 변수, 클래스 변수, 매개 변수
- static이 무엇인가?
= 변수 혹은 인스턴스를 전역 변수로 만들어 주는 키워드이다.
- 변수의 생명주기는 언제일까?
- 지역 변수 : 변수가 실질적으로 선언될 때 생성되며 자신이 속한 중괄호가 닫힐 때 소멸된다.
- 인스턴스 변수 : 자신이 속한 클래스의 인스턴스가 선언될 때 생성되며 인스턴스가 사용되지 않을 때 소멸된다.
- 클래스 변수 : 프로그램이 시작될 때 생성되며 종료될 때 소멸된다
- 매개 변수 : 메서드가 호출될때 생성되며, 메서드가 종료시 소멸된다.
- 자바의 기본 자료형(Primitive Type) <=> 참조 자료형(Reference Type)
정수형
- byte : 1바이트
- short : 2바이트
- int : 4바이트
- long : 8바이트
실수
- float : 4바이트
- double : 8바이트
문자형
- char : 2바이트
논리형
- boolean : 1바이트
- Primitive Type은 어디에 저장될까?
= 스택 메모리
- if, switch문 차이
- if : 만날때 마다 인터럭션 발생
- switch : 처음 입력값을 확인 할 때 만 인터럭션 발생
** if 문을 switch로 대체 가능시 switch 사용 권장**
- 배열이란?
= 연관된 데이터를 모아서 관리하기 위해 사용되는 데이터 타입(자료구조)
- 배열 삭제 과정
= 배열은 크기가 고정이므로 특정 인덱스의 요소를 제거하는 메서드 존재 X
따라서 List로 변환후 제거 혹은 Stream 사용
- 배열은 어디에 저장되나?
= Heap 메모리에 저장
- 생성자?
= 인스턴스 초기화 메서드
- 오버라이딩, 오버로딩
다형성 구현을 목적
- 오버라이딩 : 같은 이름의 메서드를 재정의
- 오버로딩 : 같은 이름의 메서드를 매개변수를 다르게 설정하여 재정의
- 상속이란?
= 다형성을 구현하기 위해 사용하는 자바의 기술
- 다형성, 캡슐화, 추상화, 상속
= 객체지향의 4대 특성으로 각각
- 다형성 : 같은 메서드의 이름으로 다른 동작을 하도록 하여 확장성과 유연성을 지원
- 캡슐화 : 외부에 나의 정보를 은닉함으로써 결합도를 낮추고 데이터 보호를 지원
- 추상화 : 유사한 상태 및 행위를 일반화 시킴으로 재사용성과 유연성을 지원
- 상속 : 다형성을 지원하기 위한 자바의 기술
- 접근 제어자
= public, private, protected, default
- 동등성, 동일성
= 동등성은 값이 같은가, 동일성은 완전히 같은 객체인가
- ==, equals
= ==은 동일성, equals는 동등성
- equals, hashcode 같이 사용해야하는 이유
= equals는 내부적으로 ==을 통해 동일성을 비교하기에 재정의 하여 사용해야 하지만,
hashcode를 함께 재정의 하지 않을 경우 hash코드를 사용하는 자료구조를 사용할 때 문제가 발생한다.
- 매개 변수, 인자 차이
= 매개 변수 : 클래스에 정의된 필드 변수
= 인자 : 메서드를 호출할 때 함께 보내는 변수
- JVM
Java Vertual Machine의 약어로 자바 자체에서 가동되는 가상의 컴퓨터
이로 인해 다양한 OS에서 호환된다.
- Garbage Collection
= 자바의 쓸모없는 메모리를 정리해주는 메모리 관리 시스템
- enum vs final
= final로 선언한 상수는 단순히 값의 변경을 방지하기 위한 불변 변수로 사용되며, enum은 연관된 상수들을 그룹화하고 의미를 부여하기 위해 사용된다
- exception
- error
= 예외가 아닌 심각한 오류 상황이다. 개발자가 예측 할 수 없는 에러이다.
- checked exception
= 확인된 예외로 실행하기 전 컴파일러가 찾아낸 에러이다. 꼭 처리를 해주어야 실행이 가능하다
- unchecked exception
= 실행 도중 발생하게 된 예기치 못한 에러이다. 가장 좋은 예로 nullpointerException이 있다.
- String
- String 더하기
= String클래스는 내부적으로 final로 선언이 되어 있기에 새로운 String객체를 생성해 주는 것이지 더하기가 되는 것이
아니다.
- StringBuilder, StringBuffer
= 불변의 클래스인 String과는 다르게 가변의 클래스로 변하기 쉬운 문자열을 다룰 때 주로 사용되며,
StringBuilder는 동기화가 되지 않은 반면 StringBuffer는 동기화가 되어 있어 멀티스레드에 안전하다는 특징이 있다.
'백엔드 멘토링' 카테고리의 다른 글
2023-08-29 DB 관련 질문 정리 (0) | 2023.08.30 |
---|---|
객체지향의 사실과 오해 후기 (0) | 2023.08.27 |
RestTemplate vs webClient vs openFeign 차이 (0) | 2023.08.27 |
Car-Racing 토이 프로젝트 step 1 회고록 (1) (0) | 2023.07.11 |
일급 컬렉션(First-Class Collection)이란? (0) | 2023.07.10 |