본문 바로가기

IT/Java

[Java] 디자인패턴 10종 정리 자바 개발을 시작했지만 막상 문제 해결을 하려고 할 때 막막하다고 느낀다면 디자인 패턴을 공부할 때입니다. GoF의 디자인 패턴 중 제가 개인적으로 많이 사용한다고 생각되는 10가지 패턴을 설명합니다. 자바 디자인 패턴으로 개발 효율 한 단계 레벨 업! 가장 자주 쓰는 10가지 패턴을 모았습니다. 개발을 하면서 자주 사용한다고 느낀 10가지 패턴을 소개합니다. Builder Factory Method Singleton Adapter Decorator Command Memento Observer Strategy Template Method 더보기
J2EE란? 1. J2EE (Java 2 Enterprise Edition) ■ J2EE란? J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합입니다. J2EE를 만든 것은 Sun Microsystems이고 SUN에서 J2EE 스펙을 시범적으로 구현해두기는 하지만, IBM, BEA, Oracle, HP, Iona등 여러 벤더들도 그 스펙을 구현할 수 있으며 J2EE 호환성을 검증하 는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시할 수 있습니다. 그리고 이런 벤더들은 J2EE 스펙을 개선하는 과정에도 활발히 참여하기 때문에, J2EE는 사실상 SUN의 독점적인 기술이라기 보다는 Java진영으로 불리는 여러 Vendor들과 개발자들이 같이 만들어 가고 공유하는.. 더보기
[JAVA] flush() flush()란 무엇일까? flush()에 대해서 많이 들어 본 것은 사실이다.이미지 처리 할때는 버퍼의 내용을 비워준다 ?자바를 공부할 때는 출력한다라는 의미로 이해하고 있다.지금 네트워크로 넘어와서는 버퍼의 내용을 보낸다. 그것은 즉 버퍼를 비워준다, 출력한다와 같은 건가 생각도 된다.클라이언트 버퍼의 내용을 서버 버퍼로 보낸다 ?flush()라는 것에 대해 느낌이라고 해야 하나, 대략적인 것은 알지만 정확하게 깔끔하게 알지는 못하는 느낌이랄까 그래서 또 열심히 네이년과 구글, API를 검색하기 시작했다. http://diyall.tistory.com/618 님의 블로그에 의하면, flush()는 현재 버퍼에 저장되어 있는 내용을 클라이언트로 전송하고 버퍼를 비운다. (JSP) API에 의하면Outp.. 더보기
[Java] String, StringBuffer, StringBuilder 란?? 그리고 속도 비교 1. Introduction String의 + 연산자가 느리다는 것은 널리 알려진 사실이다. String은 내부적으로 char[]을 사용하는데 이 배열은 변경이 불가능하다. String은 인스턴스 생성 시에만 char[]에 값을 넣을 수 있어서 아래와 같은 코드에서 String의 new 연산이 O(n)번 실행된다. public String repeatString(String target, int n){String result = "";for(int i=0; i < n; i++ )result += target;return result;} 반면, 아래 코드처럼 StringBuffer를 사용하도록 바꾸면 new 연산자는 한번만 실행된다. public static StringBuffer repeatString(.. 더보기
[Java] java compile 시 utf-8 문제 (癤?) : Unexpected character (癤) at position 0. Unexpected character (癤) at position 0. 다음과 같은 에러가 나온다면 인코딩의 문제이다. 즉 utf-8 이 아닌 데이터를 읽어올 때 발생되는 에러. 해결방법 : 편법으로 같은 내용의 데이터를 복사해서 파일을 새로 만든다.;; 방법이 있을텐데.. 열심히 구글링 하다 결국 편법으로... 더보기
[Java] trim(), charAt() 함수에 대해 알아보자 trim() : 문자열 양끝에 존재하는 공백을 제거해준다. charAt(n) : n+1 번째에 존재하는 문자를 가져온다. import java.util.Scanner;public class Quiz { public static void main(String[] args) { String a; char ch; System.out.print("문자 한 개를 입력하세요. >>"); Scanner input=new Scanner(System.in); a=input.next(); ch=a.trim().charAt(0); if( (65 더보기
[Java] StringBuffer 클래스에 대해서 앞아보 StringBuffer 클래스는 자바 프로그램 내에서 변하는 문자열을 다룰 때 사용한다. StringBuffer 클래스의 객체는 크기가 동적인데, 객체 생성시 크기를 지정하지 않아도 기본적으로 16개의 문자를 저장할 수 있는 버퍼 공간을 가진다. String 클래스의 객체는 한 번 생성되면 그 내용이 변하지 않는 반면에, StringBuffer 클래스의 객체는 한 번 생성된 후에도 계속하여 저장하고 있는 문자열의 내용을 변경할 수 있다. 그러므로, StringBuffer 클래스의 메소드는 문자열 처리 후의 결과를 원래의 StringBuffer 객체에 반영하고, 메소드 리턴 타입은 void 이다. * StringBuffer 클래스 생성자 StringBuffer 클래스 생성자설 명 StringBuffer().. 더보기
[Java] 일정 시간을 기다리게 하는 sleep 메소드 사용법 sleep : 아무 일도 하지 않고 주어진 시간이 경과되기만을 기다리는 메소드 (static method) 1000 이 1초를 뜻함 Example : try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println(e.getMessate()); //sleep 메소드가 발생시키는 InterruptedException} 더보기
[Java] Iterator 함수 제대로 알고 사용하기 Iterator 란? Iterator는 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 하였는데 그 중 하나가 Iterator이다. Iterator는 인터페이스인데 그 구성을 살펴보자. public interface Iterator {boolean hasNext();Object next();void remove();} boolean hasNext() 메소드는 읽어 올 요소가 남아있는지 확인하는 메소드이다. 있으면 true, 없으면 false를 반환한다. Object next() 메소드는 읽어 올 요소가 남아있는지 확인하는 메소드이다. 있으면 true, 없으면 false를 반환한다. void remove() 메소드는 next()로 읽어 온 요소를 삭제한다. next() 를.. 더보기
[Java] HashMap 함수 제대로 알고 사용하기 http://forum.falinux.com/zbxe/?document_srl=570168&mid=lecture_tip&page=1http://arabiannight.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%EC%9E%90%EB%B0%94-HashMap-%EC%9D%B4%EB%9E%80 1. HashMap이란?: HashMap은 Map을 구현한다. Key와 value를 묶어 하나의 entry로 저장한다는 특징을 갖는다. 그리고 hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 보인다. Map 인터페이스의 한 종류로 ( "Key", value) 로 이뤄져 있다. key 값을 중복이 불가능 하고 value는 중복이 가능. value에 null값도 사.. 더보기