728x90

Language/Java 33

[Java] 자바 API 클래스 - StringBuffer 클래스

java.lang 패키지 java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. java.lang.StringBuffer 클래스 String 클래스의 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고 변경할 수는 없다. 하지만 StringBuffer 클래스의 인스턴스는 그 값을 변경할 수도 있고 추가할 수도 있다. 이를 위해 StringBuffer 클래스는 내부적으로 버퍼(buffer)라고 하는 독립적인 공간을 가진다. 버퍼 크기의 기본값은 16개의 문자를 저장할 수 있는 크기이며 생성자를 통해 그 크기를 별도로 설정할 수도 있다. 하지만..

Language/Java 2024.04.11

[Java] 자바 API 클래스 - String 클래스

java.lang 패키지 java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. java.lang.String 클래스 C언어에서는 문자열을 char형 배열로 표현하지만, 자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공한다. String 클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메소드가 포함되어 있다. String 클래스는 java.lang 패키지에 포함되어 제공된다. String 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없는데, 이런 객체를 자바에서는 불변 객체(imm..

Language/Java 2024.04.11

[Java] 자바 API 클래스 - Object 클래스

java.lang 패키지 java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. java.lang.Object 클래스 java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Object 클래스다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스로, 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다. Object 클래스는 필드를 가지지 않으며, 총 11개의 메소드만으로 구성되어 있다. toString() 메소드 toString() 메소드는 해당 인스턴스에 대한 정보를 문자열로 반환한다. 이때 반..

Language/Java 2024.04.11

[Java] 자바 다형성 - 타입 변환 확인, 추상클래스, 인터페이스, 내부클래스

다형성(polymorphism)이란? 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 자바에서는 다형성을 위해 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하고 있다. 이때 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 같거나 적어야 참조할 수 있다. 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다. 참조 변수의 다형성 특정 타입의 참조 변수로는 당연히 같은 타입의 인스턴스를 참조할 수 있다. 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수와 같기 때문이다. 부모 클래스 타입의 참조 변수로도 자식 클래스 타입의 인스턴스를 참조할 수 ..

Language/Java 2024.04.11

[Java] 자바 상속 - 부모/자식 클래스, super/super(), 메소드 오버라이딩

상속(inheritance)이란? 상속(inheritance)이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다. 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성할 수 있다. 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 또는 상위 클래스(super class), 기초 클래스(base class)라고 한다. 그리고 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 또는 하위 클래스(sub class), 파생 클래스(derived class)라고 한다. 상속의 장점 기존에 작성된..

Language/Java 2024.04.10

[Java] 자바 제어자 - default, public, private, protected, final, static, abstract

패키지(package) 자바에서 패키지(package)란 클래스와 인터페이스의 집합을 의미한다. 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있으며, 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있다. 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분된다. 패키지의 선언 아래와 같은 명령문을 클래스나 인터페이스의 소스 파일에 추가하기만 하면 된다. 이때 패키지 이름에는 패키지의 경로까지 포함한 풀 네임..

Language/Java 2024.04.10

[Java] 자바 클래스 - 인스턴스, 필드, 메소드, 생성자

객체 지향 프로그래밍(OOP, Object-Oriented Programming) 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 된다. 객체(object)란 실생활에서 우리가 인식할 수 있는 사물로 설명할 수 있으며, 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍이다. 클래스(class)란? 자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다. 자바에서는 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용한다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다. 필드(field)란 클래..

Language/Java 2024.04.07

[Java] 자바 배열 - 1차원, 2차원, 다차원 배열 (feat. 메모리 구조)

메모리 구조 모든 자바 프로그램은 자바 가상 머신(JVM)을 통해서 실행된다. 자바 프로그램이 실행되면, JVM은 운영 체제로부터 해당 프로그램을 수행할 수 있도록 필요한 메모리를 할당받는다. 이렇게 할당받은 메모리를 JVM은 용도에 따라 다음과 같이 구분하여 관리한다. 메소드(method) 영역 메소드(method) 영역은 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 클래스 변수(static variable)가 저장되는 영역이다. JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(*.class)를 읽어들여, 해당 클래스에 대한 정보를 메소드 영역에 저장한다. 힙(heap) 영역 힙(heap) 영역은 자바 프로그램에서 사용되는 모든 인스턴스 변수가 저장되는 영역이다. ..

Language/Java 2024.04.07

[Java] 자바 제어문 - If, Switch, While, For, Continue, Break, Label

제어문(control flow statements) 프로그램의 순차적인 흐름을 제어해야만 할 경우가 생기는데 이때 사용하는 명령문을 제어문이라고 하며, 이러한 제어문에는 조건문, 반복문 등이 있다. 이러한 제어문에 속하는 명령문들은 중괄호({})로 둘러싸여 있으며, 이러한 중괄호 영역을 블록(block)이라고 한다. 조건문(conditional statements) 조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다. if 문 if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다. if 문에서 실행될 명령문이 한 줄 뿐이라면 중괄호({})를 생략할 수 있다. if (조건식) { 조건식의 결과가 참일 때 실행하고..

Language/Java 2024.04.06

[Java] 자바 연산자 - 산술, 대입, 증감, 비교, 논리, 비트, 삼항, instanceof (feat. 우선순위)

연산자(operator) 산술 연산자(arithmetic operator) 산술 연산자는 사칙연산을 다루는 연산자로, 가장 기본적이면서도 가장 많이 사용되는 연산자 중 하나다. 산술 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다. int num1 = 8, num2 = 4; System.out.println(num1 + num2); // 12 System.out.println(num1 - num2); // 4 System.out.println(num1 * num2); // 32 System.out.println(num1 / num2); // 2 System.out.println(num1 % num2); // 0 대입 연산자(assignment ope..

Language/Java 2024.04.06
728x90