다국어 사이트 생성하면서 자바클래스의 기본 파일 인코딩을 "UTF-8"로 작업을 했다.
산출물 작업으로 JAVA-DOC 기본옵션으로 생성하는데 한글이 다 깨져서 나오더라 머 당연한 결과이리라..-_-;;

JAVA-DOC생성시 확장옵션에 UTF-8을 지정해줘야한다
방법은 아래와 같이 하면된다.


StringBuilder 클래스는 java 5.0 이후 나온 문자열 처리 클래스인데 기존의 StringBuffer과는 동일한 클래스이지만
단 한가지 차이점은 동기화(synchronization) 처리를 하지 않는다는거다..

이건 멀티쓰레디 프로그래밍에선 사용하면 안되지만 그렇지 않은 경우엔 StringBuffer보다 빠른 성능을 보장한다.
이 동기화 처리를 빼면 두 클래스의 차이점이 없기 때문에 성능향상이 극단적(?)으로 필요한 경우가 아니라면 기존 StringBuffer 클래스를 계속 사용해도 무방할듯하다. (멀티쓰레드 환경이 아니라면 StringBuilder를 사용하도록 하자.)

  1. toy 2008.12.22 00:00

    조금 오류가 있어 보여 적습니다.계속해서 StringBuffer를 사용하는 해도 무방?하다는 표현이 조금 어폐가 있습니다. 그러지 말라는 의도로 만들어진 class가 StringBuilder입니다. 대부분의 코딩시 thread-safe가 요구되는 상황은 그리 많지 안습니다. 이런 상황에서 불필요한 동기화는 좋은게 아니겠죠. 비스한 예로 Vector 대신 ArrayList/LinkedList 사용이나 HashTable대신 HashMap을 사용하는예와 동일한 이유라고 보시면 되겠습니다.정말로 StringBuilder는 StringBuffer와 동일한 method를 가지기 때문에 find-replace로 StringBuffer를 StringBuilder로 바꾸어도 compile 오류가 발생하지 않습니다. 1.5이상이라면 StringBuilder를당연히 사용해야 겠죠..

  2. Coder 2008.12.22 00:00

    아 네..제가 좀 다르게 생각하고 있었네요..조언 감사드립니다. 참고하겠습니다.

jar파일이 필요하면 해당 배포사이트부터 찾아야 했는데 이 우연찮게 발견한 사이트는 jar파일의 이름검색을 통해 해당하는 jar파일을 다운받을수 있게 해준다..

http://findjar.com/

오늘도 삽질로 시간을 낭비한듯하네..ㅜ_ㅡ

아래와 같은 구문이 있다.
Hashtable param = new Hashtable();
Object chkValue = null;

 Enumeration keys = param.keys();
 while(keys.hasMoreElements()){
  chkValue = keys.nextElement();
  
  if(chkValue instanceof String){
   System.out.println("문자형");
  } else if (chkValue instanceof ArrayList){
   System.out.println("배열");
 }

위와 같이 했을 경우 if문의 조건절은 무조건 String형만 타게된다..이유는 keys()는 말대로 hashtable의 키값만을 리턴한다.
param.set("title", "abcs");
햇을경우 title을 리턴하게 된다. 고로 chkValue는 String만 존재할뿐이다.
하지만 Enumeration keys = param.elements(); 를 해주게되면 hashtable의 밸류값을 가져온게된다.
"abcs"값을 가져온다는 말이다.

이 차이점을 구분을 못해서 그냥 keys()로 받는 Object가 hashtable의 value값은 배열인데 자꾸 String으로 타는게 아닌가..ㅜ_ㅡ..
기초가 부족하다고 다시한번 느끼게 해준다...
api만 조금 쉽게 이해했더라면 삽질 안해도 됏을텐데..끄응..
  1. 바보창수 2008.06.21 00:00

    공부 좀 혀 압둘라. 자바 5.0이상을 사용하면 제너릭을 사용해서 그런 실수를 방지하고 안전하게 사용할 수 있다.Map<String, Object> params = new Hashtable<String, Object>();Set<String> keySet = params.keySet();for ( String key : keySet ) { Object value = params.get(key);// 중략}

자바 클래스파일(.class)을 .java파일로 디컴파일해주는 프로그램이다.
소스가 날라가버려서 헤맬때 사용하면 종종 유용한 프로그램..-_-;;..

파일이 업데이트 됐다. -_-;

원본 글 : http://www.jakartaproject.com/article/jsptip/113348626476500

ⓐ Oracle
 oracle.jdbc.driver.OracleDriver
 jdbc:oracle:thin:@hostname:port:SID
 String url = "jdbc:oracle:thin:@localhost:1521:ORA8";
 Class.forName("oracle.jdbc.driver.OracleDriver“);

ⓑ mssql
 com.jk.jdbc.Driver
 jdbc:jk://hostname:port/database=db_name
 String url="jdbc:jk://localhost:1433/database=CRM";
 Class.forName("com.jk.jdbc.Driver“);
 
ⓒ mysql
 orj.gjt.mm.mysql.Driver
 jdbc:mysql://db_url:port/db_name
 String url = "jdbc:mysql://localhost:3306/CRM";
 Class.forName("orj.gjt.mm.mysql.Driver“);
 
ⓓ sybase
 com.sybase.jdbc2.jdbc.SybDriver
 jdbc:sybase:Tds:db_url:port/db_name
 String url = "jdbc:sybase:Tds:localhost:3344/CRM";
 Class.forName("com.sybase.jdbc.jdbc.SybDriver“);

ⓔ db2
 COM.ibm.db2.jdbc.app.DB2Driver
 jdbc:db2://172.58.654.356:port/db_name
 String url = "jdbc:db2://localhost:9010/CRM";
 Class.forName("COM.ibm.db2.jdbc.app.DB2Driver“);
 
ⓕ postgresql
 7.0 version : org.postgresql.Driver
 6.5 version : postgresql.Driver
 jdbc:postgresql:db_name
 jdbc:postgresql://host/db_name
 jdbc:postgresql://host:port/db_name
 String url = "jdbc:postgresql://localhost:5432/CRM";
 Class.forName("org.postgresql.Driver“); -> version 7.0
 Class.forName("postgresql.Driver“); -> version 6.5

ⓖ informix
 com.informix.jdbc.IfxDriver
 jdbc:informix-sqli://hostname:port/db_name:INFORMIXSERVER=server_name:user=user_name:password=user_pwd
 String url = "jdbc:informix-sqli://localhost:2020/CRMl:INFORMIXSERVER=mydb:user=sys:password=pass";
 Class.forName("com.informix.jdbc.IfxDriver“);

ⓗ odbc brigde
 sun.jdbc.odbc.JdbcOdbcDriver
 jdbc:odbc:source-name
 String url = "jdbc:odbc:CRM";
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver“); 

ⓘ teradata
 com.ncr.teradata.TeraDriver
 jdbc:teradata://host:port/gateway/tmode=default

 

+ Recent posts