xml을 파싱을 하다보면 노드 사이에 공백을 텍스트 노드로 인식하여  #text 노드가 생성이되는데 

아래와 같이 처리를 해주자.

if (node.getNodeType() == Node.ELEMENT_NODE) {
   	//
}

if(node.getNodeType() == Node.TEXT_NODE){
	//
}

 

출처:https://stackoverflow.com/questions/4650878/how-to-remove-text-from-my-node-parsing-in-java-dom-xml-parsing

'부스러기 > Java' 카테고리의 다른 글

Static 키워드  (0) 2017.06.12
이클립스 Dex Loader] Unable to execute dex: GC overhead limit exceeded  (0) 2014.12.06
JAVA mysql 사용  (0) 2013.07.12

static

static 이란

클래스 필드 또는 메소드 앞에 static 키워드를 사용하므로서 필드, 메소드를 인스턴스의 생성없이 사용 할 수있게한다.

 

목적

모든 인스턴스가 동일 정보를 공유 해야 할때 또는 

메소드가 인스턴스의 데이터와는 상관없이 공통적인 로직이 정의될때

인스턴스마다 할당 된다면 메모리 낭비 뿐만 아니라 데이터를 참조 하거나 호출 할때마다 인스턴스를 생성해야하는등의 번거로움과 인스턴스 메모리해제에 의해 정보손실을 발생시킬 수 있다.

static 을 통하여 이러한 점들을 해결 할 수있다.

인스턴스 생성과정이 없어도 되기때문에 속도 또한 빠르다.

 

 원리

인스턴스가 생성되면 heap 영역에 할당 되어 사용되어진다. 하지만 static 키워드를 붙인 변수와 메소드는 클래스 정보가 할당되는 Method Area에 클래스가 할당 될때 같이 올라가게된다.  heap영역은 가비지 컬렉터의 영향을 받지만 Method Area의 경우 가비지컬렉터의 영향을 받지않고 메모리에 상주 할 수있게 된다.

 

 주의 사항

메모리 누수

static을 통해 메모리가 할당될 경우 클래스가 메모리상에 올라갈때 같이 올라가고 가비지 컬렉터의 영향밖에 있게때문에 프로그램이 종료 될 때까지 메모리를 회수 할 수없다.

신뢰성 하락

static은 언제 어디서든 접근 할 수있다. 그렇기에 언제 어디서 어떻게 변할지 모르는데 멀티스레드 환경에서는 더더욱 static의 상태를 예상하기 어려워진다.

 

어떨때 사용하는 것이 적절할까

상태를 저장하거나 변경하지 않는 경우에 사용하는 것이 적절하다.

예를 들면 Math.PI 에경우 final static 처리되어 상수로 사용되어지고

 Integer.parseInt() 경우 메소드 처리과정에서 어떻한 상태도 변경하지않고 단순히 입력받은 문자열을 정수로 반환 할 뿐이다.


static을 사용하면 편리하기도 하지만 전반적으로 사용을 지양하려는 의견이 많다.

관련 링크




Dex Loader] Unable to execute dex: GC overhead limit exceeded


이클립스 내에  eclipse.ini 파일을 열어서 밑에와 같이 수정해보자.

openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m

출처:http://stackoverflow.com/questions/9471194/unable-to-execute-dex-gc-overhead-limit-exceeded

'부스러기 > Java' 카테고리의 다른 글

java dom 파서로 xml 파싱 중 #text 처리  (0) 2019.04.01
Static 키워드  (0) 2017.06.12
JAVA mysql 사용  (0) 2013.07.12


mysql-connector-java-5.1.25.zip


http://dev.mysql.com/downloads/connector/


다른 언어의 커넥터들은 여기서 받을 수 있다.



드라이버 로드

try{

Class.forName("com.mysql.jdbc.Driver");

}

catch(Exception e){

}


커넥션

String url = "jdbc:mysql://127.0.0.1:8888:test";
String id = "root";
String pw= "password";
Connection conn = null;
try{
    conn =DriverManaer.getConnection(url,id,pw);
}catch(Exception e){

}


url 예시

oracle : jdbc:oracle:thin:@127.0.0.1:8888:test

 mysql : jdbc:mysql://127.0.0.1:8888/test
 MSsql : jdbc:microsoft:sqlserver://127.0.0.1:8888;database=test


+ Recent posts