java 4

기본 정리

Q) 인스턴스 멤버와 정적 멤버 ? 인스턴스 멤버는 객체마다 가지고 있는 멤버(필드,메소드), 정적(static) 멤버는 클래스에 위치시키고 객체들이 공유하는 멤버(필드,메소드) 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리되기 때문에 클래스 로딩이 끝나면 바로 사용할 수 있다. 정적 메소드는 객체가 없어도 실행된다는 특징 때문에 선언시 이들 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수 없다. 또한 객체 자신의 참조인 this 키워드도 사용이 불가능하다. final 필드 : 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없는 필드 상수 : 불변의 값을 저장하는 필드를 자바에서는 ..

java 2023.01.14

com.fasterxml.jackson.databind.exc.InvalidDefinitionException

한 객체에 대해 findById(~) 한 것 뿐인데 .... com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: so.x.web.todo.dtos.Todo$HibernateProxy$JINl8jdc["hibernateLazyIn..

java 2023.01.06

JVM

JVM = Java Virtual Machine 응용프로그램이 실행되면, 시스템(운영체제)으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 이 메모리를 용도에 따라 여러 영역으로 나누어 관리 1. 메소드 영역 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역이다. 코드에서 사용되는 클래스들을 클래스 로더로 읽어 클래스별로 정적 필드와 상수, 메소드 코드, 생성자 코드 등을 분류해서 저장한다. 2. 힙 영역 객체와 배열이 생성되는 영역이다. 여기에 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 만약, 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 JVM이 이것을 쓰레기로 취급하고 GC(Garbage Collector)를 실행시켜 자동으로 제거한다..

java 2023.01.06