Java 8

자바 일반

Q1. JAR 파일이란 무엇인가? - Q1-1 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포한다는 것이 무엇인가? - Q1-2 소프트웨어 파일 패키지 포맷이란 무엇인가? - Q2. 접근자 메서드란 무엇인가? - 필드값을 가져오는 getter() 메서드를 의미합니다. 반면, 필드값을 설정하는 setter() 메서드는 설정자라고 합니다. Q3. 접근 제어자란 무엇인가? - 변수나 메소드의 사용 권한을 설정하기 위한 키워드를 의미합니다. Q4. 파싱이란 무엇인가? - Q5. WAR 파일이란 무엇인가? - Q6. 빌드란 무엇인가? - Q7. 스크립트란 무엇인가? - 참고 - JAR (파일 포맷) - 위키백과, 우리 모두의 백과사전 (wikipedia.org) JAR (파일 포맷) - 위키백과, 우리 모두의 ..

Java 2022.05.16

클래스와 인터페이스

Q1. 클래스란 무엇인가? - 객체를 생성하기 위해 작성한 코드, 객체를 생성하는 틀을 의미합니다. Q2. 클래스 내부에 선언한 변수는 무엇인가? - 멤버 변수라고 합니다. Q3. 클래스 내부에 선언하는 함수는 무엇인가? - 멤버 함수 또는 메소드라고 합니다. Q4. 클래스로 객체를 생성하면 어떤 메모리 공간을 할당 받는가? - 메모리의 힙(heap)공간을 할당받습니다. Q5. 디폴트 생성자란 무엇인가? - 클래스에 선언된 생성자가 없을 때, 기본으로 생성되는 생성자를 의미합니다. Q6. 접근 제어자란 무엇인가? - 멤버 변수 혹은 멤버 함수에 대한 접근 수준을 제어하는 키워드를 의미합니다. Q7. getter(), setter() 메서드는 왜 선언되어야 하는가? - 멤버 변수가 접근 제어자 privat..

Java 2022.05.15

제네릭

Q1. 제네릭 프로그래밍이란 무엇인가? 제네릭 프로그래밍을 사용함으로써 얻는 이점은 무엇인가? - 제네릭 프로그래밍이란 Q2. 제네릭 프로그램이 참조 자료형으로 변환될 때, 검증을 무엇이 하는가? 그로 인한 이점이 무엇인가? - 컴파일러가 합니다. 그로 인한 이점은 컴파일 타임에 오류를 검증해낼 수 있다는 것입니다. Q3. 제네릭 프로그래밍이 아닌 Object 클래스를 사용했을 때의 단점은 무엇인가? - 데이터를 꺼내올 때 추가적으로 직접 형변환을 해줘야 한다는 것입니다. Q4. 왜 static 변수의 자료형이나 static 메서드 내부 변수의 자료형으로 제네릭을 사용할 수 없는가? Q5. 제네릭이 있기 전에는 어떤 일이 발생했는가? Q6. 왜 로 타입은 사용하지 말아야 하는가? Q7. 애초에 왜 로 타..

Java 2022.05.13

String 클래스

Q1. String str1 = new String("abc")와 String str2 = "test"의 차이점은 무엇인가? A1. new String("abc")는 힙 메모리에 객체가 선언되고, "test"는 상수 풀(constant pool)에 선언됩니다. Q2. String 클래스는 어떤 char[]형 배열로 선언되어 있고, 그로 인해 생기는 결과는 무엇인가? - String 클래스는 private final char[]형 배열로 선언되어 있습니다. 그로 인해 String 클래스는 불변(immutable) 클래스가 됩니다. Q3. StringBuffer 클래스와 StringBuilder 클래스가 해결하는 문제는 무엇인가? - String 클래스가 불변 클래스이기 때문에, 객체 끼리 값을 더할 때마다..

Java 2022.05.13

equals()와 hashcode()

Q1. equals() 메소드의 기능은 무엇인가? A1. equals() 메소드는 두 객체를 비교하는 기능을 합니다. 두 객체의 해시코드 값을 비교해서 같은 true를, 다르면 false를 반환합니다. Q2. hashcode() 메소드의 기능은 무엇인가? A2. hashcode() 메소드는 객체의 메모리 주소를 생성하는 메소드입니다. Q3. toString() 메소드의 기능은 무엇인가? A3. toString() 메소드는 객체의 클래스 명과 16진수 해시코드 값을 반환하는 메소드입니다. Q4. 왜 equals() 메소드를 오버라이딩해서 재정의 해야 하는가? A4. equals() 메소드는 두 객체의 해시코드 값을 비교하는데 이를 물리적 비교라고 합니다. 그런데, equals() 메소드를 통해 두 객체를 ..

Java 2022.05.13

비트 연산자

1. bit와 byte - 컴퓨터는 전자기기임. 즉, 모든 작업을 할 때 전기가 필요함 -> 그런데, 어떻게 전기로 이러한 작업들이 가능할까? - 가장 쉽게 생각하려면 전구를 생각하면 됨 -> 불이 꺼져 있거나 불이 켜져 있거나 -> 컴퓨터는 이러한 단순한 이론에서 시작되어 만들어졌고, 이 기본 사항은 아직 바뀌지 않음 - 즉, 기본적인 처리는 0과 1, 꺼져 있는 것과 켜져 있는 것으로 나뉨 -> 1 bit라는 것은 0과 1로 표시할 수 있는 하나의 단위임 -> 그리고 8 bit는 1 byte가 됨 - 8비트로 나타낼 수 있는 수는 8칸의 공간이 있고, 0과 1로 표현이 가능하기 때문에 2x2x2x2x2x2x2x2 = 256가지의 표현이 가능함 -> 여기서 8비트를 4자리씩 끊으면 4비트 두 개로 표현..

Java 2022.04.30

JVM

JVM이란? - Java Virtual Machine 목표 - JVM의 역할 이해 - JVM의 내부 구조 이해 본문 1) JVM의 3가지 개념 - JVM은 3가지 개념을 담고 있습니다. 그것은 명세, 구현, 인스턴스입니다. 명세 - JVM은 자세한 설계도가 아닌 이렇게 저렇게 해야 한다는 식의 표준화된 정의로 존재합니다. 구현 - 각 JVM 벤더들(Oracle, IBM 등)은 표준화된 정의에 기반해 자신들의 JVM을 별도로 구현하여 사용합니다. 인스턴스 - JVM은 자바 바이트코드로 컴파일된 컴퓨터 프로그램을 실행하는 프로세스입니다. 2) Java 프로그램의 수행 과정 (1) 자바 컴파일러가 자바 소스파일을 컴파일하여 자바 바이트코드(.class 파일)를 생성합니다. (2) 클래스 로더가 .class 파..

Java 2022.04.12