본문 바로가기

bitcamp/JAVA

(32)
JVM 메모리모델과 Object 클래스 1. JVM 메모리 모델이란? · 자바 가상머신으로 JVM은 메소드, 스택, 힙 총 3개의 영역으로 메모리 공간을 차지하고 있다. · 아래와 같이 참조 변수에 null을 대입하는 경우, 인스턴스에 대한 참조 관계가 소멸되면서 힙 영역에서는 객체가 소멸되지 않은 상태로 메모리를 차지하고 있는데, 이 때 JVM의 Garbage Collection이 힙영역에 있는 인스턴스를 삭제 및 메모리 정리를 한다. (Garbage Collection은 세가지 영역의 메모리를 정리 및 관리) 2. Object class (equals 메소드) ※equals 메소드란? · Object 클래스의 메소드 종류 중 하나이며, 참조하는 인스턴스를 비교하는게 아닌 내용을 비교해주는 기능을 한다. · 아래 예시와 같이 == 연산자는 ..
예외처리 1. 에러와 예외의 차이는? ※에러란? · 시스템에 비정상적인 상황을 말하며, 원인이 로직에서 존재하지 않는다(코딩상의 문제X) · 코딩상의 문제가 아니며 메모리가 꽉 찼을 떄 등의 문제를 말한다. ※예외란? · Exception은 개발자가 구현한 로직에서, 실행 도중 발생하는 정상적이지 않은 상황을 말한다. · 자바의 예외처리 메커니즘은 문제가 발생하는 지점에 대한 정보 출력과 동시에 프로그램을 종료시킨다. 2. try-catch 하는 이유? · 예외가 발생할 수 있는 구문에 예외처리가 되어 있지 않다면 해당되는 시점부터 실행이 끝나버리지만, try~catch를 통해 예외처리가 되어있다면, jvm이 프로그램을 살리기 위해 해당객체로 넘겨서 해결한다. ♣예외 발생 이후의 실행 흐름♣ · 아래와 같이 실행..
interface와 추상클래스_연습문제 1. 아래를 참고하여 SPrinterDriver 와 LPrinterDriver를 작성하시오. **필수 꼭 외우기** · 참고 · 작성 class SPrinterDriver implements Printable { @Override public void print(String doc) { System.out.println("From Samsung printer"); System.out.println(doc); } } class LPrinterDriver implements Printable { @Override public void print(String doc) { System.out.println("Rfom LG printer"); System.out.println(doc); } } 2. 다음 Stac..
interface와 추상클래스 1. interface 에 대하여 설명하시오. · · "자식calss가 구현하라" 라는 의미로 추상메소드를 가지고 있는 것이 intreface이며, 대표적인 표준/규약(강제)이다. (calss가 인터페이스의 메소드들을 구현하지 않는다면 컴파일이 실행되지 않기 때문에 강제성을 띈다) · java 언어는 단일상속만 가능하지만 interface는 다중구현이 가능하며, 원칙적으로 구현부분이 없는 함수는 abstract public를 표기해야 하지만, 컴파일러가 자동으로 삽입하기 때문에 생략이 가능하다. · ex) · interface는 다형성이 적용되며 오버라이딩도 가능하고, 키워드는 interface(추상) - implements(구현) 형태로 사용한다. · 자식class는 추상메소드를 단 한개라도 구현하지 ..
클래스의 상속과 오버라이딩_연습문제 1. 다음은 2차원 상의 한 점을 표현하는 Point 클래스이다. 아래를 참고하여 작성하시오. ​· 참고 ​· 작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class ColorPoint extends Point { String str; public ColorPoint(int x, int y, String str) { super(x, y); this.str = str; } public void setXY(int x, int y) { super.move(x, y); } public void setColor(String str) { this.str = str; } public String toString(String str, int x, int y) { return str ..
클래스의 상속과 오버라이딩 1. Is~A 관계와 Has~A 관계란? · is~a관계: '..은 ..이다' 의미를 지니며, "노트북은 컴퓨터이다", "전기자동차는 차이다" 예시와 같이 상속 관계의 형태를 가진다. · has~a 관계: "CPU와 mainboard는 컴퓨터를 구성한다" 예시와 같이 포함/구성 관계의 형태를 가진다. (is~a 조금이라도 의심스럽다면 has a로 표현) ​ 2. 상속이란? ( UML로 표현해볼 것!) · 부모클래스에서 선언된 필드와 메소드를 자식클래스가 그대로 물려받는 것을 상속이라 정의하며 키워드는 extends를 사용한다. · 자식클래스는 부모클래스의 모든 특성을 지니며, 자식클래스는 추가적인 특성을 더해서 가질 수 있다. (상속의 목적: 공통으로 되어 있는 내용을 한 개의 클래스로 작성하여 상속받아..
배열_연습문제 1. 로또 프로그램을 작성하시오. 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 class Lotto { int[] lotto = new int[6]; public Lotto() { } public int[] getLotto() { int[] lotto = new int[6]; for (int i = 0; i
배열 1. 1차원 배열이란? · 타입이 같은 둘 이상의 데이터 저장이 가능한 1차원 구조의 공간을 말하며, 연속된 공간을 생성하는 것이 배열이다. · 1차원 배열의 선언 방법 int[] ar1 = new int[5]; (길이가 5인 int형 배열) · ex) int[] ar1 = new int[5]; 2. 1차원 배열의 초기화 방법은? · 배열의 생성과 초기과를 동시에 ex) int[] arr = new int[] {1, 2, 3}; ex) int[] arr = {1, 2, 3}; · 배열을 디폴트 초기화 한다면? 기본 자료형(8개) 배열은 모든 요소를 0으로, 참조형은 null로 초기화된다. ex) int[] ar = new int[5]; → 0 0 0 0 0 ex) String[] ar = new Stri..