쓸데없이 객체를 만들지 말자!

이펙티브 자바! 불필요한 객체는 만들지 말라. 동일한 객체는 필요할 때마다 만드는 것보다 재사용하는 편이 낫다. 변경 불가능한 객체는 언제나 재사용할 수 있다. 우리는 절대로 피해야 할 극단적 예를 들어보겠다. String s = new String(“hello string”); 위의 코드는 쓸데 없는 짓이다. 만약 위의 문장이 loop나 자주 호출되는 메서드 안에 있으면 쓸데 없는 객체가 수십만개 수백만게 만들어 질것이다. String s = “hello string”; 위와 같이 하면 같은 가상머신에서 실행되는 코드는 동일한 String을.. Read More

spring xml을 java config로

요즘에는 spring boot가 대세라 xml로 설정할 일이 없다. 그래서 아직 xml을 쓰는 사람을 위해 java config 설정 법을 간략하게 해보겠다. 일단 첫 번째 부터 한번 보자 public class BeanClass1 { public String getName(){ return “hi youngjin”; } } 우리한테는 이런 클래스가 있다고 가정하자! xml로 빈을 등록하기 위해 우리는 이렇게 했다. <bean id=”beanClass1″ class=”me.wonwoo.bean.BeanClass1″></bean> 위와 같이 메타정보를 xml로 설정 할때 이다. 클래스를 빈으로 설정한다. 잘되나 테스트를 해보자 @Test public void springXmlConfig(){.. Read More

private 생성자를 사용하자

제목이 조금 이상하긴한데.. 모든 클래스에 해당되는 말은 당연히 아니다 우리가 흔히 쓰는 유틸 클래스 상태가 없는 클래스들을 말하는거다. 해당 클래스들은 모두 static 메소드를 이루어져 있다. 객체를 인스턴스할 필요가 없는 클래스들 이다. 흔히 유틸 클래스를 만들 때 인스턴스화를 막기 위해 클래스의 abstract 선언하곤 한다. abstract 선언해도 인스턴스를 생성 할 수 있다. 예를 들어 보자 @Test public void test() { ReflectionClass reflectionClass = new ReflectionClass() { }; reflectionClass.printName(“wonwoo”); } abstract class ReflectionClass.. Read More