📕Java

📕Java

Call by Value와 Call by Reference

🔎메소드를 호출할 때 파라미터를 전달하는 방법에는 크게 두 가지가 있습니다. 이는 값에 의한 전달(Call by Value)과 참조에 의한 전달(Call by Reference)입니다. 각각의 전달 방식에 대해 설명하고, 샘플 코드를 통해 알아보겠습니다. ✅ 값에 의한 전달(Call by Value)값에 의한 전달은 메소드에 파라미터로 전달되는 값의 복사본을 전달하는 방식입니다. 메소드 내에서 전달된 값을 변경하더라도 원본 변수에는 영향을 주지 않습니다. Call by Value는 메서드를 호출할 때 값을 넘겨주기 때문에 Pass by Value 라고도 부릅니다. 메서드를 호출하는 호출자 (Caller) 의 변수와 호출 당하는 수신자 (Callee) 의 파라미터는 복사된 서로 다른 변수입니다. publi..

📕Java

Java의 얕은 복사와 깊은 복사

✅ Java에서 말하는 복사란?복사는 원본을 그대로 둔 채, 동일한 데이터를 가진 새로운 객체를 생성하는 것입니다. 그래서 Java에서 복사는 clone() 메소드를 반드시 사용해야 합니다. 해당 메소드를 사용하지 않고 단순히 참조 변수에 기존 변수를 대입하는 것은 복사가 아닙니다. 단지 대입에 불과합니다. 반드시 clone() 메소드를 통해서 새로운 객체를 생성해야합니다. 객체 안에 필드의 참조 변수를 원본 참조 객체를 참조할지, 원본 참조 변수를 토대로 새로운 참조 객체를 생성할지 여부에 따라 얕은 복사와 깊은 복사로 나뉘는 것입니다. ➡️ Java에서 복사에 필요한 조건은 다음과 같습니다.Clonealbe Interface를 구현해야 한다.Object.clone() 메소드를 오버라이드해서 정의해야 ..

📕Java

String, StringBuffer, StringBuilder

✅ String, StringBuffer, StringBuilder ClassesString, StringBuffer, StringBuilder는 자바에서 문자열을 다루는 클래스들입니다. 🔹StringString은 불변(immutable) 클래스로, 한번 생성된 문자열은 수정이 불가능합니다. 따라서 문자열 연산이 많은 경우, 매번 새로운 문자열 객체를 생성하기 때문에 메모리 사용량이 많아질 수 있습니다. 자바의 String은 변경할 수 없는(immutable) 유니코드 문자의 시퀀스를 포함합니다. 이는 C/C++와 달리 자바의 String은 단순한 char 배열이 아닌 java.lang.String 클래스의 객체입니다. String str = "Hello"; str += " World";위의 코드는 "H..

📕Java

스코프(Scope)의 유형과 범위

✅ 스코프(Scope)란?Scope(범위)는 프로그래밍에서 변수, 함수 및 식별자의 유효 범위를 말합니다. 스코프는 해당 식별자가 어디에서 접근 가능한지를 결정하며, 변수 이름 충돌을 방지하고 코드의 가독성과 유지 보수성을 향상시킵니다. ➡️일반적으로 사용되는 스코프 유형은 다음과 같습니다.전역 스코프(Global Scope)프로그램 전체에서 접근 가능한 범위를 말합니다. 전역 스코프에 선언된 변수와 함수는 어떤 위치에서든 사용할 수 있습니다. 전역 변수는 프로그램이 시작될 때 생성되며, 프로그램이 종료될 때까지 유지됩니다.(자바는 전역변수를 지원하지 않습니다) 지역 스코프(Local Scope)특정 블록 내에서 변수나 함수의 유효 범위를 제한합니다. 일반적으로 중괄호({})로 둘러싸인 코드 블록(예: ..

📕Java

추상화, Abstract Class, Interface

—What are abstraction, abstract class, interface in Java✅ 추상화(Abstraction)란?자바의 추상화는 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 복잡한 시스템이나 개념을 단순화하고 필요한 부분에 집중할 수 있도록 하는 과정입니다. 쉽게 말해서 공통적인 부분은 추상적으로 모으고, 개별적인 부분은 구체적으로 따로 만드는 것입니다. 공통된 특징과 동작을 추상화하여 나타내고, 구체적인 내용은 이를 구현한 객체를 통해서 나타냅니다. 객체 지향 프로그래밍에서는 추상 클래스와 인터페이스를 통해 추상화를 구현합니다. 추상화는 세부적인 내용을 숨기고 중요한 개념이나 특징에 집중함으로써 복잡성을 감소시키는데 도움을 줍니다. 이를 통해 소프트웨어 개발자는 복잡한 시스..

📕Java

Java의 접근 제어자(Access Modifiers)

access modifiers을 지칭할 때 "접근 지시자”, “접근 제어 지시자”, “접근 제어자”, “접근 제한자” 등은 동일한 의미로 사용되고 있습니다. 아래에서는 접근 제어자로 통일하겠습니다. ✅ 접근 제어자의 사용이유 : 캡슐화객체 지향 프로그래밍에서 캡슐화는 클래스의 데이터(상태)와 그 데이터를 조작하는 메소드(행동)를 하나로 묶는 것을 의미합니다. 이렇게 하면 클래스의 내부 구조를 외부에서 직접 접근하거나 변경하는 것을 제한하고, 메소드를 통해서만 데이터를 변경하거나 액세스할 수 있게 합니다. 즉, 데이터를 '캡슐' 안에 보호하고, 외부에서는 해당 '캡슐'에 어떻게 접근하고 조작할 수 있는지에 대한 인터페이스만 제공하는 것입니다. 자바에서는 이를 구현하기 위해 접근 제어자(access modi..

📕Java

Java의 패키지란?

What is Java's package? Package structure and naming rules✅ 패키지(Package)자바에서 `package` 키워드는 클래스를 패키지에 속하도록 정의하는 데 사용됩니다. 패키지는 클래스들을 논리적으로 그룹화하고, 클래스들 간의 이름 충돌을 방지하고, 코드의 구조화를 도와주는 역할을 합니다. 여러 가지 이유로 `package` 키워드를 사용하는 이유는 다음과 같습니다 이름 충돌 방지패키지는 동일한 이름을 가진 클래스들을 구분할 수 있도록 해줍니다. 서로 다른 패키지에 속한 클래스들은 같은 이름을 가질 수 있습니다. 이를 통해 다른 패키지에서 동일한 이름의 클래스를 사용할 때 이름 충돌을 방지할 수 있습니다. 코드 구조화패키지는 클래스들을 그룹화하여 코드를 구조..

📕Java

Java의 Compile Error, Runtime Error란?

What is Complile Error, Runtime Error? ✅ 컴파일 오류(Compile Error)컴파일 오류는 소스 코드를 컴파일하는 동안 발생하는 오류입니다.이러한 오류는 코드의 구문이나 타입 검사, 변수 선언 등과 같은 규칙에 어긋나는 경우에 발생합니다.컴파일러는 이러한 오류를 감지하고 해당 줄의 오류를 보고합니다.컴파일 오류가 발생하면 프로그램이 컴파일되지 않고 실행되지 않으며, 오류를 수정해야 합니다.일반적인 컴파일 오류 예시: 문법 오류, 타입 불일치, 선언되지 않은 식별자 등 👉 아래는 컴파일 오류의 Syntax(문법) 오류에 대한 예시 코드입니다.System.out.println("The value of x is: " + x; ^ 1 error 위의 코드에서는 System.ou..

📕Java

클래스와 객체(인스턴스)

✅ 클래스와 객체클래스란 ‘객체를 정의해 놓은 것’, 또는 ‘객체의 설계도, 틀’이라고 할 수 있습니다. 클래스는 관련된 데이터와 메서드(기능)의 집합으로, 객체를 생성하는데 사용됩니다. 객체는 클래스의 인스턴스(실체)로, 클래스에 정의된 데이터와 메서드를 사용할 수 있습니다. 즉, 객체를 만들기 위해 구성하는 틀이라고 생각하면 됩니다. 현실 세계의 자전거를 빗대어 클래스에 대해 알아보겠습니다.현실 세계의 자전거는 아래와 같은 데이터를 가지고 있고, 특정한 동작을 수행합니다. 🔻클래스 : 자전거 (Bicycle)—속성 (데이터):색깔 (color): 빨강, 파랑, 노랑 등브랜드 (brand): Giant, Trek, Cannondale 등가격 (price): 정수나 실수로 표현되는 가격속도 (speed)..

📕Java

매개변수와 인수의 차이

🔎 매개변수란?매개변수(parameter)함수 또는 메서드의 선언 부분에서 정의된 변수를 말합니다. 변수의 타입과 이름이 정의됩니다. 매개변수는 함수 또는 메서드가 호출될 때에 전달되는 인수(argument)를 받아들이기 위해 사용됩니다. 매개변수는 함수 또는 메서드 내부에서 사용되는 지역 변수의 역할을 합니다. 즉, 메소드가 종료되면 그 값도 소멸하게 됩니다. 메소드를 정의할 때 넘겨주는 타입과 변수명은 파라미터이다. 🔎 인수란?인수(Argument)함수 또는 메서드를 호출할 때 전달되는 값들을 말합니다. 호출 시에 실제로 전달되는 값들을 인수라고 합니다. 인수는 파라미터와 일치하는 순서로 전달되며, 함수 또는 메서드 내부에서 해당 인수들을 활용하여 동작을 수행합니다. 메소드를 실행할 때 넘겨주는 변수..

jhcode33
'📕Java' 카테고리의 글 목록 (3 Page)