Loading...
2019. 2. 7. 01:20

1.5.2 참조형

참조형은 인스턴스가 위치한 메모리 영역(힙 영역)의 주소를 가지는 자료형이다.주요 참조형으로는 클래스와 배열이 있다. 참조형으로 변수만 선언한 경우(초깃값을 지정하지 않은 경우) 참조할 주소가 없으므로 그 값은 null,즉 아무것도 가리키지 않은 상태가 된다. Note _ 스택 영역과 힙 영역 위 그림에 나오는 메모리 영역에 대해 보충 설명한다. 자바에서는 설정한 값을 메모리 영역에 확보한다. 또한 데이터는 메모리 영역에 있는 스택 영역에 설정된다. 이 때 기본 자료형은 설정할 크기가 정해져 있으므로 스택 영역에 함께 설정된다. 하지만, 클래스 등 참조형 데이터는 인스턴스화 될 때까지 메모리 영역을 어느 정도 사용할지 알 수 없다. 따라서 참조형 데이터는 처음에는 참조 주소를 저장할 수 있는 크기만 확보..

2019. 1. 30. 21:14

1.5 자료형

자바에서 다루는 자료형은 크게 둘로 나눌 수 있다.하나는 기본 자료형이고, 다른 하나는 참조형이다. 둘의 차이점은 다음과 같다. - 기본 자료형은 데이터 값을 직접 가진다.- 참조형은 값을 가진 인스턴스의 참조 주소(메모리상의 배치된 장소)를 가진다. 인스턴스 자체를 가지는 것은 아니다. 1.5.1 기본 자료형기본 자료형은 값을 직접 가진 자료형이다. 따라서 값을 변경하면 데이터의 내용이 직접 치환된다. 기본 자료형에는 다음 표와 같은 것이 있다. 기본 자료형에서 주의할 점은 자료형의 범위를 넘더라도 오류가 발생하지 않는다는 것이다. 양수라면 음수로, 음수라면 양수로 자동 변환해 버리기 때문이다. 예를 들어 int의 최댓값(Integer.Max_VALUE)인 2.147.483.647에 1을 더하면 결과는..

Chapter 1. 자바 interface

자바 interFace는 메서드 집합을 의미한다. 이 interface를 구현하는 클래스는 이러한 메서드를 제공해야 한다. 예를 들어 java.lang 패키지에 정의된 Comparable interface의 소스 코드는 다음과 같다. ----------------------------------------------------------------------------------------------------------------------------public interface Comparable {public int compareTo(T o);}---------------------------------------------------------------------------------------..

Chapter 1 리스트가 두 종류인 이유

JCF를 사용하다 보면 종종 ArrayList와 LinkedList 클래스를 혼동한다. 왜 자바는 List 인터페이스에 두 가지 구현을 제공할까? 둘 중 어느 것을 선택해야 할까? 다음 몇 장에 걸쳐 이에 대한 답을 알아본다. interface와 이를 구현하는 클래스를 살펴보고 인터페이스 프로그래밍 개념에 대해 알아본다. 처음 몇 가지 예제에서 ArrayList, LinkedList와 유사한 클래스를 구현한다. 따라서 이 들의 동작방법과 각각의 장단점을 알게 된다. 어떤 동작은 ArrayList가 빠르거나 저장 공간을 적게 사용하고 다른 상황에서는 LinkedList가 빠르거나 메모리 사용량이 적다. 어느 것이 더 좋을지는 수행하는 동작에 달려 있는 것이다.

시작에 앞서...

이 포스팅은 다음 세 가지 주제를 다룬다. - 자료구조자바 컬렉션 프레임워크 구조로 시작하여 리스트, 맵과 같은 자료구조를 사용하는 방법과 이들이 어떻게 동작하는지를 알아본다. - 알고리즘 분석코드를 분석하고 이 코드가 얼마나 빨리 동작하는지와 얼마나 많은 공간(메모리0이 필요한지를 예측해본다. - 정보 검색앞의 두 주제에 동기를 부여하고 예제가 더욱 흥미롭도록 자료구조와 알고리즘을 활용하여 간단한 웹 검색 엔진을 만들어 본다. 이 세 가지 주제를 다음 흐름으로 다룬다. - List 인터페이스로 시작하여 두 가지 방식으로 이 인터페이스를 구현하는 클래스를 작성한다. 그 다음 ArrayList와 LinkedList 클래스로 작업한 구현을 서로 비교한다. - 트리 모양의 자료구조를 소개하고 첫 번째 응용 프..

2019. 1. 23. 18:40

1.4.2 산술 연산

간단한 앱을 만들면서 자바의 기본적인 산술 연산에 관해 알아보자. 자바에서는 소수점을 포함하지 않는 수는 int로, 소수점을 포함하는 수는 double로 다룬다. 주요 산술 연산자연산자 개요 + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 자바에서는 이런 산술 연산자를 사용해 수치를 계산한다.산술 연산은 일반적인 수치 계산 우선순위와 마찬가지로 다음 순서로 계산한다. . ()로 에워싼 식. *(곱하기), /(나누기), %(나머지). +(더하기), -(빼기) 특수한 산술 연산자 자바에서는 일반적인 산술 연산자 외에도 프로그래밍 언어 특유의 산술 연산자 기술 방법이 있다. 중요한 것을 소개한다. [구문] 특수한 산술 연산자변수 += 변수(혹은 값); // + 외에 -, *, /, %도 이용가능++변수; ..

1.4 기본적인 계산

지금까지 자바의 기본적인 문법을 설명했다. 클래스를 어떻게 선언하고, 그 클래스에서 어떻게 데이터를 설정하는지, 처리를 실행하는 메서드를 어떻게 호출한은지 이해했으리라 생각하낟. 이 절에서는 자바에서 이용할 수 있는 기본적인 연산을 살펴보자. 1.4.1 자바의 주요 연산과 제어 자바에서는 메서드의 처리 내용을 구현하기 위해 계산이나 조건분기 등 당야한 연산과 제어를 한다. 그리고 처리 결과를 호출한 곳으로 반환하거나 특정 형태로 출력하기도 한다. 지금부터 이러한 연산과 제어에 관해 다음 순서대로 설명한다. 1. 산술 연산2. 비교 연산3. 논리 연산4. 제어 구문

2019. 1. 23. 18:00

1.3.7 static 변수와 static 메서드

앞서 클래스에서 생성한 인스턴스의 변수와 메서드를 살펴보았다.인스턴스들은 똑같은 클래스를 바탕으로 하더라도 인스턴스마다 내부의 변숫값과 메서드의 행동이 다르다.하지만 static을 붙임으로써 변수와 메서드를 클래스에서 유일한 것으로 다룰 수 있다. static 변수 static 변수(정적 변수)는 클래스에서 인스턴스를 몇 개 만들어도 메모리에는 단 하나만 생성된다.(상수도 마찬가지이다.) static 변수는 모든 인스턴스에서 같은 값을 공유한다. static 변수 선언은 다음과 같이 한다. [구문] static 변수 선언static 자료형 변수명; 예를 들어 다음 에에서는 Dog 클래스의 static변수인 type에 '포유류'를 대입했다.이렇게 하면 Dog 클래스에서 만든 어느 인스턴스에서도 type을 ..