본문 바로가기

Java

(29)
추상클래스 추상클래스란 추상메서드를 멤버로 가지고 있는 클래스를 추상클래스라고 한다. 추상메서드란 abstract키워드가 붙은 메서드를 의미한다. ex) abstract void method(); 추상메서드는 구현을 하지 않고 선언만 한 상태이며 추상메서드를 상속받은 클래스는 반드시 추상메서드를 오버라이딩(구현) 해야한다.그렇기 때문에 추상 메서드는 추상클래스를 상속받은 자식 클래스들이 해당 메서드를 반드시 오버라이딩하게 강제성을 부여하며 자식클래스마다 메서드의 이름은 동일하지만 다른 기능을 정의해야 할 때 추상 메서드를 사용한다. 추상 클래스 abstract public class AbstractParent { private int a; // 이 클래스 내부에서만 사용가능 int b;// default 접근제어자..
메모리구조(stack, heap, method area) Runtime Data Areas는 JVM이 OS로부터 받아온 메모리 영역을 의미한다. Runtime Data Areas는 크게 3가지의 영역으로 나누어지게 된다. 1. Method Area 2. Stack 3. Heap method Area method Area는 클래스에 대한 정보(필드, 메서드정보, 타입에 대한 정보)가 저장되며 static변수, 메서드의 바이트 코드 등을 저장한다. method Area안에 있는 RunTime Constant Pool에는 클래스와 인터페이스에 대한 모든 constant 정보가 들어있으며 type, file, method에 대한 Symbolic reference정보가 있다. stack 스택에는 메서드가 실행될 때마다 stack frame이 생성된다. stack fra..
가변배열, 가변인자 자바에서의 다차원 배열은 배열을 참조하는 참조변수의 배열을 참조변수가 가리키는 방식이다. 코드로 보면 이해가 쉽다. package test; import java.util.Arrays; public class Test { private static final int COLUMN = 5; private static final int ROW = 3; static int num = 0; public static void main(String[] args) { // 가변배열 생성 String[][] a = new String[ROW][]; for (int i = 0; i < a.length; i++) { a[i] = new String[COLUMN - i] ; for (int j = 0; j < a[i].len..
arraycopy 메서드를 이용한 배열의 복사 System.arraycopy() 메서드를 이용해서 배열의 값을 복사할 수 있다. for문을 사용한 것보다 효율적이라는 장점이 있다. 사용법 System.arraycopy(from객체, 복사시작 index, to객체, to객체의 복사시작 index, 복사할 원소의 개수); package test; public class Test { public static void main(String[] args) { int[] fromArr = {10, 20, 30, 40, 50}; int[] toArr = new int[fromArr.length]; System.arraycopy(fromArr, 0, toArr, 0, fromArr.length); int i = 0; for(int a : toArr) { Syste..