일반적으로 문자를 다룰 때 기본 데이터 타입 char를 사용합니다. 예제 char ch = a; // 대문자 그리스 오메가 문자의 유니코드 char uniChar = \u039A; // char 배열 char[] charArray ={ a, b, c, d, e }; 그러나 개발 과정에서 기본 데이터 타입 대신 객체를 사용해야 하는 상황을 마주칩니다. 이를 위해 Java는 기본 데이터 타입 char에 대한 래퍼 클래스 Character를 제공합니다. Character 클래스는 문자를 조작하는 데 유용한 여러 클래스(정적) 메서드
일반적으로 숫자를 다룰 때 byte, int, long, double 같은 기본 데이터 타입을 사용합니다. 예제 int i = 5000; float gpa = 13.65f; double mask = 125; 그러나 개발 과정에서 기본 데이터 타입 대신 객체를 사용해야 하는 상황을 마주칩니다. 이를 위해 Java는 래퍼 클래스들을 제공합니다. 모든 래퍼 클래스(Integer, Long, Byte, Double, Float, Short)는 추상 클래스 Number의 서브클래스입니다. 래퍼 클래스 객체는 해당 기본 데이터 타입
결정 제어 구조는 프로그램이 평가하거나 테스트해야 할 하나 이상의 조건을 가지며, 조건이 참으로 결정되면 실행될 문장들과, 조건이 거짓이면 선택적으로 실행될 다른 문장들을 가집니다. 대부분의 프로그래밍 언어에서 발견되는 전형적인 결정 제어 구조의 일반적인 형태는 다음과 같습니다: Java 프로그래밍 언어는 다음 유형의 결정 제어 문을 제공합니다: 번호 문장 & 설명 1 if 문 - if 문은 불리언 표현식과 그 뒤에 오는 하나 이상의 문장으로 구성됩니다. 2
코드 블록을 여러 번 실행해야 하는 상황이 있을 수 있습니다. 일반적으로 문장들은 순차적으로 실행됩니다: 함수의 첫 번째 문장이 먼저 실행되고, 그 다음 두 번째, 이런 식으로 계속됩니다. 프로그래밍 언어는 더 복잡한 실행 경로를 허용하는 다양한 제어 구조를 제공합니다. 루프 문은 문장이나 문장 그룹을 여러 번 실행할 수 있게 하며, 대부분의 프로그래밍 언어에서 루프 문의 일반적인 형태는 다음과 같습니다: Java 프로그래밍 언어는 루핑 요구사항을 처리하기 위해 다음 유형의 루프를 제공합니다. 자세한 내용은 다음 링크를 클릭
Java는 변수를 조작하기 위한 풍부한 연산자 세트를 제공합니다. 모든 Java 연산자를 다음 그룹으로 나눌 수 있습니다: 산술 연산자 관계 연산자 비트 연산자 논리 연산자 대입 연산자 기타 연산자 산술 연산자 산술 연산자는 대수학에서와 같은 방식으로 수학적 표현식에 사용됩니다. 다음 표는 산술 연산자들을 나열합니다: 정수 변수 A가 10을, 변수 B가 20을 가진다고 가정하면: 연산자 설명 예제 + (덧셈) 연산자 양쪽의 값을 더합니다. A
수정자는 정의에 추가하여 그 의미를 변경하는 키워드입니다. Java 언어에는 다음과 같은 다양한 수정자가 있습니다: Java 접근 수정자 비접근 수정자 수정자를 사용하려면 클래스, 메서드, 변수 정의에 해당 키워드를 포함하면 됩니다. 수정자는 문장의 나머지 앞에 위치하며, 다음 예제와 같습니다: 예제 public class className { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWI
변수는 프로그램이 조작할 수 있는 명명된 저장소를 제공합니다. Java의 각 변수는 특정 타입을 가지며, 이는 변수 메모리의 크기와 레이아웃, 해당 메모리에 저장될 수 있는 값의 범위, 변수에 적용할 수 있는 연산 집합을 결정합니다. 모든 변수는 사용 전에 선언해야 합니다. 다음은 변수 선언의 기본 형태입니다: data type variable [ = value][, variable [ = value] ...] ; 여기서 data type은 Java의 데이터 타입 중 하나이고 variable은 변수 이름입니다. 지정된 타입의
변수는 값을 저장하기 위한 예약된 메모리 위치에 불과합니다. 즉, 변수를 생성하면 메모리에 공간을 예약하는 것입니다. 변수의 데이터 타입에 따라 운영체제는 메모리를 할당하고 예약된 메모리에 무엇을 저장할지 결정합니다. 따라서 변수에 서로 다른 데이터 타입을 할당하여 정수, 소수, 문자 등을 저장할 수 있습니다. Java에는 두 가지 데이터 타입이 있습니다: 기본 데이터 타입 참조/객체 데이터 타입 기본 데이터 타입 Java에서 지원하는 8가지 기본 데이터 타입이 있습니다. 기본 데이터 타입은 언어에 의해 미리 정의되
생성자는 객체가 생성될 때 이를 초기화합니다. 클래스와 같은 이름을 가지며 문법적으로 메서드와 유사합니다. 그러나 생성자는 명시적 반환 타입이 없습니다. 일반적으로 생성자를 사용하여 클래스에서 정의한 인스턴스 변수들에 초기값을 주거나, 완전히 형성된 객체를 생성하는 데 필요한 기타 시작 절차들을 수행합니다. 모든 클래스는 생성자를 가지며, 여러분이 정의하든 안 하든 Java는 자동으로 모든 멤버 변수를 0으로 초기화하는 기본 생성자를 제공합니다. 그러나 일단 여러분 자신의 생성자를 정의하면 기본 생성자는 더 이상 사용되지 않습니
Java는 객체 지향 언어입니다. 객체 지향 기능을 가진 언어로서 Java는 다음 기본 개념들을 지원합니다: 다형성 상속 캡슐화 추상화 클래스 객체 인스턴스 메서드 메시지 전달 이 장에서는 클래스와 객체 개념을 살펴보겠습니다. 객체 - 객체는 상태와 행동을 가집니다. 예: 개는 색상, 이름, 품종 같은 상태와 꼬리 흔들기, 짖기, 먹기 같은 행동을 가집니다. 객체는 클래스의 인스턴스입니다. 클래스 - 클래스는 그 타입의 객체가 지원하는 행동/상태를 설명하는 템플릿/청사진으로 정의할 수
Java 프로그램을 고려하면, 서로의 메서드를 호출하며 통신하는 객체들의 집합으로 정의할 수 있습니다. 이제 클래스, 객체, 메서드, 인스턴스 변수가 무엇을 의미하는지 간단히 살펴보겠습니다. 객체 - 객체는 상태와 행동을 가집니다. 예: 개는 색상, 이름, 품종 같은 상태와 꼬리 흔들기, 짖기, 먹기 같은 행동을 가집니다. 객체는 클래스의 인스턴스입니다. 클래스 - 클래스는 그 타입의 객체가 지원하는 행동/상태를 설명하는 템플릿/청사진으로 정의할 수 있습니다. 메서드 - 메서드는 기본적으로 행동입니다. 클래스는 여러
이 장에서는 Java 프로그래밍을 위한 쾌적한 환경 설정의 다양한 측면을 다룹니다. 로컬 환경 설정 아직 Java 프로그래밍 언어 환경을 설정하려 한다면, 이 섹션에서 머신에 Java를 다운로드하고 설정하는 방법을 안내합니다. 환경 설정 단계는 다음과 같습니다. Java SE는 Download Java 링크에서 무료로 다운로드할 수 있습니다. 운영체제에 맞는 버전을 다운로드하세요. 지침에 따라 Java를 다운로드하고 .exe를 실행하여 머신에 Java를 설치하세요. 머신에 Java를 설치한 후에는 환경 변수를 설정하여 올바른
Java 프로그래밍 언어는 원래 James Gosling이 주도하여 Sun Microsystems에서 개발되었으며, 1995년 Sun Microsystems의 Java 플랫폼(Java 1.0 [J2SE])의 핵심 구성 요소로 출시되었습니다. Java Standard Edition의 최신 릴리스는 Java SE 8입니다. Java의 발전과 폭넓은 인기로 다양한 플랫폼에 맞춘 여러 구성이 만들어졌습니다. 예를 들어: 기업용 애플리케이션의 J2EE, 모바일 애플리케이션의 J2ME. 새로운 J2 버전들은 각각 Java SE, Java
Java란? Java는 1995년 Sun Microsystems가 최초 출시하고 나중에 Oracle이 인수한 성숙한 멀티플랫폼 객체지향 언어입니다. JVM(Java Virtual Machine)에서 실행되며 전 세계 수백만 애플리케이션을 구동합니다. 이 글에서 배울 내용: Java의 정의와 핵심 기능 Scala의 정의와 핵심 기능 두 언어 비교 Java 선택 시기와 Scala 선택 시기 Scala란? Scala는 함수형과 객체지향 프로그래밍을 결합한 정적 타이핑 언어입니다. JVM에서 실행되도록 설계되었으며, Scala Nat
Java란? Java는 JVM(Java Virtual Machine)에서 실행되는 플랫폼 독립적 객체지향 언어입니다. 1995년 Sun Microsystems가 최초 출시하고 현재 Oracle이 유지보수하며, Android 앱부터 엔터프라이즈 웹 서비스까지 모든 것을 구동합니다. 이 비교에서 배울 내용: Java와 Python의 기초 개발자가 각 언어를 선택하는 이유 주요 역사적 이정표 기능, 장점, 트레이드오프 유스케이스 시나리오와 산업 채택 연봉 기대치와 커리어 경로 Python이란? Python은 가독성과 간결한 문법으로
Java란? 1995년 Sun Microsystems가 출시한 Java는 James Gosling이 write once, run anywhere를 실현하고자 설계했습니다. 코드는 바이트코드로 컴파일되어 모든 JVM 구현체에서 실행됩니다. 이 글에서 다룰 내용: C#이란? Java와 C#의 역사 각 언어의 핵심 특징 Java와 C#의 핵심 차이점 Java 선택 시기와 C# 선택 시기 양 언어의 장단점 C#이란? C#은 Microsoft가 .NET 생태계의 일환으로 개발한 현대적 객체지향 언어입니다. C sharp라는 이름은 음악
JDK(Java Development Kit)란? JDK는 개발자가 자바 애플리케이션을 작성, 컴파일, 디버그, 실행할 수 있게 해주는 종합 툴킷입니다. 자바 컴파일러(javac), 핵심 클래스 라이브러리, 디버거, JavaDoc 같은 개발 도구 모음을 포함합니다. Windows, macOS, Linux, Solaris용으로 제공되며 여러 버전이 동일 머신에 공존 가능합니다. JRE(Java Runtime Environment)란? JRE는 컴퓨터가 자바 프로그램을 실행할 수 있게 해주는 런타임 패키지입니다. JVM(Java Vi
C++이란? C++은 C에 Simula 67의 객체 지향 기능을 추가해 확장한 강력하고 중간 수준의 프로그래밍 언어입니다. 저수준 메모리 제어와 고수준 추상화를 결합해 게임 엔진, 시스템 소프트웨어, 임베디드 시스템 같은 성능 중요한 애플리케이션에 이상적입니다. Java란? Java는 1991년 Sun Microsystems의 그린 팀이 고안한 고수준, 플랫폼 독립적 언어로, 네트워크, 클라이언트-서버, 엔터프라이즈 애플리케이션을 위해 설계되었습니다. Write once, run anywhere 슬로건은 JVM(Java Virtu
선택 정렬이란? 선택 정렬은 남은 요소 중 가장 작은 것을 반복적으로 선택해 제자리에 놓는 직관적인 비교 기반 알고리즘입니다. 큰 데이터셋에서는 가장 빠르지 않지만, 단순함 덕분에 교육용과 작은 배열에 이상적입니다. 알고리즘 작동 원리 배열의 처음부터 시작합니다. 정렬되지 않은 부분에서 가장 작은 요소를 찾습니다. 현재 위치의 요소와 교환합니다. 정렬된 구간과 정렬되지 않은 구간의 경계를 오른쪽으로 한 칸 이동합니다. 전체 배열이 정렬될 때까지 반복합니다. 자바 구현 아래는 선택 정렬 알고리즘을 정수 배열에 시연하는 간결한
삽입 정렬 알고리즘이란? 삽입 정렬은 작거나 거의 정렬된 데이터셋에 적합한 직관적인 정렬 기법입니다. 각 반복에서 요소를 꺼내 앞의 요소들과 비교해 적절한 위치에 삽입합니다. 삽입 정렬은 최악/평균 경우 O(n²) 시간이지만, 이미 정렬된 배열에서는 선형 성능을 보입니다. 제자리 정렬이며 안정 정렬이고, 상수 추가 공간만 필요합니다. 삽입 정렬 알고리즘 과정 삽입 정렬 워크플로의 시각적 표현: 삽입 정렬 알고리즘 과정 자바 프로그램 예제: 삽입 정렬로 배열 정렬하기 package com.guru99; public cla
java