본문 바로가기

전체66

[JAVA] Call by Reference와 Call by Value의 차이 Call by Value - Call by Value 방식은 함수에 인자를 전달할 때 인자값을 복사하여 전달하는 방식입니다. 이 방식에서는 원본 데이터와 전달된 복사본이 서로 다른 메모리 주소를 가지기 때문에, 함수 내에서 인자의 값을 변경해도 원본 데이터에는 영향을 미치지 않습니다. C, C++, Java, Python 등이 Call by Value 방식을 사용합니다. Call by Reference - Call by Reference 방식은 함수에 인자를 전달할 때 인자의 메모리 주소를 전달하는 방식입니다. 함수 호출 시에 인자로 전달되는 변수의 레퍼런스를 전달하며 해당 주소를 통해 원본 데이터를 직접 수정할 수 있습니다. C++, Swift, PHP 등이 Call by Reference 방식을 지원.. 2023. 12. 25.
[JAVA] 클래스, 객체, 인스턴스의 차이 클래스 - 클래스는 객체지향 프로그래밍에서 특정 객체의 속성과 행위를 정의하는 설계도라고 할 수 있습니다. - 클래스는 멤버변수와 메서드로 구성되며 멤버변수는 해당 클래스의 객체들이 가질 수 있는 상태를 정의하고, 메서드는 객체들이 수행할 수 있는 행위를 정의합니다. 객체 - 객체는 클래스에 의해 정의된 설계도를 따라 만들어진 실체로, 객체는 클래스의 인스턴스입니다. - 객체는 메모리에 할당되며, 각 객체는 고유한 상태를 가지고 클래스에 정의된 행위(메서드)를 수행할 수 있습니다. 인스턴스 - 인스턴스는 클래스의 객체를 의미합니다. - 클래스를 통해 객체를 생성할 때마다 새로운 인스턴스가 생성되는 것입니다. - 인스턴스는 클래스에 정의된 속성과 행위를 가진 객체로 각 인스턴스는 고유한 상태를 가집니다. .. 2023. 12. 25.
[JAVA] JAVA의 컴파일 과정 컴파일이란? - 고급언어로 작성된 .java 파일을 byte code 즉, .class 파일로 변환하는 과정을 말합니다. 컴파일 과정 1. 프로그래머(개발자)가 java 언어로 소스코드를 작성합니다. 2. javac 컴파일러를 사용하여 .java 소스 파일을 컴파일하고, byte code로 변환된 .class 파일을 생성합니다. 3. 컴파일 된 byte code인 .class 파일을 클래스로더에 전달합니다. 4. 클래스 로더는 동적 로딩을 통해 필요한 클래스를 JVM의 메모리에 올립니다. 5. 실행엔진은 JVM 메모리에 올라온 byte code들을 인터프리터 방식 혹은 JIT 컴파일러 방식으로 실행합니다. 2023. 12. 25.
[JAVA] 객체 지향 프로그래밍이란? 객체 지향 프로그래밍 - 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 객체 지향 프로그래밍의 특징 - 객체 지향 프로그래밍은 객체 중심의 프로그래밍으로 상속, 캡슐화, 추상화, 다형성이라는 네 가지 특성이 있습니다. 1. 상속은 기존 클래스를 기반으로 새로운 클래스를 정의하는 것을 의미합니다. 2. 캡슐화는 객체의 속성과 행위를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉하는 것입니다. 3. 추상화는 객체의 공통적인 특성을 추출하는 것으로, 변수 또는 메소드를 하나로 묶어 단순화하는 것입니다. 4. 다형성은 동일한 인터페이스에 대해 다른 기능을 제공하는 것을 의미합니다. 즉, 하나.. 2023. 12. 24.
[JAVA] 오버로딩과 오버라이딩의 차이 오버로딩 - 오버로딩은 하나의 클래스에서 동일한 이름을 가지는 메소드를 중복해서 정의하는 것입니다. 메소드 이름은 같지만, 매개변수가 달라서 메소드 호출 시 어떤 매개변수를 사용하는지에 따라 호출되는 메소드가 달라집니다. 오버라이딩 - 오버라이딩은 상속받은 부모 클래스의 메소드를 재정의하는 것으로, 자식 클래스에서 부모 클래스에 있는 메소드와 동일한 이름의 메소드를 재정의하는 것입니다. 2023. 12. 24.
728x90