2024. 7. 29. 14:49ㆍCS
인터프리터 언어 : 파이썬, JS 처럼 컴퓨터가 실시간으로 컴퓨터 언어로 변환하는 언어. 파일이 1개. 비교적 느림
컴파일러 언어 : 자바, C계열언어 처럼 컴퓨터가 스스로 변환 파일을 만드는 언어. 파일이 2개. 비교적 빠름
자바의 특징
1. 플랫폼 독립적
2. 객체 지향적
3. 멀티스레드 지원
4. 자동으로 메모리 관리
JDK, JRE, JVM의 차이점
JDK : 자바개발키트
JRE : 자바 실행환경
JVM : 자바 가상머신
JDK는 JRE와 자바 개발도구를 포함, JRE는 JVM과 라이브러리를 포함
객체지향 프로그래밍의 4가지 특징
1.캡슐화
2. 상속
3. 다형성
4. 추상황
예외와 오류의 차이점
예외는 프로그램이 스스로 제어할 수 있는 문제
오류는 시스템 레벨의 문제로 프로그램이 스스로 제어할 수 없음
오버로딩과 오버라이딩의 차이
오버로딩 : 같은 이름의 메서드를 매개변수를 다르게 하여 여러개 정의하는 것
오버라이딩 : 상위 클래스의 메서드를 하위 클래스가 재정의하는 것
자바의 다형성이란
하나의 인터페이스나 클래스가 여러가지 형태를 가질 수 있는 특성
자바의 기본 자료형
byte, short, int, long, float, double, char, boolean
String이 불변(immutable)인 이유
보안, 동기화, 캐싱의 장점을 제공하고 문자열의 재사용을 촉진
가비지 콜렉터란?
사용되지 않는 객체를 자동으로 메모리에서 해제하는 기능
sycronized는 무엇에 사용되는가
여러 스레드가 동시에 접근할 때 공유 자원의 동기화를 보장하는 데 사용
인터페이스와 추상클래스의 차이
인터페이스 : 다중 상속을 지원하고 모든 메서드가 추상 메서드
추상 클래스 : 단일 상속만 가능, 추상 메서드와 일반 메서드 둘 다 가질 수 있다
제네릭이란 무엇인가
클래스나 메서드에서 사용할 내부 데이터 타입을 지정하는 것
equals()와 ==의 차이점
equals()는 객체의 내용을 비교하고 ==는 객체의 참조를 비교
java에서 프레임워크란
데이터 구조를 쉽게 다룰 수 있게 해주는 클래스와 인터페이스의 집합
java에서 ArrayList와 LinkedList의 차이점
ArrayList : 삽입/삭제가 느림, 인덱스를 통한 접근이 빠름
LinkedList : 삽입/삭제가 빠름, 인덱스를 통한 접근이 느림
java에서 HashMap과 Hashtable의 차이점
HashMap : null 키, 값이 허용, 동기화가 안됨
Hashtable : null 키, 값이 안됨. 동기화가 됨
java에서 Serializable 인터페이스란
객체를 직렬화해서 저장하거나 전송해줌
java에서 transient란
해당 변수가 직렬화 과정에서 제외되도록 함
java에서 static은 무엇에 사용되는가
클래스 변수나 메서드를 정의할 때 사용. 객체가 아닌 클래스 자체에 속함
java의 접근 제어자 종류
public, protected, default private
java의 final 키워드는 어디에 사용되는가
변하지 않는 변수, 상속할 수 없는 클래스, 오버라이딩할 수 없는 메서드를 정의할 때 씀
java의 인스턴스 초기화 블록이란
객체가 생성될 때마다 실행되는 블록. 생성자보다 먼저 호출됨
java에서 메서드 참조란
람다식을 더 간결하게 표현하는 방법. 클래스나 객체의 메서드를 참조
java의 Stream API란
컬렉션 데이터를 처리하는 방법. 람다식을 통해 코드의 간결성과 가독성을 높임
java에서 Optional이란
null 값을 감싸는 컨테이너 클래스. NPE(null pointer exception)를 방지하는데 사용
java에서 동기화의 종류는?
메서드 동기화, 블록 동기화
java에서 Reflection이란
런타임에 클래스, 메서드, 변수에 접근하고 조작할 수 있는 기능
java에서 Lambda 표현식이란
익명 함수. 메서드를 하나의 식으로 표현할 수 있게 함
java에서 Enum이란
열거형 자료형. 관련된 상수들의 집합을 정의
java에서 JIT 컴파일러란
실행 시 바이트 코드를 네이티브 코드로 변환해 프로그램의 실행 속도를 높임