유한한 자원을 관리하는 일은 중요합니다. 커넥션, 스트림, 파일 등의 자원을 활용할때 try - catch문을 활용해 자원을 열고 닫아주는데 java7 부터는 try - with - resources 구문을 지원합니다. 어떤 경우에 쓸수 있고, 뭐가 좋은지 알아봅시다! Resource Resource 는 시스템을 운영하는데 있어서 메모리나 입출력 장치 등 하드웨어, 소프트웨어 형태로 존재하는 구성요소를 의미한다. 여기서 Resource 를 Java 의 외부 Resource 로서 JVM 바깥의 메모리 이외의 Resource 를 지칭하자. Java 에서 Resource 를 사용하고 나면 해제를 해주어야 한다. Resource 를 해제하지 않으면 메모리 누수 및 특정 프로그램의 독점으로 인해 해당 객체가 올바..
전체
Sonacube는 코드내에서 같은 문자열을 매번 선언해서 사용하는 것을 지양하라고 말합니다. 문자열이 코드내에서 반복될 경우 상수로 선언해서 그 변수를 사용하라고 가이드 합니다. 1. 왜 그래야 하는가? 답? 1. static final 로 선언하지 않으면 다른 사람이 만든 코드가 변수를 수정할 수 있기 때문 2. 상수가 한 번만 사용되어야 가시성이 좋아짐 2. 문자열을 직접 선언하는 것과 상수 변수를 사용하는 것은 어떤 점이 다를까? String 은 클래스 선언에 따라 메모리에 저장되는 방식이 다르다. String str1 = new String("abc"); // 인스턴스로 생성된다. String str2 = "abc"; // 상수풀에 있는 문자열을 가르킨다. JVM 에서는 아래와 같은 구로조 데이터..
개발을 하다 보면 함수의 파라미터로 변수를 넘겨주어야 한다. 각 언어마다 변수를 넘겨주는 방법(Pass By Value, Pass By Reference)이 다른데, 이를 정확히 인지하지 못하면 예상치 못한 버그를 발생시킬 수 있다. 이번에는 Java가 어떠한 방식으로 파라미터를 전달하는지 살펴보자. 0. 문제 풀어보기 Pass By Value와 Pass By Reference에 대해 이야기하기 전에, 우리는 이들에 대해 얼마나 이해하고 있는지 확인하기 위해 아래의 간단한 시스템의 출력 결과를 예상해보도록 하자. 해당 유형의 문제는 실제 유명한 기업들에서 자주 출제되는 문제이기도 하다. 0-1. 실행할 프로그램 class Dog { private String name; public Dog (String ..