맛있는 라면집 아주머니가 잘만드는 집 꼬치라면 대박





지도를 클릭하시면 위치정보를 확인하실 수 있습니다.

본죽 옆에있습니다.

iPhone 에서 작성된 글입니다.


Vector는 synchronized이고, ArrayList는 아닙니다.
Vector는 1.0 부터 있어왔고, ArrayList는 1.2에서부터 생겼습니다.
Vector는 크기 조절이 알아서 되는 Array 오브젝트를 구현하려고 생겼다가 1.2가 나올 때 동일한 목적을 가진 List를 구현한 것으로 바뀌어 Collection framework에 포함이 되었습니다.
따라서 1.2부터는 다음처럼 써서 필요할 때 바꿔치는 것이 됩니다.

List list = new ArrayList()
List list = new Vector() 

그럼 둘 중에 무엇을 쓰느냐가 다음 질문인데, ArrayList를 씁니다. 만약 concurrent 프로그래밍을 위해 Vector처럼 synchronized가 필요하면 Collections.synchronizedList()라는 Collections의 wrapper method를 다음처럼 쓰면 됩니다.
List list = Collections.synchronizedList(new ArrayList(...));

그럼 Vector는 언제 쓰느냐 라는 질문이면, 저는 1.1 호환의 예전 소스나 책에 매인 것이 아니라면 Vector는 쓰지말라고 하겠습니다.

----
I paint objects as I think them, not as I see them.

[주식]sk이노베이션 주식 2011. 6. 28. 23:41
평단 : 200395  : 보유량 25%

[주식]LG 디스플레이 주식 2011. 6. 28. 23:40

오늘 입성
2011-06-28 : 30260   : 보유량 5%
[주식]컴투스 주식 2011. 6. 20. 23:54

 오랬동안 11000 뚤지 못하고 횡보 오늘 빨강이 길게 나옴
음해해 올라갈듯 탄력받음 좋겠는데 ....오늘 올라서 약간 수익봄 ...


 

[주식]기아차 주식 2011. 6. 20. 23:51

120일선도 위협받고있는 시점 ....
평단가 72000
손실율 세금 포함하면 5.1%정도?
눈물이 좔 좔 좔 좔 오르겟찌 ..

2011-06-28 : 손절 손해 3프로



[주식] 대한항공 주식 2011. 6. 20. 23:47

몇일전에 산 대한항공 하이닉스에서 10프로 손해본후 대한항공으로 갈아탐

2011.06.21 : 30프로 매도 ..68400원
2011.06.28 : 중간중간 매도 70000원

수익율 8~9%


-최근에 다시 공부하게된 디자인 패턴 -

싱글톤은 무엇인가 ?

특징 : 

1. 생성자가 없다..
즉 보통 클래스를 만들때 Test  test = new Test(); 로 생성한다 . 하지만 싱글톤 패턴은 new 로 생성자를 생성할수없다.
일반 적인 클래스
public TestClass {
public TestClass(){

 
}
}
이런 구조로 생성되어있다 하지만 생성돼는 부분 빨강부분이 private로 돼어있다.
public TestClass {
private TestClass(){
}
}
이런구조면 private  글래스 안에서만 사용할수있는 함수기 때문에 외부에서 호출할수 없는 부분이다. 이러면 클래스를 전혀 사용 못하게된다.


2. 1개의 인스턴스만 만들어진다.
만약 클래스가 메모리에있다면 더이상 만들지 않고 자기 생성된 생성자를 넘겨준다 .
아래와 같은 형태로 클래스 를 넘겨 받는다.
TestClass  test = TestClass.getInstance();


public TestClass {
/*유일한 인스턴스 저장 객체 선언*/
private static TestClass uniqueInstance ;
private TestClass(){ }

/*외부에서 사용할 함수 선언 클래스를 생성할떄 쓴다 */
public static TestClass getInstance(){
if(uniqueInstance  ==null){//있는지 체크 없으면
uniqueInstance  = new TestClass (); //생성한뒤
}

return uniqueInstance  ;//성성자를 넘긴다.
}
}



어디에 적용하면 좋을까 : 
딱 보면 감이 온다. 아 싱글톤이라는 패턴은 오직 1개만 만들어서 다른 곳에서도 사용할수있는거구나.
적용할수있는 곳은

ps. 블로거 저의 개인적인 생각입니다.

1. static으로 선언해서 공통적으로 사용되는 부분 환경 설정이나
2. 내용이 변경되면 다른 클래스에서도 그부분이 또같이 적용돼어 실행되어야할때.
3. 자주사용되는 부분을 싱글톤으로 만들어 생성된는 시간을 줄이고자할떄.
보통getInstance를 얻는  패키지나 프레임워크를 보면
DB 커낵션 커낵션풀 에서 사용돼는경우가있다.


유의 사항 !!!

Thread 사용시에는 위와같은 방법은 문제가 될수있다.
1. 싱크로 나이즈를 걸어준다.
public static  synchronized TestClass getInstance(){
if(uniqueInstance  ==null){
uniqueInstance  = new TestClass ();
}
return uniqueInstance  ;
}
-- 속도가  느려지지 빠른 속도를 원하면 이 방법은 비추 .
2. 인스턴스를 처음에 만든다.
private static TestClass uniqueInstance  = new TestClass();

3. DCL(duble0checking locking ) 사용 JDK 1.5부터 가능.

public TestClass {
/*유일한 인스턴스 저장 객체 선언*/
private  volatile static TestClass uniqueInstance ;
private TestClass(){ }

/*외부에서 사용할 함수 선언 클래스를 생성할떄 쓴다 */
public static TestClass getInstance(){
if(uniqueInstance  ==null){ //있는지 체크 없으면
synchronized(TestClass.class){
if(uniqueInstance  ==null){ //다시한번채크
 
uniqueInstance  = new TestClass (); //생성한뒤
}

}
}

return uniqueInstance  ;//성성자를 넘긴다.
}
}




-- DB 테이블 스키마 가져오기.
SELECT  B.COLUMN_NAME  AS 컬럼명
        , B.DATA_TYPE AS 테이터타입,
        B.DATA_LENGTH     AS 길이,
        B.NULLABLE AS NULL구분,
        B.COLUMN_ID AS 컬럼순서,
        A.COMMENTS AS 설명
FROM    USER_COL_COMMENTS A, USER_TAB_COLUMNS B
WHERE  B.TABLE_NAME = A.TABLE_NAME
    AND B.COLUMN_NAME = A.COLUMN_NAME
    AND B.TABLE_NAME LIKE '테이블명'
ORDER BY B.COLUMN_ID;
 

테스트용 테이블 만들때 유용하게 쓸수 있죠..

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER

 

검색을 걸어서 필요한 데이타만 복사할수도 있죠.

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE IDX<10000

 

테이블 구조만 복사하고 싶다면..

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE 1=2

검색조건을 이렇게 한다면 테이타는 복사가 안되겠죠..

 

테이블이 이미 만들어진 경우는

INSERT INTO TEST_MEMBER SELECT * FROM MEMBER


주의할점은 테이블구조만 복사된다는 것이다.

프라이머리키나 인덱스등은 복사가 안돼니 따로 설정해 주어야 한다.


-- 추가


테이블을 다른 테이블스페이스로 지정하고 미리 생성해 둡니다.
CREATE TABLE COPY_TB
(A NUMBER,
 B VARCHAR2(10))
TABLESPACE COPY_TBS

그리고 기존 테이블의 내용을 새로 생성한 테이블에 쑤셔 넣습니다.
INSERT INTO COPY_TB SELECT * FROM ORI

이게 이상해 보이지만... exp/imp로 하는 방법도 있습니다.
요기에 대해서는.. 패스 ㅡㅡ;

9i 이상에서는 단 한줄로 테이블이 속한 테이블스페이스를 옮길 수 있습니다.
요렇게

ALTER TABLE copy_tb MOVE TABLESPACE users;

인덱스도 옮길 수 있다. 테스트용 scott꺼를 옮겨 보기로 하자.

alter index PK_EMP rebuild tablespace users