Java를 사용하여 게임을 작성하고 C ++을 사용하여 게임을 작성했으며 Java의 강점과 약점을 염두에 두는 한 Java가 훌륭하다는 것을 알았습니다. Java 프로그래밍의 가장 큰 두 가지 장점은 개발 속도와 배포 가능성 / 이동성입니다. 컴파일 시간은 VC ++ (XCode 또는 Clang에 대해서는 말할 수 없음)보다 훨씬 빠르므로 문제를 훨씬 빨리 해결할 수 있습니다. 또한 Eclipse가 지속적으로 컴파일되면서 오타 유형 오류가 줄어 듭니다. 다른 시스템이나 컴파일러에서 작동하는 C ++ 코드를 작성한 적이 없습니다. 자바에서는 이것이 표준입니다.
반면에 Java에는 몇 가지 주요 단점이 있습니다. 효율성은 종종 Java를 사용하지 않는 이유에 따라 결정되지만 특정 방식으로 코딩하는 한 Java가 성능이 우수하다는 것을 알았습니다. 문제는 코딩해야 할 특정 방법이 많은 Java 사람들이 좋은 디자인을 고려하는 것과 반대되는 것입니다.
Java의 핵심은 '가비지 수집기'이며 메모리 관리 시스템입니다. 효율적인 코드를 작성할 때 모든 언어의 모든 프레임에서 동적 할당을 피하려고합니다. 이는 특히 Java에 해당됩니다. 너절한 새로 인해 가비지 수집기를 끄면 부드러운 프레임 속도로 작별 인사를 할 수 있습니다. 둘째, (그리고 가장 성가신) Java는 1 급 사용자 데이터 형식을 지원하지 않습니다. Java의 모든 사용자 데이터 유형은 기본적으로 힙에 할당 된 클래스에 대한 포인터로 인스턴스화됩니다. 이것은 Vector3 객체 배열과 같은 것을 가질 수없고 메모리에 동시 적으로 가질 수있는 캐시 동시성에 대해 끔찍합니다. Vector3 포인터 배열을 가질 수는 있지만 전혀 같은 것은 아닙니다. 일반적으로 대신 기본 유형의 큰 배열에 오프셋을 사용해야합니다.