자바는 정수, 실수, 논리값을 저장할 수 있는 기본(primitive) 타입 8개를 다음과 같이 제공한다.정수 타입은 총 5개로, 다음과 같이 메모리 할당 크기와 저장되는 값의 범위를 가지고 있다.C언어와 비교해보자.C언어와 비교해보면 short, int는 동일하며 자
오버플로우(overflow)란 타입이 허용하는 최대값을 벗어나는 것을 말한다.반대로 언더플로우(underflow)는 타입이 허용하는 최소값을 벗어나는 것을 말한다.정수 타입 연산에서 오버플로우 또는 언더플로우가 발생되면 에러가 발생할 것 같지만, 실제로는 그렇지 않고
코드 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 흐름 제어문이라고 한다.제어문은 조건식과 중괄호 { } 블록으로 구성되는데, 조건식의 연산 결과에 따라 블록 내부의 실행 여부가 결정된다.제어문의 종류는 다음과 같다.if 문은 조건식의 결과에 따라
자바의 데이터 타입은 크게 기본 타입과 참조 타입으로 분류된다. 기본 타입은 2장에서 다뤘고 이번장에서는 참조 타입을 다룰 예정이다. 참조 타입이란 객체의 번지(주소)를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입이 있다.다음은 자바의 데이터 타입 분류를
소프트웨어를 개발할 때 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP - Object Oriented Programming)이라고 한다.객체(Object)란 물리적으로 존재하거나 개념적인 것 중에서 다른
상속(Inheritance)은 부모가 자식에게 물려주는 행위를 말한다. 객체 지향 프로그램에서도 부모 클래스의 필드와 메소드를 자식 클래스에게 물려줄 수 있다.상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단
인터페이스 역할 > 인터페이스(Interface)는 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 여기서 두 장치를 서로 다른 객체로 본다면, 인터페이스는 이 두 객체를 연결하는 역할을 한다. 다음 그림과 같이 객체 A는 인터페이스를 통해 객체 B를 사용할 수
객체 지향 프로그램에서는 클래스 간에 서로 긴밀한 관계를 맺고 상호작용한다. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다.중첩 클래스(
라이브러리(library)는 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 말한다.일반적으로 JAR(Java Archive) 압축 파일(~.jar) 형태로 존재한다. JAR 파일에는 클래스와 인터페이스의 바이트코드 파일(~.class)들이 압축
예외와 예외 클래스 > 컴퓨터 하드웨어의 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 자바에서는 에러라고 한다. 프로그램을 아무리 견고하게 만들어도 개발자는 이런 에러에 대처할 방법이 전혀 없다. 자바에서는 에러 이외에 예외(Exception)라고 부르는 오
자바 표준 모듈에서 제공하는 라이브러리는 방대하기 때문에 쉽게 사용할 수 있도록 도와주는 API(Application Programming Interface) 도큐먼트가 있다. 라이브러리가 클래스와 인터페이스의 집합이라면, API 도큐먼트는 이를 사용하기 위한 방법을
제네릭(Generic)이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능을 의미한다.다음과 같이 Box 클래스를 선언하려고 한다. Box에 넣을 내용물로 content 필드를 선언하려고 할 때 타입을 무엇으로 해야
운영체제는 실행 중인 프로그램을 프로세스(Process)로 관리한다. 멀티 태스킹(Multi tasking)은 두 가지 이상의 작업을 동시에 처리하는 것을 말하는데, 이때 운영체제는 멀티 프로세스를 생성해서 처리한다.하지만 멀티 태스킹이 꼭 멀티 프로세스를 뜻하지는 않
자바는 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜놓았다. 이들을 총칭해서 컬렉션 프레임워크라고 부른다.컬렉션 프레임워크에는 몇 가지 인터페이스르 통해서 다양
자바는 함수형 프로그래밍을 위해 Java8부터 람다식(Lambda Expressions)을 지원한다. 람다식은 데이터 처리부에 제공되는 함수 역할을 하는 매개변수를 가진 중괄호 블록이다. 데이터 처리부는 람다식을 받아 매개변수에 데이터를 대입하고 중괄호를 실행시켜 처리
Java 8부터는 컬렉션 및 배열의 요소를 반복 처리하기 위해 스트림(Stream)을 사용할 수 있다.스트림은 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다.List 컬렉션에서 요소를 반복 처리하기 위해 스트림을 사용하면 다음과 같다.List 컬렉션의 str
데이터는 키보드를 통해 입력될 수도 있고, 파일 또는 프로그램으로부터 입력될 수도 있다.반대로 데이터는 모니터로 출력될 수도 있고, 파일에 저장되거나 다른 프로그램으로 전송될 수 있다.이것을 총칭해서 데이터 입출력이라고 한다.자바는 입력 스트림과 출력 스트림을 통해 데
네트워크(Network)는 여러 컴퓨터들을 통신 회선으로 연결한 것을 말한다.LAN(Local Area Network)은 가정, 회사 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것이고, WAN(Wide Area Network)은 LAN을 연결한 것이다.WAN이 우리가
자바는 데이터베이스(DB)와 연결해서 데이터 입출력 작업을 할 수 있도록 JDBC(Java Database Connectivity) 라이브러리(java.sql 패키지)를 제공한다. JDBC는 데이터베이스 관리 시스템(DBMS)의 종류와 상관 없이 동일하게 사용할 수 있