본문 바로가기
반응형

Language15

인터페이스와 추상클래스의 차이 인터페이스란 동일한 행위를 클래스들이 구현하도록 지정한 추상 자료형으로 일종의 계약서 또는 설계서이다.추상클래스란 하나 이상의 추상 메서드를 포함한 클래스를 추상 클래스라고 하며 복제와 확장의 목적으로 쓰인다.(추상 메서드 없이 추상 클래스 선언 가능하나 구체 클래스와 차이가 없음) 인터페이스와 추상클래스에 대한 정의를 간단하게 한줄로 표현해봤다.인터페이스와 추상클래스는 모두 인스턴스화가 불가하고 구현체에서 추상 메서드를 반드시 오버라이딩 해야한다는 공통점이 있다.허나, 인터페이스와 추상 클래스는 구조적으로 큰 차이가 있고, 이에 의하여 그 사용성에도 큰 차이점을 드러낸다. 인터페이스와 추상클래스의 차이점구현부의 존재여부(캡슐화)다중상속 여부is-a와 can-do 관계이외에도 많은 차이가 있지만 이 두가.. 2023. 11. 15.
java.lang.OutOfMemoryError: Java heap space 오류 해결 안녕하세요. 실서버에서 스프링 프로젝트를 호스팅하여 운영하던 중에 java.lang.OutOfMemoryError 가 나타났습니다. 서버관리가 초보라 처음 보는 에러였기 때문에 여기저기 구글링을 하며 오류를 미연에 방지하고 다음에 또 비슷한 유형의 에러가 나오면 빨리 해결할수 있도록 자바 메모리에 대해 깊이있게 공부를 해보았습니다. 자바 메모리 구조가 궁금하신 분들은 밑의 링크를 참조하여주세요. 제가 이번 에러를 통해 여기저기 글을 참조하며 최신 자바 버전에 맞게 변경된 내용까지 포함한 내용입니다. 글을 읽어보고 오류 해결방법을 읽어보는게 도움이 될것입니다. developer111.tistory.com/33 [자바]JVM 구조 및 자바 메모리 구조 실서버에 톰캣7과 자바8으로 호스팅한 후 한달 정도 되니.. 2021. 1. 14.
[자바]JVM의 동작방식과 구조 JVM(Java Vitual Machine)이란 자바 프로그램의 실행 환경을 만들어주는 가상 머신 자바의 플랫폼 독립성  자바 컴파일러는 자바파일(*.java)을 자바 바이트코드(*.class)로 컴파일한다.JVM은 플랫폼(OS) 별로 존재하며 자바 바이트코드를 바이너리 코드(기계어)로 변환하여 컴퓨터(CPU)가 처리할 수 있도록 한다. 따라서 자바는 플랫폼에 종속되지 않고 JVM 처리하는 바이트 코드라는 중간 언어와 플랫폼마다 존재하는 JVM을 통하여 운영체제에 상관 없이 실행할 수 있는 환경을 제공한다. * 바이트 코드 : 특정 하드웨어가 아닌 가상 머신에서 사용되는 언어* 바이너리 코드 : 컴퓨터가 이해할 수 있는 언어로 OS마다 다름  JVM의 동작 방식  main 메서드를 포함한 클래스를 실행시.. 2021. 1. 11.
반응형