개요가비지 컬렉션(Garbage Collection)은 프로그래밍에서 메모리 관리를 위한 개념입니다. 이는 JVM에서 사용되는 JRE 중에 하나입니다. 프로그램 실행 과정에서 사용하는 메모리 영역 중에서더 이상 사용되지 않는 메모리를 자동으로 찾아내고 해제하는 프로세스를 의미합니다. C언어를 사용하면 malloc() 으로 메모리를 할당하고 free() 함수를 통해 해제하지만Java나 Kotlin의 경우 개발자가 메모리를 직접 해제해주는 일이 없습니다.그 이유는 가비지 컬렉터가 불필요한 메모리를 알아서 정리해주기 때문입니다. 이를 GC(Garbage Collection)라고 부릅니다. Person person = new Person();person.setName("Me");person = null;// ..
기술 스텍/Java
List list = new ArrayList(); 라고 쓸까? 인스턴스 타입을 클래스 대신 인터페이스로 초기화 할까? 인터페이스를 구체클래스의 위에 타입으로 덧씌우는 것은 캡슐화와 낮은 결합도의 핵심이다. 나중에 테스트코드를 작성하기도 쉬워지고 변경사항이 생겨도 변화에 쉽게 대응 할 수 있기 때문이다. List list = new ArrayList(); 이렇게 정의되어 있는 것을 Stack으로 변경할 때 List list = new Stack(); 클래스로 바꿔준다. 이렇게 될 경우 ArrayList, Stack 모두 List를 구현한 구체클래스여서 Counter.sizeOf(list) 같은 코드가 밑에 있더라도 변경하지 않을 수 있다. 즉 결합도를 낮추고 의존성을 분리한 것. 한 코드의 변화가 다른 ..
서블릿이란? 더보기 서블릿이란 동적 웹 페이지를 만들 때 사용되는(클라이언트의 요청을 처리하고 결과를 반환하는) 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다.(순수 자바를 이용하여 웹을 만들 때 사용한다) 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다. JSP와 차이점으로는 JSP는 HTML 문서 안에 Java코드를 포함하는 반면, 서블릿은 Java코드 안에 HTML을 포함하고 있다. 특징 Spring boot를 사용하지 않을 때, MVC 패턴에서 Controller의 역할으로 이용된다. Java Thread를 이용하여 동작한다. HTTP프로토콜..
제네릭스 자바 코드를 보다보면 안에 들어가 있는 형태를 볼 때가 있습니다. 이게 뭐지..? 라고 할수도 있지만 효율성을 높여준다는 말을 듣고 진지하게 임하게 되었습니다!! 제네릭스의 정의는 매개변수화된 자료형을 의미합니다. 클래스, 인터페이스, 메서드에 사용될 수 있습니다. 쉽게 풀어보면, 자료형에 타입을 지정할 수 있다는 것입니다. public static void main(String[] args) { ArrayList numbers = new ArrayList(); number.add(10); number.add(20); number.add("30"); // comfile error 정수형만 들어가야되는데 문자형이기 때문 } 또한, 중복되는 메소드를 하나만 만들어도 공통으로 사용할 수 있습니다. p..