본문 바로가기

공부(~2016)50

Simple CSV Reader - 자바 CSV 파일 읽기 import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; /** * Created by soy */ public class CSVReader { List〈person〉 personList = readPersonFromCSV("person.csv"); private List〈person〉 readPersonFromCSV(String fileName).. 2013. 8. 15.
[OS] 쓰레드 / 프로세스 차이 프로세스와 쓰레드의 관계는 플랫폼에 따라 크게 달라진다. 플랫폼이 같더라도 JVM의 구현 방법에 따라 프로세스와 쓰레드의 관계는 달라진다. 그러나 일반적으로는 "한 개의 프로세스 안에 복수개의 쓰레드가 구축"된다. 쓰레드는 메모리를 공유한다프로세스와 쓰레드의 최대 차이점은 메모리 공유의 유무이다.프로세스는 각각 독립된 메모리 공간을 가진다. 다른 프로세스의 메모리를 맘대로 읽거나 쓸 수 없다. 즉, 어떤 프로세스의 메모리 공간이 다른 프로세스로 인해 망가질 염려가 없다.반면 쓰레드는 메모리를 공유한다. (Java의 메모리 모델에는 공유메모리와 캐시메모리가 있는데, 여기서 말하는 것은 공유메모리이다.)한 개의 쓰레드가 메모리 상에 정보를 적고, 그것을 다른 쓰레드에서 읽는 것은 흔한일이다. "메모리를 공유.. 2013. 8. 7.
[Java] 팩토리얼 팩토리얼 public class Factorial { public static int factorialByLoop(int n) { int sum = 1; for(int i=n; i>1; i--) sum = sum*i; return sum; } public static int factorialByRecursion(int n) { if(n==1) return 1; return n * factorialByRecursion(n-1); } public static void main(String[] args) { System.out.println( Factorial.factorialByRecursion(5) ); System.out.println( Factorial.factorialByLoop(5) ); } } 재.. 2013. 5. 22.
[Java] 피보나치수열 with memoization 피보나치 수열 1, 1, 2, 3, 5, 8, 13, 21, ... public class Fibo { public static long fiboByRecursion(long n) { if (n == 1 || n == 2) return 1; return fibo(n-1) + fibo(n-2); } public static long fiboByLoop(long n) { if (n == 1 || n == 2) return 1; long sum = 1; long prev = 1; long temp; for(long i=3; i 0) return memo[n]; if (n == 1 || n == 2) return memo[n] = 1; return memo[n] = fibo(n-1) + fibo(n-2); } .. 2013. 5. 9.
Checked Exception / Uncheked Exception (RuntimeException) Checked Exception Exception을 상속한 클래스는 try-catch, throws 등으로 예외처리를 해주어야 한다. 처리를 해주지 않으면 컴파일시 에러가 발생한다. Unchecked Exception (RuntimeException) 반면 RuntimeException을 상속한 클래스는 예외처리가 필수가 아니다. -> ArithmeticException, IllegalArgumentException, IndexOutOfBoundsException 코드에서 미리 예외조건을 처리하게 만든다면 피할 수 있으나, 개발자가 부주의하게 코딩한 경우에 발생할 수 있는 종류의 예외들이다. http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeExcep.. 2013. 4. 24.