본문 바로가기

Programming

문자열 뒤집기 StringBuffer의 reverse() 메소드를 이용하여 문자열을 뒤집을 수도 있으며 Stack을 이용하는 방법도 있습니다. 아래의 예를 참고 바랍니다. ------------------------------------------------------------- StringBuffer를 이용하는 경우는 다음과 같은 형태로 하면 됩니다. ------------------------------------------------------------- //문자열 뒤집기 String s = “abc”; String reverseStr = new StringBuffer(s).reverse(); System.out.println(“뒤집어진 문자열  “ + reverseStr); -----------------.. 더보기
파일 이름 변경 이름을 바꾸고자 하는 파일을 File 객체로 만든 후 renameTo(new File(“새파일명”)) 메소드를 사용합니다. 아래 예제를 확인 하세요~ import java.io.*; public class RenameFile { public static void main(Stirng[] args) throws IOException { //이름을 바꿀 파일 File f1 = new File(“old.file”); //파일의 이름을 new.file로 변경 f1.renameTo(new File(“new.file”)); } } 더보기
유니코드와 문자열의 변환 유니코드와 문자열의 변환 자바의 char와 유니코드 문자의 길이가 모두 16비트 이므로 각각 하나씩 대응한다고 보면 되는데 String 클래스의 charAt()은 유니코드 문자를 반환하고 StringBuffer의 append() 메소드는 char 형태를 append 할 수 있습니다. C에서 처럼 자부 필요하지는 않지만 char가 정수형이므로 산술 연산도 가능한데 C와 같은 언어에서는 Character 클래스가 이러한 연산을 위한 메소드도 제공 합니다. 아래 예제는 루프를 제어하기 위한 char에 산술 연산을 이용하고 StringBuffer에 그 문자를 추가하는 예제 입니다. -------------------------------------------------- [UnicodeChar.java] pub.. 더보기
자바에서 문자열의 좌/우 정렬 자바에서 문자열의 좌/우 정렬 . 문자열인 텍스트를 자바에서 좌측, 우측, 중앙 정렬하기 위해서는 별도의 클래스를 구현해서 이용해야 하는데 그 예가 아래의 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이 현재 시스템에 요구 가능한 최대.. 더보기