블로그 이미지
암초보

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Tag

05-05 20:18
2009. 7. 29. 21:34 프로그래밍/Java

IBM RSAEE(Rational Software Analyzer Enterprise Edition)라는 도구는 JAVA 코드를 입력받아 Static analysis를 수행한다. 


아래는 대상 샘플 코드이다.


static void test1() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

String l_str = new String(new StringBuffer(10000));

for (; l_cnt < 3000; l_cnt++) {

l_str += "긍" + "정" + "적" + "으" + "로" + "생" + "각" + "한" + "다.";

}

System.out.println(System.currentTimeMillis());

System.out.println(l_str);

}


static void test2() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

StringBuffer sb = new StringBuffer(10000);

for (; l_cnt < 3000; l_cnt++) {

sb.append("긍");

sb.append("정");

sb.append("적");

sb.append("으");

sb.append("로");

sb.append("생");

sb.append("각");

sb.append("한");

sb.append("다.");

}

System.out.println(System.currentTimeMillis());

System.out.println(sb.toString());

}


static void test3() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

StringBuilder sb = new StringBuilder(10000);

for (; l_cnt < 3000; l_cnt++) {

sb.append("긍");

sb.append("정");

sb.append("적");

sb.append("으");

sb.append("로");

sb.append("생");

sb.append("각");

sb.append("한");

sb.append("다.");

}

System.out.println(System.currentTimeMillis());

System.out.println(sb.toString());

}


test1()결과=>

1244458513307

1244458513557

(250 msec)


test2()결과=>

1244458513572

1244458513572

(0 msec)         // 약간 증가하기도 함


test3()결과=>

1244458513588

1244458513588

(0 msec)         // 약간 증가하기도 함


여러번 수행하였으나 test1()의 수행시간이 크게 나타났다.


RASEE의 설명은 다음과 같다.

When two strings are concatenated using + operator the new string is allocated. Thus, concatenating strings inside of loops is likely to lead to performance problems.

출처 : 중희의 블로그(http://blog.daum.net/jhmoon77/17454990)

'프로그래밍 > Java' 카테고리의 다른 글

Java 접근제한자  (0) 2011.09.18
Java transient  (0) 2011.09.05
Class.forName() 과 DriverManager  (0) 2011.08.31
org.apache.commons.lang.StringEscapeUtils  (0) 2011.08.25
참 쉬운 숫자 변환 DecimalFormat  (0) 2010.09.17
posted by 암초보
2009. 7. 29. 20:57 프로그래밍/eclipse
String string = new String[]{"AAAA","BBBB","CCCC","DDDD","EEEE","FFFF","GGGG","EEEE","HHHH"};

이런 긴 코드를...

ctrl + shift + f  눌러주면

String string = new String[] { "AAAA", "BBBB", "CCCC", "DDDD",
   "EEEE", "FFFF", "GGGG", "EEEE", "HHHH" };

이런식으로 정리된다.

'프로그래밍 > eclipse' 카테고리의 다른 글

import 정리  (0) 2011.09.28
JAD&JadClipse  (0) 2011.08.19
Quick Fix 단축키  (0) 2010.11.01
이클립스 실행 에러 발생 시  (0) 2009.07.17
이클립스에서 javax.servlet.* 가 없다고 할 떄  (0) 2009.07.08
posted by 암초보
2009. 7. 22. 17:44 프로그래밍/HTML&CSS

absolute : body 영역 기준으로 좌표를 잡는다.
               positioning 하게되면 기존에 차지하고 있던 영역은 사라지고 새로운 영역을 차지한다.

relative : 원래 자기가 있던 위치를 기준으로 좌표를 잡는다.
             positionning 하게되면 기존에 차지하던 영역이 그대로 보존된다.

fixed : absolute와 유사하지만,
         스크롤하더라도 위치가 고정되여 계속 같은 위치에서 따라다니는것이다.
         즉, 스크롤을 하더라도 똑같은 위치에 계속 보이게 되는 것이다.

부모 엘리먼트가 relative 속성을 가지고,
자식 엘리먼트가 absolute 속성을 가지면,
자식 엘리먼트는 body가 아니라 부모엘리먼트 위치 기준으로 좌표를 잡는다.
posted by 암초보
2009. 7. 21. 17:21 프로그래밍/기타

예를 들어,

윈도우에서 JAVA_HOME 이 Program Files 밑에 있을때,

%JAVA_HOME% 으로 경로를 읽어오면

Program만 읽어 올 때가 있다.

이때는 "%JAVA_HOME%"으로( " 를 붙여주면)

사용하면 잘 돌아간다~~~
posted by 암초보
2009. 7. 20. 02:20 프로그래밍/JavaScript

이전 버전에서는 name과 id 모두 가능했으나,

IE8에서는 id로만 가능하다.

'프로그래밍 > JavaScript' 카테고리의 다른 글

유용한팁.  (0) 2009.09.28
자바스크립트 trim()  (0) 2009.09.28
window.open() 함수 사용시 주소표시줄 설정.  (0) 2009.08.29
LiteBox2  (0) 2009.08.23
eval()함수  (1) 2009.07.01
posted by 암초보
2009. 7. 17. 23:57 프로그래밍/eclipse

 메모리 문제라기보다 VM을 못 찾는듯..

 eclipse.ini 파일에 두줄 쓰면 됩니다.

 -showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.0.v20080605-1900.jar
-vm
C:\Program Files\Java\jdk1.6.0_06\bin\javaw.exe

-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms256m
-Xmx512m

'프로그래밍 > eclipse' 카테고리의 다른 글

import 정리  (0) 2011.09.28
JAD&JadClipse  (0) 2011.08.19
Quick Fix 단축키  (0) 2010.11.01
이클립스 코드 정리 단축키  (1) 2009.07.29
이클립스에서 javax.servlet.* 가 없다고 할 떄  (0) 2009.07.08
posted by 암초보
2009. 7. 14. 11:38 프로그래밍/HTML&CSS

첫 번째, 공간을 어떻게 차지하는가

가장 두드러진 차이점은 div는 주어진 가로폭을 전부 차지하고 span은 그렇지 않다는 것입니다.

div입니다.
<div style="background-color: #FFFFCC;">div입니다.</div>
span입니다.
<span style="background-color: #FFFFCC;">span입니다.</span>

쉽게 구분되죠?

두 번째, 폭(width)과 높이(height)

또한 div는 폭과 높이를 지정할 수 있지만 span은 그렇지 않습니다.

div입니다. 폭과 높이를 가졌습니다.
<div style="background-color: #FFFFCC; width: 150px; height: 50px;">div입니다. 폭과 높이를 가졌습니다.</div>
span입니다. 폭과 높이가 적용되지 않습니다.
<span style="background-color: #FFFFCC; width: 150px; height: 50px;">span입니다. 폭과 높이가 적용되지 않습니다.</span>

text-align, float 등의 속성도 마찬가지로 block-level인 div에만 적용할 수 있습니다. 억지로 속성을 넣어봤자 효과는 전혀 없고, 웹 표준만 어기는 결과를 가져옵니다.

세 번째, 줄 바꿈

그리고 위 첫 번째 성질로 인해 div는 필연적으로 줄 바꿈을 동반합니다. width 속성을 주어서 폭을 줄여도 나머지 공간은 사용되지 않은 채로 남아 있습니다.

div 첫 번째입니다.
div 두 번째입니다.
div 세 번째입니다.
<div style="background-color: #FFFFEE;">div 첫 번째입니다.</div>
<div style="background-color: #FFFFCC; width: 150px;">div 두 번째입니다.</div>
<div style="background-color: #FFFF99; width: 150px;">div 세 번째입니다.</div>

span 첫 번째입니다. span 두 번째입니다. span 세 번째입니다.
<span style="background-color: #FFFFEE;">span 첫 번째입니다.</span>
<span style="background-color: #FFFFCC;">span 두 번째입니다.</span>
<span style="background-color: #FFFF99;">span 세 번째입니다.</span>

그리고 span은 이렇게 문장 중간에도 들어갈 수 있습니다.
그리고 span은 <span style="background-color: #FFFFCC;">이렇게</span> 문장 중간에도 들어갈 수 있습니다.

이상입니다. 앞으로 생각나면 더 추가하겠습니다.


출처 : chatii의 웹노트(http://chatii.textcube.com/45)
posted by 암초보
2009. 7. 8. 09:10 프로그래밍/eclipse
javax.servlet.*

분명 멀쩡히 servlet-api.jar 파일이 존재하고, CLASSPATH도 잡아줬는데 계속 이클립스에서만 없다고 징징댄다면,

프로젝트 Properties → Java Build Path → Libraries에 톰캣/commons/lib 폴더의 servlet-api.jar를 추가해준다면 된다는 말씀~

'프로그래밍 > eclipse' 카테고리의 다른 글

import 정리  (0) 2011.09.28
JAD&JadClipse  (0) 2011.08.19
Quick Fix 단축키  (0) 2010.11.01
이클립스 코드 정리 단축키  (1) 2009.07.29
이클립스 실행 에러 발생 시  (0) 2009.07.17
posted by 암초보
2009. 7. 1. 09:21 프로그래밍/JavaScript
eval() 함수는 eval안에 있는 문자형 수식을 계산하거나
문자형 숫자를 숫자형 숫자로 바꿔주는 함수다.
 

 
- 소스 설명 -
 
(참고로 소스는 오른쪽 상단에 첨부하였으니 열기로 열어 테스트를 통해 쉽게 이해하자.)
 
소스는 폼에 있는 데이터를 가져와 실행하는 메소드 3개로 구성되어 있다.
첫번째 메소드 evala() 에서는 eval1이라는 text의 값을 가져와 eval함수를 이용 수식을 계산해주는 함수다. 5*5+4 로 기본값으로 넣은 것을 계산하여 경고창에 29라는 숫자를 보여준다.
 
두번째 메소드 evalb()는 eval2,eval3의 text값을 가져와 더하는 예제인데 우리가 폼에 있는 값을 그냥 가져와 더하면10+10 = 1010 이 된다. 이것은 숫자가 아닌 문자형태로 값을 가져오기 때문에 일어나는 현상이다.숫자로 계산하기 위해서는 세번째 메소드 evalc()와 같이 eval함수를 써숫자형으로 변경해줘야지만 10+10 = 20 이 나오게 된다.
 
eval은 Java에서 Interger.parseInt와 비슷하다.
String a = "123";
String b = "456";
int c;
c = Integer.parseInt(a) + Integer.parseInt(b);
System.out.println(c);

 


'프로그래밍 > JavaScript' 카테고리의 다른 글

유용한팁.  (0) 2009.09.28
자바스크립트 trim()  (0) 2009.09.28
window.open() 함수 사용시 주소표시줄 설정.  (0) 2009.08.29
LiteBox2  (0) 2009.08.23
getElementById 할 때..  (0) 2009.07.20
posted by 암초보