[JAVA] 참조 타입 - 문자열, 배열
·
Programming Language/자바(JAVA)
JAVA에 데이터 타입은 크게 기본 타입과 참조 타입으로 나누어 진다.참조 타입에 대해 알아보자참조 타입(reference type)참조 타입은 기본 타입과 다르게 값 자체가 아니라 객체가 생성된 메모리 번지를 저장한다.변수들은 스택 영역에 저장되고 변수가 가리키는 객체는 힙 영역에 저장된다.메모리 사용 영역JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역(Runtime Data Area)을 다음과 같이 구분해서 사용한다.메소드 영역바이트코드 파일을 읽은 내용이 저장된다.힙 영역객체가 생성되는 영역이다.객체의 번지(주소)는 메소드 영역의 상수와 스택 영역의 변수를 참조한다.스택 영역메소드를 호출할 때마다 생성되는 프레임이 저장되는 영역이다.메소드 호출이 끝나면 프레임은 자동으로 삭제된다.프레임..
[JAVA] ArrayList, LinkedList 자료구조
·
Programming Language/자바(JAVA)
ArrayList배열 기반 구현인덱스 이용한 접근에 유리요소의 추가와 제거를 리스트의 끝에서 이루어질 때 사용ArrayList 장점배열 기반이기 때문에 인덱스를 이용하여 모든 데이터에 상수 시간 안에 접근이 가능하다.ArrayList 단점List가 꽉 차서 리사이징이 필요하거나 요소를 List의 중간에 삽입하려고 할 때 기존의 요소를 뒤로 한칸씩 일일히 이동해야 한다. 이런 부가적인 연산은 시스템 성능 저하로 이어져 삽입과 삭제가 빈번하게 이루어지는 프로세스의 경우 성능에 치명적일 수 있다.즉, 메모리 낭비도 심하고 리사이징에 시간이 낭비된다.LinkedList불연속적인 노드를 서로 연결한 형태로 구성이중 연결 리스트 기반요소의 추가와 제거를 어느 위치에서나 가능인덱스 이용한 접근이 느림LinkedLis..
Do it! 자바 프로그래밍 입문 / 10장 인터페이스
·
Programming Language/자바(JAVA)
10.1 인터페이스란? 인터페이스 만들기 인터페이스 : 클래스 or 프로그램이 제공하는 기능을 선언하는 역할 즉, 인터페이스는 상수, 메서드를 선언만 하고 클래스가 인터페이스의 메서드의 구현 코드를 작성한다.(예외. 정적 메서드, 디폴트 메소드는 뒤에 나옴) public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } 클래스에서 인터페이스 구현하기 인터페이스에서 선언한 메소드의 구현 코드를 implements한 클래스에서..
Do it! 자바 프로그래밍 입문 / 9장 추상 클래스
·
Programming Language/자바(JAVA)
9.1 추상 클래스란?(+ 추상 클래스를 만드는 이유) 상속받는 클래스를 위해 만드는 클래스이다. 즉, 포괄 개념의 상속 클래스에게 각자 다른 기능을 하는 공통의 추상 메소드를 상속해주기 위해 만드는 클래스이다. 추상 메소드 display()가 있다고 가정할 때 DeskTop과 NoteBook이 display() 함수를 상속받고 각자 다른 기능으로 공통의 display() 함수를 사용하는 것이다. 추상 클래스는 항상 추상 메소드를 포함한다. 추상 메소드의 구현 코드가 없으므로 추상 클래스의 인스턴스를 생성할 수 없다. 형 변환은 할 수 있다. 추상 메소드란? 상속받는 클래스들마다 각자 구현 코드를 작성해서 각자 다른 기능으로 사용 구현 코드와 함수의 몸체('{}')가 없고 ';'를 이용해서 선언한다. 상..
Do it! 자바 프로그래밍 입문 / 8장 상속
·
Programming Language/자바(JAVA)
8.1 상속이란? 클래스 B가 클래스 A를 상속 받는 것은 A의 내용들을 B가 상속 받는 다는 것을 의미한다. 아래처럼 클래스를 선언할 때 extends를 이용해서 상속받는다. class B extends A { } protected 예약어 : 외부에선 접근이 불가능하면서 상속받은 클래스에서는 접근이 가능하게 하는 예약어 |public|외부에서 접근 가능| |protected|자기 자신, 상속 클래스에서만 접근 가능| |private|자기 자신만 접근 가능| 8.2 상속에서 클래스 생성과 형 변환 하위 클래스가 생성되는 과정 하위 클래스 생성 : 상위 클래스 디폴트 생성자 호출 -> 하위 클래스 생성자 호출 super() : 상위 클래스에 접근할 때 사용하는 예약어(매개변수가 있는 생성자를 호출할 수도 ..
Do it! 자바 프로그래밍 입문 / 7장 배열과 ArrayList
·
Programming Language/자바(JAVA)
7.1 배열이란? 배열에 대해 알고 있으니 간단하게 문법만 정리하겠다. 배열 선언 방법 자료형[] 배열 이름 = new 자료형[배열 크기]; 자료형 배열 이름[] = new 자료형[배열 크기]; int[] tmp = new int[5]; // 선언과 동시에 초기화하는 경우 int[] tmp = new int[] {1,2,3,4,5]; // 크기를 설정해줘도 되고 int[] tmp = new int[5] {1,2,3,4,5}; // 설정 안해줘도 됨 int[] tmp = {1,2,3,4,5}; // new int[] 부분을 생략해도 됨 // 선언 먼저 한 후 나중에 초기화하는 경우 int[] tmp; tmp = new int[5]; // new int[] 부분이 필수 배열 길이 나타내는 속성 배열 이름.l..