본문 바로가기

프로그래밍/JAVA

디자인 패턴 http://jusungpark.tistory.com/category/DesignPattern
String, StringBuilder , StringBuffer 1. String 문자열을 처리하는 특별한 시스템 클래스의 객체이며, 변형 불가능(immutable)하다. 변형 불가능이라는 말은 String 인스턴스를 생성될 때 메모리의 힙(Heap) 영역에 할당되며 다시는 바꿀수가 없다는 것이다. 문자열을 조작하게 되면 새로운 문자열 인스턴스를 반환해줄 뿐이다. 아래에 작성된 코드는 메모리 영역에서 아래의 그림처럼 동작한다. ? 1 2 String string1 = "Hello String!" string1 = "Hello Java!" 그래서 아래와 같은 코드는 힙 영역에 지속적으로 할당될 수 밖에 없으므로 최악의 코드가 된다. ? 1 2 3 4 String string2 = "Hello"; string2 += "Java"; string2 += " !"; strin..
정규 표현식(Regular Expression) 2 * 정규 표현식 문법 문자 클래스 - '[ ]' 특수문자 안에서 자주 사용되는 패턴들을 미리 키워드로 정의하여 놓은 문자 - 해당 문자 클래스를 자바에서는 다르게 사용 패턴 문자클래스 자바 사용 예 [a-zA-Z] (모든영문자) [[:alpha:]] \p{Alpha} [0-9] (숫자) [[:digit:]] \p{Digit} [a-zA-Z0-9] (영문자와 숫자) [[:alnum:]] \p{Alnum} 공백 [[:space:]] \p{Space} 특수 문자 사용 - 메타문자('.', '*', '+' 등)을 정규표현식의 패턴에서 사용하려면 해당 특수문자 앞에 '\' 사용 - '\'를 패턴에서 사용하려면 \\ 로 사용 기타 표현(\는 역슬래쉬) 패턴 설명 \w [a-zA-Z0-9] 알파벳이나 숫자 \W [^..
정규 표현식(Regular Expression) 1 * 정규 표현식(Regular Expression) 이란? : 특정한 규칙(패턴)을 가진 문자열의 집합을 표현하는데 사용하는 표현식 언어 : 정규 표현식은 주로 텍스트(문자열)를 많이 처리하는 프로그래밍 언어(C, Perl, Java, JavaScript 등)에서 문자열의 검색과 치환을 위해 주로 사용 * 정규 표현식 문법 '.' 특수문자 - 임의의 한 문자를 의미 ('.'가 위치한 곳에는 반드시 임의의 한글자가 위치하여야 한다는 의미) 패턴 일치하는 문자열 ab. abc, abz 등 .bc abc, zbc 등 a.b acb, azb 등 '*' 특수문자 - 바로 앞의 문자가 없거나 하나 이상 반복한다는 의미 패턴 일치하는 문자열 Hello* Hell, Hello, Helloo, Hellooo 등 ab*c..
JAVA에서 NULL 체크 어떻게 하고 계시나요? 다들 널 체크 어떻게 하고 계시나요? param ==null || 뒤에 두번째 조건문에서 param.equals("") 를 쓰시거나 param.length()==0 를 쓰시거나 param.isEmpty() 를 쓰시곤 하실텐데요. String.length() 메소드 ----------------------------------------- public int length() { return count; } ----------------------------------------- String.equals() 메소드 -------------------------------------------- public boolean equals(O bject obj) { if(this == obj) return tru..
디자인 패턴 MVC MVC( Model - View - Controller ) View : 화면단을 그려주는 Object를 말한다. 예를들어, JSP처럼 Runtime에 고객이 입력한 결과를 동적으로 표시해 주는 Presentation 을 담당하는 놈이다. Controller : View가 Model(Data공급원)을 직접호출 하게 되면 Model은 화면에 종속되는 형태로 개발되게 된다. 이것을 우리는 강한연결( Strong Coupling) 이라 한다. 이렇게 개발된 Model 개체는 다른곳에서 사용하기가 힘들다. 이를 해결하기 위해( 프로그램의 재활용성을 높이기 위해 ) 약한연결( Loose Coupling) 로 프로그램을 구성할 때 우리는 이 Controller를 만들어 구성하게 된다. => 화면단에서 사용자가 입력한..
디자인 패턴 : FACTORY METHOD Factory Method OOP 프로그램에서 Object의 생성/소멸을 어떻게 관리할지에 대해서 일반화 해놓은 패턴 중 하나이다. 특히, 객체생성을 직접하는 것이 아니라, 타 클래스에 위임을 통해 약한연결( Loose Coupling ) 을 구현 코드의 의존성을 줄인다. Sample 코드의 변환과정. 가정조건. 1) 10개의 Business Logic이 담겨있는 클래스가 있다고 가정하자. 2) 이 10개의 Class에서는 모두 Oracle DB와 DB Connection 문구가 들어있다. 3) 이 Oracle DB가 너무 비싸서 현재 위탁을 할지 MySQL로 전환될지 확실치 못하다. 4) 만약 MySQL로 전환된거나, 다른 DB로 전환 될 때 어떻게 해야 할까? 가) 절차적방식의 코딩. [HardCod..
List,Set,Map 어떤것을 사용해야 할까? List,Set,Map의 Class중 어떤것을 쓸것인지 판단할수 있도록 표로 정리해 보았다. 용어 List : 중복을 허용하고, index를 통한 접근을 한다. index가 부족하게 되면 메모리를 새로 할당하여 복사하여 구성하게 된다. Set : 집합(수학), 집합은 중복을 허용하지 않고 교집합/합집합/차집합등을 지원한다.(And(교집합), OR(합집합), XOR (Not Or)등을 지원함) Hash : Hash Function을 말하며 고유한 Key값(Unique Key)을 주면 고유한 값을 Return한다(중복안됨). Hash연산은 다방면으로 사용되어지고 있다. Linked : Array의 전/후의 값이 서로 Link[양방향연결고리]되어 있어 계속늘어날 수 있으나, 중간검색이 되지 않아 검색속도가 느..