본문 바로가기
반응형

면접7

[Java] Call by Reference와 Call by Value의 차이 Call by Reference와 Call by Value는 프로그래밍 언어에서 함수나 메소드로 값을 전달하는 방식에 관한 중요한 개념입니다. 두 방식의 주요 차이점은 값을 어떻게 전달하고 메모리에 어떻게 저장하는가에 있습니다. 이제 두 방식을 자세히 알아보겠습니다. 💡 Call by Value (값에 의한 호출) 매개변수로 전달되는 값(인자)의 복사본이 함수에 전달됩니다. 이 복사본을 함수 내에서 사용하며, 함수 내에서 변수 값 변경은 호출자(caller)에게 영향을 미치지 않습니다. Call by Value는 주로 기본 데이터 타입(정수, 실수, 불린 등)에 대해 적용됩니다. 호출자와 호출된 함수가 서로 다른 메모리 공간에 위치한 복사본을 사용하는 방식입니다. 1 2 3 4 5 6 7 8 9 10 1.. 2023. 10. 12.
[Java] Interface와 Abstract Class의 차이 💡Interface 추상 메서드만 포함: 인터페이스는 추상 메서드의 집합으로 이루어져 있습니다. 추상 메서드는 구현 내용이 없고 메서드 시그니처만 정의됩니다. 클래스가 인터페이스를 구현하면 해당 클래스는 인터페이스에 정의된 모든 메서드를 구현해야 합니다. 다중 상속 지원: Java에서 클래스는 단일 상속만 허용되지만, 여러 인터페이스를 구현할 수 있습니다. 이로 인해 다중 상속의 일부 장점을 활용할 수 있습니다. 구현을 강제함: 클래스가 인터페이스를 구현하면 그 인터페이스에 정의된 모든 메서드를 반드시 구현해야 합니다. 이를 통해 특정한 동작을 보장하고, 코드의 일관성을 유지합니다. 인스턴스 생성 불가: 인터페이스는 객체를 직접 생성할 수 없습니다. 따라서 인터페이스를 구현한 클래스의 인스턴스를 생성하여.. 2023. 10. 11.
[Java] 캡슐화와 은닉화의 차이 💡캡슐화 (Encapsulation) 캡슐화는 데이터와 데이터를 다루는 메서드(함수)를 하나의 단위로 묶는 것을 의미합니다. 캡슐화는 클래스 내부에 멤버 변수(필드)와 해당 변수를 다루는 메서드(게터 및 세터)를 정의함으로써 구현됩니다. 주요 목적은 데이터와 데이터를 다루는 메서드를 노출시키지 않고, 외부에서의 직접적인 접근을 제어하여 데이터의 무결성과 보안을 유지하는 것입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public class Student { private String name; // 멤버 변수, private으로 캡슐화 private int age; public String getName() { // 게터 메서드, 데이터 반환 return name; } public voi.. 2023. 10. 4.
[Java]Java의 String이 불변객체인 이유 💡Java의 String이 불변객체인 이유 불변 문자열은 수정되지 않는 한 가지 문자열 값을 나타내며, 새로운 문자열을 생성할 때 기존 문자열을 변경하는 대신 새로운 문자열 객체를 생성합니다. 즉, 객체가 변수에 할당되면 참조를 업데이트하거나 내부 상태를 어떤 방법으로도 변경할 수 없습니다. String이 불변객체인 이유는 다음과 같습니다. 📌보안 문자열은 자주 암호화되어야 하며, 암호화된 문자열을 수정할 수 없도록 보호해야 합니다. 불변 문자열은 암호화나 해싱과 같은 변형 작업에서 안전합니다. 📌스레드 안전성 불변 문자열은 여러 스레드에서 동시에 공유될 때 스레드 안전합니다. 스레드 간의 경합 조건(Race Condition)과 같은 문제를 방지합니다. 📌 캐싱과 재사용 불변 문자열은 자주 사용되는 문.. 2023. 10. 2.
반응형