CS 질문 리스트 200개

자바

  • 순차지향, 절차지향, 객체지향 프로그래밍이란?

    • 순차지향과 절차지향의 차이점은 메서드의 존재 여부라고 생각합니다. 절차지향에서는 메서드가 생기면서 데이터를 다룰수있고, 같은 메서드를 활용하는 등이 가능해졌다고 생각합니다. 객체지향에서는 객체 즉 클래스라는 개념이 생기면서 클래스와 관련된 것들을 메소드, 변수로 둠으로써 절차지향과는 또 다른 프로그래밍이 가능해졌습니다. - 객체에 어떤 메시지를 전달할 수 있게 됐다. - 객체가 어떤 책임을 지게 됐다. - 객체는 어떤 책임을 처리하는 방법을 스스로 알고 있다. 근데 C언어에서는 구조체를 활용해 구조체 단위로 책임을 할당할 수 있게 되기 때문에 약간 부족하다. 객체지향에서는 책임을 객체에 할당하지 않고, 객체를 추상화한 역할에 책임을 할당한다. 이로써 객체지향 언어의 특징 중 하나로 다형성이 있는 것이다.

  • 그럼 객체지향을 지키기 위한 방법 같은게 있나요?

    • TDA 원칙

      • 객체에게 Getter,Setter를 남발하지 말고, 객체에게 책임을 위임해라.

컴파일 언어 인터프리터 언어 차이

  • 자바는 컴파일 언어와 인터프리터 언어의 장점을 둘 다 차용한 언어라고 할 수 있습니다.

  • 자바는 JVM에서 구동시키기 위해 중간 코드인 바이트 코드로 변환합니다.

  • 이를 JVM이 인터프리터 형식으로 실행시키는데 만약 자주 실행되는 바이트 코드가 있다면 JIT가 이를 파악하여 미리 기계어로 변환해놓아 매번 바이트 코드로 변환하지 않는 성능상 이점을 가져갑니다.

Last updated