Developer/Java
-
2013 코드잼 - Problem A. Tic-Tac-Toe-TomekDeveloper/Java 2013. 4. 16. 11:19
1번 구글 코드잼 바로가기 일종의 오목게임 게임 규칙1. T = X or O 2. 가로, 세로, 대각선 의 일치 3. 4*4 판. 4. 판이 모두 채워진 상태에서의 비겼을경우 DRWA . 빈공간이 있을시에는 게임이 아직 완료되지 않았다고 출력 Input 과 Output 이다. 메인 소스 package com.google.codezem.chap1; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader; import com.google.codezem.common.ExFileReader; public class Main { private Buffer..
-
[Tomcat] 성능 향상Developer/Java 2013. 3. 14. 11:20
1 Tomcat 성능 향상 방법들 *. JVM Tuning 튜닝 1. 메모리 가용성을 확보한 다음 힙 사이즈를 늘려라 - -server -Xms768M -Xmx768M 2. garbage collector를 튜닝하라(GC 로깅 분석 후) - -XX: +UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStam... 2010. 1. 17 오후 7:27:00 2 logrotate를 활용하여 TOMCAT 로그파일(catalina.out) 일자별로 관리하기 tweetmeme_url = 'http://www.mimul.co... 2009. 12. 27 오후 8:04:00 3 WAS 구동시 Log4j 오류 해결 방안 tweetmeme_url = 'http://mimu..
-
[Java] 리플렉션 (Reflection)Developer/Java 2013. 3. 13. 12:20
리플렉션(reflection)은 자바 프로그래밍 언어의 기능 중 하나다. 리플렉션을 사용하면 자바 프로그램을 실행해서 해당 프로그램을 조사하거나 스스로를 살펴볼(introspect) 수 있다. 또한 프로그램의 내부 프로퍼티를 조작할 수도 있다. 예를 들어 리플렉션을 사용하면 자바 클래스에서 해당 클래스의 멤버의 이름을 모두 획득해서 표시할 수 있다. 자바 클래스에서 스스로를 조사하고 조작하는 이러한 기능이 그리 대단해 보이지 않을 수도 있다. 하지만 이러한 기능을 지원하지 않는 프로그래밍 언어도 있다. 예를 들어 파스칼, C, C++ 프로그램에서는 해당 프로그램 안에 정의된 함수에 대한 정보를 얻을 수 있는 방법이 없다. 실제로 자바 빈(JavaBeans)에서 리플렉션을 적용했다. 자바 빈을 사용하면 소..
-
[Java] JVM 구조Developer/Java 2013. 3. 13. 11:07
JVM에서 실행되는 모든 프로그램들(스레드)들은 메소드 영역과 힙 영역을 공유하게 된다. 메소드 영역은 클래스 내의 메소드에 해당하는 바이트코드와 클래스 변수 등이 저장되는 영역이며, 힙영역은 프로그램의 실행 중에 생성된 객체를 저장하게 된다. 스택영역은 각각의 스레드가 수행되면서 실행하고 있는 메소드의 호출 상태를 저장하며, 여러개의 스레드가 수행되는 경우 다수개의 스택 프레임으로 구성될 수 있다. 메소드 영역 자바 프로그램을 구성하고 있는 메소드와 클래스 변수(static으로 선언된 변수)를 저장하기 위한 공간이다. JVM은 복수개의 스레드가 메소드를 정상적으로 사용하기 위한 동기화 기법을 제공한다 힙 영역 프로그램 상에서 데이터를 저장하기 위해 동적으로(실행시간에) 할당하여 쓸 수 있는 메모리 영역..
-
[Java] Multi-Thread - 채팅Developer/Java 2013. 3. 13. 10:19
파일 1 ClientThread.java package network.chatting.client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import network.util.close.NetworkUtil; /* * 서버가 출력한 글을 읽어서 표준 출력(모니터)에 출력 */ public class ClientThread extends Thread { private Socket socke..
-
[JNI] 자바로 DLL 로드 하기.Developer/Java 2012. 11. 2. 14:14
자바에서는 JNI를 통하여 C코드를 사용할 수 있다. 주의 할점 경로 및 자바 헤더 파일 생성 과정 아래의 예를 들어 보자 먼저 자바로 C 코드의 함수명을 호출할 메소드를 만든다 package com.test.util public class loaddll { public native void a(); public native int b(String str); public native String c(int integer); } 여기서 주의 할점은 package 명이다. 이 패키지명은 C코드와 통신하기 위한 헤더파일을 생성시 매우 중요 하다. 자 그럼 컴파일을 해보자 자바 프로젝트가 있는 root 디렉토리 즉 src 폴더에 가서 CMD 창을 열고 1. javac com.test.util.loaddll.ja..