본문 바로가기

Programming Practice

memory static vs. stack vs. heap 메모리 영역 이용 주체 메모리 반환 방식 staticstatic 이 붙은 instance variables, method* 모든 objects에서 사용할 수 있음 (class명.변수, class명.method)java program 종료 시 stack method invocations, local variables method 가 실행완료되면, method 의 stack frame이 stack에서 사라진다. heap objects, instance variablesreference 변수의 메모리가 반환되면, Garbage Collector 가 object를 heap에서 정리함 cf. 변수 비교 변수 설명 instance variables class 내 선언되.. 더보기
모니터링 tool 1. NMON1) NMON 이란? - Nigel's performance MONitor - A free tool to analyze AIX and Linux performance - nmon is a tool for viewing & collecting system data * AIX : Closed source / Built in as part of topas * Linux : Open Source / Download and install from / get the right one for your distributioncf. 종료 시 다음 record를 저장하고 종료되도록 설정 * AIX : kill -s SIGUSR2 Linux : kill -s USR2 ※ kill -s 시그널명 kill 할 때 .. 더보기
일시 차이 구하기 절차1) 값이 char 라면, date 형태로 변경TO_DATE(값, 'YYYYMMDDHH24MISS')2) date 간 차이 구하기NUMTODSINTERVAL(DATE1 - DATE2, 'DAY')3) 원하는 포맷에 맞춰 SUBSTRSUBSTR(NUMTODSINTERVAL(DATE1-DATE2, 'DAY'), 12,8) 더보기
Shell 기타 1. 현재 시각 기준 1분전 시각을 변수에 설정하기ONE_MINUTE_AGO = $(perl -e 'USE POSIX;print strftime "%Y-%m-%d %H:%M", localtime time-60;) 2. unix 명령어 결과를 변수에 설정 (홑따옴표 '' 사용X, 키보드 왼쪽 최상단의 `` 을 사용)CLOSE_CNT = `grep "test" 위치` 3. process 가 기동 중일 때 0이 아닌 값 return 하게 하기 : PID를 return한다.ps -ef | grep -v grep | grep process명 | awk '{print $2}' | head -1 더보기
파일 관리 1. 파일 찾기1) 디렉토리명에 특정 문구를 포함한 디렉토리를 제외하고 파일 찾기find 특정위치 -type d -name 특정문구 -prune -o -name 찾을파일명 -printfind 특정위치 -type d | grep -v *특정문구*" | awk '{"find " $1 "-type f "}' | sh** 특정문구가 여러개인 경우find 특정위치 -type d | egrep -v '(특정문구1| 특정문구2 | 특정문구3)' | awk '{find " $1 "-type f"}' | sh * find 의 time 옵션종류 설명 atime access time - 파일에 접근했던 시각 ctime change time - 파일이 change (ownership - chown, access permisi.. 더보기
여러 class의 각각의 method를 각각의 간격을 두고 실행하기 1. 기본 여러 class 별로 Thread를 만들고, Thread 내에서 method를 반복해서 수행 2. 사용 예시 1) 여러 class 의 interface 만들기 public interface ExecuteService { public int getPeriod(); public void execute(); } 2) interface를 implements 하는 여러 class 만들기 public class A implements ExecuteService { //1초 간격으로 수행 public int getPeriod() { return 1; } public void execute() { SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyyMM.. 더보기
DateUtil 1. 현재 날짜와 시분초 를 String으로 가져오기 SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyyMMddHHmmss"); String currentDate = yyyyMMddHHmmss.format(new Date()); 더보기
class 의 path 로 class 객체 만들기 1. 사용 사례 - class 의 path를 파라미터로 받아서 class 객체를 생성할 때 - 기본 사용 예시 (1) //1) class 경로 설정 (separator 를 . 으로 설정한다) - 실제 사용에서는 path를 파라미터로 받음 String path = "inheritanceTest.Tiger"; //2) class 일반 객체 생성 Class c = Class.forName(path); //3) 실제 class 객체 생성 Tiger tiger = (Tiger) c.newInstance(); - 실제 사용 예시 (2) : class 의 path를 파라미터로 받기 때문에 실제 class의 이름을 알기 힘들다. : 따라서 다형성을 이용해 상위 class 로 객체를 생성한다. 생성된 객체는 상위 cla.. 더보기
Annotation Type 사용 1. 작성 1) 생성 - eclipse : New - Annotation 2) 변수 구성 - 일반변수(); public @interface MessageType { public char kind(); public char id(); } 3) Annotation 구성 - class 또는 field 에 설정된 annotation 객체를 사용하기 위해서는 @Retention(RetentionPolicy.RUNTIME) - 사용 대상 annotation class @Target(ElementType.TYPE) field @Target(ElementType.FIELD) 2. class에 사용 1) 사용 - class 의 위에 @annotationtype명(변수1=값1, 변수2=값2) 로 설정한다. @Message.. 더보기
특정 폴더 안에 있는 파일 다른 폴더로 복사하기 String dirpath = "F:/development/JavaTest/"; String despath = "F:/development/JavaTest/copy/"; File dir = new File(dirpath); if (dir.isDirectory()) { File[] files = dir.listFiles( new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isFile(); } } ); for (File file : files) { File des = new File(despath + file.getName()); if (des.exists()) { System.out.println("des .. 더보기