Developer/Java
-
-
-
-
[Java] ThreadLocal 사용법과 활용Developer/Java 2013. 8. 14. 16:30
- 출처 : 최범균님의 자바캔 블로그 - 자바 1.2 버전부터 제공되고 있지만 아직 다수의 개발자들이 잘 몰라서 활용을 잘 못하는 기능이 하나 있는데, 그 기능이 바로 쓰레드 단위로 로컬 변수를 할당하는 기능이다. 이 기능은 ThreadLocal 클래스를 통해서 제공되는데, 본 글에서는 ThreadLocal 클래스의 기본적인 사용방법과 활용 방법을 살펴보도록 하겠다. ThreadLocal이란? 일반 변수의 수명은 특정 코드 블록(예, 메서드 범위, for 블록 범위 등) 범위 내에서만 유효하다. { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영..
-
[Java] PID 추출Developer/Java 2013. 8. 12. 16:12
String processname="firefox"; // 가져올 프로세스 ProcessBuilder pb2 = new ProcessBuilder("ps" ,"-e"); Process myproc = pb2.start(); InputStream errorOutput = new BufferedInputStream(myproc.getErrorStream(), 1000000); InputStream consoleOutput = new BufferedInputStream(myproc.getInputStream(), 1000000); int ch; String errorlist =""; while ((ch = errorOutput.read()) != -1) { errorlist = errorlist + (char..
-
자바 기초 - 누군가를 위한..ㅋDeveloper/Java 2013. 5. 7. 17:40
자바의 기본 문법 이 번 장에서는 자바 프로그램의 기본적인 문법을 살펴보자. 코드 작성 원칙(Coding Rules) 자바의 코드 작성 원칙은 C언어와 거의 유사하다. C언어를 해본 독자라면 쉽게 이해할 수 있을 것이다. C언어를 해보지 않은 독자도 이해할 수 있도록 충분히 쉽게 설명하였으므로 즐거운 마음으로 읽기 바란다. ◈ 한 명령(문장)이 끝나면 세미콜론(;)을 붙여야 한다. ◈ 블록(Block)은 '{'와 '}'로 묶여진 부분을 말하는 것으로 클래스와 메소드를 정의할 때, 또는 제어문에서 사용된다. ◈ 모든 띄움 문자는 모두 하나의 space(한 칸 띄움)로 인식된다. public static void main(String [] args){ 자바는 위의 문장을 아래와 같이 인식한다. public ..
-
2013 코드잼 - Problem C.Developer/Java 2013. 4. 19. 10:04
Problem C. 3번째 문제다.. 진자 힘들더라.. 이거참.. 문제의 규칙은 다음과 같다 특정 범위의 숫자중 제곱근이면서 팰린드롬의 수인 것을 찾아라. smaill 과 large input 차이는 어마어마하다.. 10에 몇승인지.. 처음에는 단순하게 1부터 검사하는 로직을 짰었다. smaill은 간단히 패스가 되었지만. large1부턴 난감.. 어느정도 해결을 보긴 했다. 요점은 다음과 같다. 규칙 1. 제곱근의 특징은 1,4,5,6,9 로 끝난다. 규칙 2. 규칙 1을 이용하여 팰린드롬일 가능성은 숫자의 앞 과 뒤는 꼭 1,4,5,6,9 로 시작한다. 해결책 : 입력 숫자 범위내에서 임의이 순차적으로 숫자를 더해가는 방식이 아닌. 팰린드롬이면서 제곱근일 가능성이 높은 숫자들을 만든다. 하지만 lar..
-
2013 코드잼 - Problem B.Developer/Java 2013. 4. 16. 11:57
코드잼 예선 B.Proble. Lawnmower 2번째 내용의 핵심은 다음과 같다 잔디 깍기 문제이며, 규칙은 다음과 같다. 1. 시작은 외곽에서부터 동작.2. 직선으로만 움직인다. 3. 이동 도중에는 높이보다 높은 풀들은 잘라버린다.4. 끝에 가면 나가버린다.5. 박에서만 높이를 다시 설정할 수 있다.6. 도중에 잔디를 깍는도중 멈출수 없다. 예시는 다음과 같습니다. 처음에 6번 문제를 관과하여. 소스를 작성했으나. 지금은 수정하여 정답을 일치하였다. 즉 주요 핵심 사항을 정리하자면 잔디 높이. 깍는 방향이 되겠습니다. 저는 int 2차원 배열을 이용했습니다. package com.google.codezem.chap2; import java.io.IOException; import com.google...