1. String, String에서 + 연산을 하면 안되는 이유 Java를 사용하면서 자주 사용하는 String은 Immutable 특성을 가지고 있습니다. Immutable 이란 변경할 수 없는, 불변이라는 뜻으로 String의 값은 한번 생성이 되면 할당된 공간이 변하지 않는다는 특성이 있습니다. 그러면 아래와 같이 + 연산을 했을 때, 합쳐지는 것은 어떻게 처리 되는 것일까요? String str = "a"; str += "b"; 위 코드 처럼 + 연산을 하면 메모리를 할당받아 새로운 String 클래스 객체를 만들어서 문자열을 나타냅니다. 그리고 이전에 참조하던 "a"는 쓰레기가 되고 나중에 가비지 컬렉터에 의해 제거됩니다. 이러한 이유 때문에, 시간과 메모리가 많이 소모됩니다. 연산을 많이 할수..
예외 자바 개발자가 가장 신경 쓰기 귀찮아 하는 것 중의 하나가 바로 예외처리다. 사라진 SQLException 초난감 예외처리 개발자들의 코드에서 종종 발견되는 초난감 예외처리의 대표선수들을 살펴보자. 예외 블랙홀 try{ ... } catch(SQLException e){ } 예외가 발생하면 그것을 catch 블록을 써서 잡아내는 것까지는 좋은데 아무것도 하지 않고 별문제 없는 것처럼 넘어가 버리는 건 정말 위험한 일이다. 원치 않는 예외가 발생하는 것보다도 훨씬 더 나쁜 일이다. 왜냐하면 프로그램 실행 중에 어디선가 오류가 있어서 예외가 발생했는데 그것을 무시하고 계속 진행해버리기 때문이다. 단순히 예외를 출력하는 경우도 마찬가지이다. } catch(SQLException e) { System.ou..
템플릿 템플릿이란 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로 부터 독립시켜 효과적으로 활용할 수 있도록 하는 방법을 말한다. 예외처리 기능을 갖춘 DAO DB Connection이라는 제한적인 리소스를 공유해 사용하는 서버에서 동작하는 JDBC 코드에는 반드시 지켜야 할 원칙이 있다. 바로 예외 처리다. 정상적인 JDBC 코드의 흐름을 따르지 않고 중간에 어떤 이유로든 예외가 발생했을 경우에도 사용한 리소스를 반드시 반환하도록 만들어야 하기 때문이다. 리소스 반환과 close() JDBC의 Connection이나 PreparedStatement에는 close() 메소드가 있다. 단순하게 생각하면 단들어진 걸 종료하는 것이라고 볼 수도 ..
- Total
- Today
- Yesterday
- 연동
- EmbededTomcat
- 빈팩토리
- JsonIgnore
- shellscript
- StringBuilder
- gradle
- 스프링
- 애플리케이션컨텍스트
- DI
- stringbuffer
- mod_jk
- springboot
- java
- JsonProperty
- AOP
- 쉘스크립트
- 템플릿
- 빌드도구
- lombok
- Tomcat
- apache
- 스프링프레임워크
- 413
- jar 실행
- Spring
- 토비의스프링
- 자바
- IoC
- final
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |