본문 바로가기

언어/Java3

(Java)메모리 상수풀 영역 / JDBC / 리플렉션 / 제네릭 메모리 상수풀 영역 - JVM의 메모리 영역 중 힙 영역안에 있으며 리터럴과 같은 상수들이 저장되는 곳이다. 프로세스가 종료될때까지 지워지지 않으며 상수가 필요할때 가장 먼저 이곳에서 찾는다. JDBC - 자바에서 데이터베이스를 사용하기 위해 필요한 API로 해당 DB를 사용할 수 있는 방법 제공 리플렉션 - 정상적으로 컴파일러를 거치지 않고 런타임에 메모리 상의 객체에 바로 접근할 수 있는 자바 API이다. 해당 객체가 가진 메소드, 생성자, 필드에 대한 정보를 조작할 수 있다. 제네릭 - 제네릭을 사용하면 해당 클래스의 타입이 컴파일 이전이 아닌 런타임때 결정된다. C++템플릿과 비슷한 개념인것 같다. 기존 C++ 템플릿에선 컴파일때 인스턴스된 객체의 코드가 새로 생성되어 컴파일되었다. 그러면 과연 .. 2021. 7. 23.
(Java)JVM / JRE / JDK / 컴파일 동작 과정 JVM - 자바 가상머신으로 .class파일을 메모리에 저장하고 실행하는 역활을 한다. JRE - 자바 런타임 환경으로 JVM에 필요한 라이브러리들이 모여있다. JDK - 자바 개발킷으로 JRE+ 개발에 필요한 라이브러리들이 모여있다. 컴파일 동작 과정 1. 이클립스와 같은 에디터로 작성된 .java파일을 javac같은 명령어로 빌드시 .class라는 반기계어 바이너리 파일로 바뀐다. 2. .class파일은 클래스 로더에 의해 JVM으로 로드되며 .class내용이 JVM 런타임 메모리로 저장되어 실행될수 있는 상태로 바뀐다. JVM 메모리영역엔 Stack(지역변수, 리턴), MeThod(메소드 주소, 정적변수, 클래스 주소), Heap(new로 인스턴스된 객체들) 등이 있으며 이곳에 각 용도에 맞는 내용.. 2021. 7. 23.
(Java)OOP / 인터페이스와 추상클래스 OOP(객체지향 프로그래밍) - 절차지향 프로그래밍과 달리 객체단위로 코드를 조직화해서 재사용성을 높이고 협업과 유지보수성에 유리함 - 상속 : 부모 객체의 특성을 그대로 물려받아서 재사용성을 높일수 있음 - 다형성 : 같은 데이터를 받아도 여러 형태가 나올수 있는것으로 함수 오버로딩이나 하나의 인터페이스 객체에 여러 구현 객체를 사용가능함 - 캡슐화 : 객체의 내부를 보여주고 싶은 부분만 보여줄수 있음. public(전부), private(같은 클래스 내부에서만), package(같은 패키지 내부에서만), protected(같은 패키지 내부에서 상속됬을때만) 인터페이스란? - 보통 두장치 사이의 통신을 원할히 할수 있게 해주는 접합부를 의미한다. 자바에서 인터페이스는 여러 클래스들을 동일한 형식으로 정.. 2021. 7. 23.