JavaRush /Java Blog /Random-KO /커피 브레이크 #118. C++과 Java 언어의 차이점은 무엇입니까? Java의 개인 생성자

커피 브레이크 #118. C++과 Java 언어의 차이점은 무엇입니까? Java의 개인 생성자

Random-KO 그룹에 게시되었습니다

C++과 자바의 차이점은 무엇입니까?

출처: Hackernoon 프로그래밍 언어 C++와 Java는 오늘날 가장 인기 있는 언어 중 하나입니다. C++과 Java의 주요 차이점을 살펴보겠습니다. 커피 브레이크 #118.  C++과 Java 언어의 차이점은 무엇입니까?  Java의 개인 생성자 - 1Java는 범용 프로그래밍 언어입니다. 객체지향 언어에 속합니다. Java 창시자는 WORA 원칙인 "한 번 작성하면 어디서나 실행 가능"을 구현하기를 원했습니다. 이는 Java로 작성된 애플리케이션을 개발할 때 JRE(Java Runtime Environment)가 설치되어 있는 한 모든 플랫폼에서 실행될 수 있음을 의미합니다. 프로그램은 Java로 작성된 코드를 바이트코드로 컴파일하여 실행됩니다. 이 형식은 JVM, 즉 Java Virtual Machine을 사용하여 실행됩니다. 따라서 JVM은 JRE(Java Runtime Environment)의 일부입니다. 가상 머신은 플랫폼 독립적입니다. Java에는 GC(Garbage Collector)라는 메모리 관리 메커니즘도 있습니다. 개발자는 객체를 생성하고 JRE는 객체가 중지될 때 가비지 수집기를 사용하여 메모리를 정리합니다. Java 언어의 구문은 다른 C 계열 언어의 구문과 유사합니다. 다음은 그 기능 중 일부입니다:
  • 대소문자 구분 - Java의 사용자와 사용자 ID는 서로 다른 엔터티입니다.

  • 메소드 이름 . 메소드 이름이 한 단어로 구성된 경우 소문자로 시작해야 합니다. 예: firstMethodName() .

  • UpperCamelCase는 클래스 이름을 지정하는 데 사용됩니다. 이름이 한 단어로 구성된 경우 대문자로 시작해야 합니다. 예: FirstClassName .

  • 프로그램 파일의 이름은 대소문자 구분을 고려하여 클래스 이름과 정확히 일치해야 합니다. 예를 들어 클래스 이름이 FirstClassName 인 경우 파일 이름은 FirstClassName.java 여야 합니다 .

  • 식별자는 항상 문자(AZ, az), $ 또는 밑줄 _로 시작합니다.

C++ 언어란 무엇입니까?

C++는 컴파일되고 강력한 형식의 범용 프로그래밍 언어입니다. 절차적, 일반적, 기능적 등 다양한 프로그래밍 패러다임을 지원합니다. 객체 지향 프로그래밍 지원에 대부분의 관심이 집중됩니다. 기본적으로 C++는 컴퓨터에 수행할 작업을 알려주는 명령 집합입니다. 이러한 명령어 세트를 일반적으로 소스 코드 또는 간단히 코드라고 합니다. 명령은 "함수" 또는 "키워드"입니다. 키워드(C/C++ 예약어)는 언어의 기본 구성 요소입니다. 함수는 더 단순한 함수의 관점에서 작성되었기 때문에 복잡한 빌딩 블록입니다. C++ 및 Java 함수의 구조는 책의 내용과 유사합니다. 목차는 책의 장을 표시할 수 있으며, 책의 각 장은 단락으로 구성된 자체 목차를 가질 수 있습니다. 각 단락에는 자체 하위 단락이 있을 수 있습니다. C++에서는 사용할 수 있는 많은 공통 함수와 예약어를 제공하지만 언어를 사용하려면 여전히 함수를 직접 작성해야 합니다.

C++와 Java의 주요 차이점

Java와 C++는 모두 객체 지향 프로그래밍 언어이지만 유사점은 이것이 끝입니다. 그들 사이에는 더 많은 차이점이 있습니다. 물론 프로젝트 개발을 위한 언어 중 하나를 선택하거나 기타 특정 사례를 선택할 때 C++과 Java 사이에는 중요한 차이가 있습니다. 주목해야 할 기준은 다음과 같습니다.

도서관

자바 또는 C++? 어느 도서관이 더 크거나 더 좋나요? Java에는 더 많은 라이브러리가 있습니다. 하지만 어떤 것을 사용하고 어떤 것을 사용하지 않을지 어떻게 알 수 있나요? 다음은 그 중 일부에 대한 간략한 설명입니다.
  • 랭, 유틸리티, nio, io, net.
  • Java에는 GUI 프레임워크 작업을 위한 라이브러리인 javax.swing(오래된 java.awt의 다소 오래된 확장)도 있습니다.
  • java.sound 등을 사용하여 음악을 재생하고 MIDI 파일을 생성할 수도 있습니다.
C++ 언어에는 C 표준 라이브러리와 C++ 표준 라이브러리가 있습니다. 개발자는 먼저 C와 C++의 차이점을 이해해야 합니다. 또한 특정 프로젝트에서 사용할 라이브러리를 연구해야 합니다. Java에는 문서 주석에 대한 지원이 내장되어 있습니다. C++에서는 문서 주석을 지원하지 않습니다. 편리한 온라인 Java 컴파일러를 사용할 수도 있습니다.

입력 메커니즘

Java는 주로 해석되므로 플랫폼 독립적입니다. C++는 객체 코드를 생성합니다. 동일한 코드가 다른 플랫폼에서 실행될 수 없습니다.

스레드 지원

Java에는 스레드에 대한 지원이 내장되어 있습니다. Java에는 새 스레드를 생성하고 시작 메서드를 재정의하기 위해 상속된 스레드 클래스가 있습니다. C++에는 기본 스레딩 지원이 없습니다. 이러한 목적을 위해 표준화되지 않은 타사 라이브러리가 사용됩니다.

지원방법

Java에는 메소드 오버로딩이 있지만 연산자 오버로딩은 없습니다. String클래스는 문자열을 연결하기 위해 + 및 += 연산자를 사용하지 않고 Stringexpressions는 자동 변환 유형을 사용하지만 이는 내장된 특별한 경우입니다. C++에서는 메서드 오버로딩과 연산자 오버로딩을 모두 지원합니다.

메모리 관리

Java는 자동 힙 할당 해제 제어를 지원하지만 소멸자는 지원하지 않습니다. C++에서는 개체가 소멸되면 소멸자 지원이 자동으로 활성화됩니다.

다중 상속

Java는 적어도 C++와 같은 방식은 아니지만 다중 상속을 제공하지 않습니다. 다중 상속은 클래스가 둘 이상의 클래스에서 상속할 수 있는 C++의 기능입니다.

결론

이것이 Java와 C++의 전체적인 차이점입니다. Java 언어는 상업 프로젝트에 이상적입니다. 적어도 은행 및 기타 금융 기관에서는 기존 프로젝트를 유지하고 리팩토링하는 것이 항상 관련성을 유지하기 때문에 대기업에서 큰 수요가 있습니다. 크로스 플랫폼 개발을 매우 잘 처리하고 이를 사용하여 모든 플랫폼용 시스템을 만들 수 있습니다. 그러나 C++에는 메서드 오버로딩과 연산자 오버로딩 지원, 소멸자 지원 등 Java에 비해 다른 장점도 있습니다.

Java의 개인 생성자

출처: Dev.to Java의 생성자는 클래스 이름이나 파일 이름과 동일한 이름을 갖는 특수한 유형의 메소드입니다. 객체를 호출하면 항상 내부 생성자가 호출됩니다. 주로 객체의 상태나 클래스의 변수 값을 초기화하는 데 사용됩니다. 커피 브레이크 #118.  C++과 Java 언어의 차이점은 무엇입니까?  Java의 개인 생성자 - 2이제 개인 생성자가 무엇인지 살펴 보겠습니다. Java를 사용하면 사용법에 따라 메소드를 변경할 수 있습니다. 그렇다면 다른 메소드처럼 생성자를 비공개로 만들 수 있을까요? 그렇다면 개인 생성자의 용도는 무엇입니까? 답변: 예, 개인 액세스 지정자를 사용하여 Java에서 생성자를 개인 생성자로 선언할 수 있습니다. 하지만 생성자를 비공개로 선언하면 클래스의 개체를 만들 수 없다는 점을 기억하세요. 대신 Singleton 디자인 패턴에서 이 전용 생성자를 사용할 수 있습니다. 개인 생성자에 대한 규칙:
  • 클래스가 하위 클래스가 되는 것을 허용하지 않습니다.
  • 클래스 외부에서 객체를 생성하는 것을 허용하지 않습니다.
  • 클래스에 전용 생성자가 있는 경우 클래스를 확장하려고 하면 컴파일 타임 오류가 발생합니다.
  • 다른 클래스에서는 비공개 생성자에 액세스할 수 없습니다.
  • 클래스에 모든 상수 메서드가 있는 경우 개인 생성자를 사용할 수 있습니다.
  • 모든 메소드가 정적이면 개인 생성자를 사용할 수 있습니다.
  • 객체가 초기화되지 않은 경우 공용 함수를 사용하여 개인 생성자를 호출할 수 있습니다.
  • 객체가 이미 초기화된 경우에만 이 객체의 인스턴스를 반환할 수 있습니다.
public class PrivateConstructorDemo
{
     //creating an instance variable of the class Tester
     private static PrivateConstructorDemo pcd;
     //creating a private constructor
     private PrivateConstructorDemo()
     {
     }
    //creating a static method named getInstance()
    public static PrivateConstructorDemo getInstance()
    {
       if(pcd == null)
       {
        //creating a constructor of the class
        pcd = new PrivateConstructorDemo();
       }
     return pcd;
    }
    //main() method
    public static void main(String args[])
    {
     PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
    PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
    //invokes the getInstance() method and prints the corresponding result
    System.out.println(pcd.equals(pcd1));
   }
}
결론:
진실
이제 개인 생성자의 사용 사례를 살펴보겠습니다. 개인 생성자를 사용하는 주요 목적은 객체 생성을 제한하는 것입니다. Private 생성자는 Singleton 디자인 패턴을 구현하는 데에도 사용됩니다. 개인 생성자를 사용하는 옵션은 다음과 같습니다.
  • 정적 멤버 전용 클래스와 함께 사용할 수 있습니다.
  • 정적 유틸리티 또는 상수 클래스와 함께 사용할 수 있습니다.
  • 싱글톤 클래스를 만드는 데에도 사용할 수 있습니다.
  • 팩토리 메소드를 이용한 생성 등 이름 지정에 사용할 수 있습니다.
  • 또한 서브클래싱을 방지하는 데에도 사용됩니다.
  • 여기에는 팩토리 메서드가 포함됩니다.
이 게시물을 통해 Java 생성자에 대해 더 많이 배웠기를 바랍니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION