본문 바로가기

java2

Java가 C에 비해 느린 이유 08.27.2023 0. Background 면접을 볼 때 나올 수 있는 질문 리스트중에 하나였는데 한 번도 생각해 본 적 없어서 이 기회에 정리해 보려 한다. 1. 객체지향 언어 vs 절차지향 언어 모두 알다싶이 자바는 객체지향, C는 절차지향 언어이다. C는 함수단위로 코드가 작성되지만 자바는 클래스 단위로 작성되고, 클래스는 인스턴스로 만들어져 메모리에 저장이 되어야 하기 때문에 이 부분에서 속도에 영향이 간다. 또한, 기본적으로 동적할당 기법을 사용해 필요할 때만 메모리에 올려 접근하는 방식을 채택했기 때문에 이 부분에서도 속도의 차이가 발생하게 된다. 2. JVM(Java Virtual Machine) C의 컴파일 절차는 단순히 코드를 기계어로 번역시켜 exe 파일을 만들어 실행시키는 것이다. .. 2023. 8. 27.
자바 인터페이스 vs 추상클래스 (Java Interface vs Abstract Class) 06.16.2023 1. 인터페이스(Interface)와 추상클래스(Abstract Class)의 정의(Definition) 1-1. 추상클래스의 정의 하나 이상의 메소드가 abstract이다. 미완성 설계도라고 볼 수 있다. 1-2. 인터페이스의 정의 모든 메소드가 abstract이다. 청사진(Blue Print)라고 볼 수 있다. 2. 공통점 (Things In Common) 2-1. 하는 일 추상클래스와 인터페이스가 하는 일은 상속받는 클래스가 추상메소드를 구현하도록 하는 것이다. 2-2. 인스턴스화 할 수 없다. new 키워드의 사용이 불가능하다 3. 차이점 (Differences) 3-1. 존재 이유 추상클래스는 자식 클래스들이 상속받아 추상메소드들의 기능 확장 및 이용이 존재 이유이다. 인터페.. 2023. 6. 16.