본문 바로가기

Programming/JAVA

자바에서 문자열의 좌/우 정렬 자바에서 문자열의 좌/우 정렬 . 문자열인 텍스트를 자바에서 좌측, 우측, 중앙 정렬하기 위해서는 별도의 클래스를 구현해서 이용해야 하는데 그 예가 아래의 StringAlign.java 입니다. 별도로 만들어진 StringAlign.java라는 텍스트 정렬용 클래스는 Formatter 클래스를 상속하여 문자열의 정렬을 구현했습니다. ------------------- StringAlign.java ------------------ import java.text.*; /** Bare-minimum String formatter (string aligner). */ public class StringAlign extends Format { /* Constant for left justification. */.. 더보기
실행 시 Stack Trace 얻기 Throwable클래스의 printStackTrace() 메소드를 이용하여 얻을 수도 있으며, Thread의 dumpStack() 메소드를 이용 할 수도 있습니다. public class GetStackTrace { public static void main(String[] args) { //현재의 호출 스택을 System.out에 출력 합니다. //printStackTrace 메소드는 3개의 오버로딩 함수가 있으니 확인 바랍니다. Throwable t = new Throwable(); t.printStackTrace(System.out); System.out.println("--------------------------------------"); //이번엔 Thread의 dumpStack()을 이용합.. 더보기
WebLogic서버 감시 데몬 웹로직 서버가 정상인지를 간단히 체크하는 자바 코드 입니다. 보시고 더 좋은 방법있으시면 좀 알려주세요~ private String weblogicPing1 = "java weblogic.Admin -url t3://150.19.1.110:8001 -username system -password weblogic PING"; try { //Unix ps -ef을 통해 프로세스가 살아 있는지 확인 Runtime rt = Runtime.getRuntime(); //-------------------------------------------------------------- // WAS1 Check //------------------------------------------------------------.. 더보기
싱글톤(Singleton)을 만들자~~ 싱글톤이란 하나의 인스턴스만 생성되는 구조 입니다. 두 가지 방법으로 표현이 가능한데 아래의 예를 참고 바랍니다. 1. public static final 멤버변수만을 이용 public class SingtonTest { public static final SingletonTest instance = new SingletonTest(); private SingletonTest() {…} } SingletonTest 클래스의 private 생성자는 static 변수인 instance가 초기화 될 때 딱 한번 호출 됩니다. static 변수이므로 실행을 위해 메모리에 로딩될 때 초기화 될 것 입니다. 이러한 경우는 멀티 쓰레드 환경이라도 하나의 유일한 인스턴스를 보장 합니다. 2. public static .. 더보기
CTRL+C를 누르거나 프로그램 종료 시 특정 작업 수행 하기 CTRL+C를 누르거나 프로그램 종료 시 특정 작업 수행 하기 컨트롤+씨 키를 누르면 작업 수행 도중 프로그램이 종료 되어 버리므로 어떤 자원을 사용하고 있었다면 종료하지 못한 채 프로그램이 끝나버림으로서 추후 문제가 발생할 수도 있습니다. Runtim 클래스의 addShutdownHook 메소드는 프로그램 종료시에 수행 할 쓰레드를 JVM에 알려주는 역할을 합니다. 즉 프로그램이 종료 되기전에 자원을 반환해야 하는 경우(Database 연결, File Close)가 있다면 여가에서 Thread를 만들어 처리를 하시면 됩니다. public class Shutdown implements Runnable{ public void run() { //만약 CTRL+C 키가 눌리어 지지 않으면 프로그램이 종료시 호.. 더보기
외부 프로그램 실행 하기 Runtime 클래스의 exec() 메소드를 통해 외부 프로그램을 실행 시킬 수 있으며 Process 클래스의 waitFor() 메소드를 사용하면 실행시킨 프로그램이 종료 될 때까지 기다릴 수 있습니다. 아래의 예제를 참고 하세요~ public class Execute { public static void main(String[] args) throws Exception { runWord(); } static Runtime r = Runtime.getRuntime(); public static void runWord() throws Exception { //실행시에 인자를 줄려면 exec(String[]) 형태로 호출 Process word = r.exec("notepad.exe"); //Word 프로그.. 더보기
메모리 사용량 확인 메모리 사용량 확인 Runtime의 maxMemory, totalMemory, freeMemory 메소드를 이용하면 현재 애플리케이션이 사용하고 있는 메모리 상태를 확인 할 수 있습니다. 아래의 예제를 확인 하세요~ import java.text.DecimalFormat; public class MonitorMemory { static Runtime r = Runtime.getRuntime(); public static void main(String[] args) { showMemory(); } public static void showMemory() { DecimalFormat format = new DecimalFormat("###,###,###.##"); //JVM이 현재 시스템에 요구 가능한 최대.. 더보기
System 환경 읽어 오기 System 환경 읽어 오기 Java.lang.System 클래스는 다음과 같은 시스템의 환경에 관한 정보를 제공 합니다. java.version: Java Runtime Environment 의 버젼 java.vendor: Java Runtime Environment 의 벤더 java.vendor.url: Java 벤더의 URL java.home: Java 의 인스톨처 디렉토리 java.vm.specification.version: Java 가상 머신의 사양 버젼 java.vm.specification.vendor: Java 가상 머신의 사양 벤더 java.vm.specification.name: Java 가상 머신의 사양명 java.vm.version: Java 가상 머신의 구현 버젼 java.vm... 더보기
Garbage Collector 호출하기 Garbage Collector 호출하기 C++과는 다르게 자바에서 new 연산자를 통해 객체를 생성한 후 특별히 객체를 삭제하는 키워(C++의 delete)는 없습니다. 그 이유는 JVM이 더 이상 사용되지 않는 객체를 자동으로 메모리에서 삭제하는데 이렇게 사용되지 않는 객체를 처리하는 것이 Garbage Collector 입니다. 자바언어의 강점이기도 합니다. 한편 프로그래머가 명시적으로 이 Garbage Collector를 호출 할 수 있는데 System.gc()를 이용 합니다. 아래의 예문을 참고 하세요~ public class CallGarbageColletor { public static void main(String[] args) { byte[] test = new byte[4096]; Ru.. 더보기
OutOfMemory 해결법 OutOfMemory 해결 법 OutOfMemory 오류는 Exception이 아니라 Error 이기에 try ~ catch로 잡히지 않는 시스템 오류 입니다. 이 경우엔 아래처럼 JVM의 Heap 크기를 조절 해야 합니다. Java –Xms64m –Xmx128m classname -Xms : 최소 힙 크기 -Xmx : 최대 힙 크기 더보기