JAVA 20

기술면접 질문 리스트

Java의 특징 - Java는 JVM에서 실행되기 때문에 어떤 운영체제에서든지 독립적으로 Java 언어를 사용할 수 있다. - Java는 객체 지향 프로그래밍을 지원하며, 클래스와 객체를 사용하여 모듈화와 재사용성을 강화합니다. - Java는 멀티스레드를 지원하여 동시에 여러 작업을 수행할 수 있습니다. - Java는 동적 메모리 할당을 지원하며, 가비지 컬렉션 기능을 통해 메모리 누수를 방지합니다. - Java는 컴파일 언어이면서 인터프리터 언어입니다. * 인터프리터는 소스 코드를 읽고, 이를 바로 실행하는 프로그램이나 환경을 가리킵니다 * 컴파일은 소스 코드를 기계어 또는 중간 언어로 변환하는 과정을 말합니다 JVM이란? - Java Virtual Machine의 약자로 Java 프로그램이 실행되는 ..

JAVA 2023.12.11

Optional 객체

Optional - 값이 존재할 수도 있고, 없을수도 있는 컨테이너 객체. - Optional을 사용함으로써 코드의 가독성을 높이고 예외 처리를 보다 명확하게 할 수 있다. - Optional을 사용하면 null 체크를 명시적으로 처리할 수 있으며, 메서드의 반환 값이나 매개변수가 null일 경우 발생하는 예외를 방지할 수 있습니다. - Optional은 주로 NullPointerException을 방지하고 코드를 안전하게 작성하기 위해 사용. * Optional.ofNullable( ) - 주어진 값이 null이 아니면 해당 값을 감싸는 Optional 객체를 생성, 값이 null 이면 빈 (empty)Optional 객체 반환 * filter( ) - filter( )메서드는 스트림에서 특정 조건을 ..

JAVA 2023.11.21

▶︎입출력◀︎

IO(입출력) - Input(입력) : 외부 -> 내부로 데이터가 들어오는 것 - Output(출력) : 내부 -> 외부로 데이터를 내보내는 것 - Stream : 입/출력 통로 역할(데이터가 흘러가는 통로) 기본적으로 Stream은 단방향 스트림(Stream) 클래스 - 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스 - 하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림 필요 ** InputStream ** - 바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스임 ** FileInputStream ** - 파일을 바이트 단위로 읽을 때 사용하며 그림, 오디오, 비디오, 텍스트파일 등 모든 종류의 파일 읽기 가능 - InputStream의 하위 ..

JAVA 2023.05.16

▶︎컬렉션◀︎

컬렉션(Collection) - 컬렉션은 자바에서 제공하는 자료구조를 담당하는 프레임워크 - 추가,삭제,정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요가 없음 - java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스 이용 가능 - 컬렉션의 장점 1) 저장하는 크기의 제약이 없다. 2) 추가,삭제,정렬 등의 기능처리가 간단하게 해결된다. 3) 여러 타입의 데이터가 저장 가능하다. ** 객체만 저장할 수 있기 때문에 필요에 따라 기본 자료형을 저장해야 하는 경우 Wrapper 클래스 사용 ** - 컬렉션의 주요 인터페이스 List - 자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능. - 구현 클래스로 Arra..

JAVA 2023.05.14

▶︎예외◀︎

예외(Exception) * 오류의 종류 컴파일 에러 : 프로그램의 실행을 막는 소스코드상의 문법에러. 소스코드 수정으로 해결. 런타임 에러 : 프로그램 실행 중 발생하는 에러. 주로 if문 사용으로 에러 처리(ex. 배열의 인덱스 범위를 벗어났거나, 계산식의 오류) 시스템 에러 : 컴퓨터 오작동으로 인한 에러, 소스 코드 수정으로 해결 불가 - 해결방법 : 소스코드 수정으로 해결 가능한 에러를 예외(Exception)라고 하는데 이러한 예외 상황(예측 가능한 에러) 구문을 처리하는 방법인 예외처리를 통해 해결 - 예외의 2가지 종류 * UnChecked Exception : RuntimeException과 자식 예외를 지칭함. 프로그램 수행중 개발자의 코딩 실수 또는 사용자의 잘못된 값 입력으로 흔하게..

JAVA 2023.05.14

▶︎인터페이스◀︎

인터페이스(Interface) - 메소드의 통일성을 부여하기 위해 추상 메소드만 따로 모아놓은 것으로 상속 시 인터페이스 내에 정의된 모든 추상메소드 구현해야 함 - 인터페이스는 다중 상속도 가능함 - 인터페이스의 작성법 인터페이스의 특징 3가지 1. 모든 인터페이스의 메소드는 묵시적으로 public abstract 2. 변수는 묵시적으로 public static final 3. 객체 생성은 안되나 참조형 변수로는 가능(다형성) 인터페이스의 장점 - 다형성을 이용하여 상위 타입 역할(자식 객체 연결) - 인터페이스 구현 객체에 공통된 기능 구현 강제화 (== 구현 객체간의 일관성 제공) - 공동 작업을 위한 인터페이스 제공 추상클래스와 인터페이스의 차이점

JAVA 2023.05.10

▶︎다형성◀︎

다형성 - 객체 지향 언어의 특징 중 하나로 '다양한 형태를 갖는다' 라는 뜻으로 하나의 행동으로 여러 가지 일을 수행하는 개념 - 상속을 이용한 기술로 부모 클래스 타입 참조변수 하나로 상속 관계에 있는 여러 타입의 자식 객체를 참조할수 있는 기술 - 다형성을 이용하여 상속 관계에 있는 하나의 부모 클래스 타입의 배열 공간에 여러 종류의 자식 클래스 객체 저장 가능 업 캐스팅(Up Casting) - 상속 관계에 있는 부모, 자식 클래스 간에 부모타입의 참조형 변수가 모든 자식 타입 객체의 주소를 참조할 수 있음 ---->> 자식 객체의 주소를 전달받은 부모 타입의 참조변수를 통해서 접근할 수 있는 객체의 정보는 부모로 부터 상속받은 멤버만 참조가능 - 업캐스팅 상태(부모 참조 = 자식 객체) 에서 부..

JAVA 2023.05.10

▶︎상속◀︎

상속 - 클래스 간의 상속시에는 extends 키워드 사용 - 단일 상속 : 클래스간의 관계가 다중 상속보다 명확하고 신뢰성 있는 코드 작성, 자바에서는 다중 상속 미지원->단일 상속만 지원 - 모든 클래스는 Object 클래스의 후손 - 부모클래스의 생성자, 초기화 블록은 상속 안됨. 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super( ) 활용 - 부모의 private 멤버는 상속은 되지만 직접 접근 불가하다. super( ) 이용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성. 하거나 getter, setter 메소드를 이용하여 접근 super( ) - 부모 객체의 생성자를 호출하는 메소드로 기본적으로 자식 생성자에 부모 생성자 포함 - 자식 객체 생성 시..

JAVA 2023.05.03

▶︎객체 배열◀︎

객체 배열 - 객체 참조형 변수를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형)으로 지정하여 활용 - 선언 : 클래스명 [ ] 배열명 ; 클래스명 배열명 [ ]; - 할당 : 배열명 = new 클래스명[배열크기]; - 선언과 동시에 할당 : 클래스명 배열명 [ ] = new 클래스명[배열크기]; - 인덱스를 이용한 초기화 : 배열명[i] = new 클래스명( ); - 선언과 동시에 할당 및 초기화 : 클래스명 배열명 [ ] = { new 클래스명( ), new 클래스명( )}; ******객체배열 구조******

JAVA 2023.05.03

▶︎회원가입◀︎

회원가입 기능 코드 작성 - 첫번째로 Member 라는 클래스를 만들어 주고 Member 클래스에 필드를 선언해준다. 이때 필드들은 캡슐화의 원칙에 의해서 접근제한자를 private 으로 선언해준다. - 기본 생성자를 하나 생성해주고 그 다음 매개변수 생성자를 이용해서 ( ) 안에 로그인에 사용할 매개변수들을 넣어준다. 또한 this 를 이용해서 private 으로 선언된 필드들에 값을 대입해 줄것이다. - getter/setter 메소드를 이용해서 private으로 선언된 필드들에 외부에서 접근할것이다. - MemberService 클래스를 생성하고 여기에 회원가입 하는 기능들을 작성할 클래스로 사용할 것이다. - 먼저 회원가입을 하기위해서는 입력받아야 하기 때문에 Scanner를 선언해줬고, Memb..

JAVA 2023.05.02