본문 바로가기
반응형

Java & Spring14

java) 스레드 Thread 와 동기화 스레드란 https://co1nam.tistory.com/38 1. 스레드를 생성하는 두 가지 방법 첫 번째 방법은 Thread를 상속받는 것입니다. class Manager extends Thread { SharedResources sr; public Manager(SharedResources r) { this.sr = r; } public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("manager wake up!!!"); } } } 두 번째는 Runnable interface를 구현하면 됩니다. class Client implements Runnable { SharedResour.. 2021. 12. 9.
Java 입출력을 위한 BufferedReader / BufferedWriter 사용자로부터 입력을 받을 수 있는 간편한 방법으로 Scanner 클래스가 있지만 버퍼 용량이 작기 때문에 대량의 데이터를 처리할 때는 속도가 저하되는 문제점이 있습니다. 반면, BufferedReader/Writer 의 경우 버퍼 용량이 커서 대량의 데이터를 입출력할 때 용이하지만 조금 사용하기 까다로운 점이 있습니다. 입력받기 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.IOException; public static void main(String[] args) throws IOExcept.. 2021. 11. 14.
Java 큰 수의 표현 BigInteger 와 BigDecimal 정수 int나 long과 같은 데이터타입의 범위(대략 9,223,372,036,854,775,807) 를 넘는 숫자는 각 숫자를 BigInteger class의 객체로 나타낼 수 있습니다. import java.Math.BigInteger; BigInteger b1 = new BigInteger("12345678901234567890"); BigInteger b2 = new BigInteger("1"); System.out.println(b1.compareTo(b2)); // b1>b2면 1, 같으면 0, b1 2021. 11. 1.
Java NumberFormatException 에 대처하는 우리들의 자세 NumberFormatException(이하, NFE)은 숫자가 아닌 것을 숫자로 바꾸려고 하는 경우를 말합니다. 주로 문자열을 Integer.parseInt()를 이용해 int형으로 바꿀 때 발생합니다. 사례 1. Data type 의 범위를 넘어서는 경우 int 타입은 –2,147,483,648 ~ 2,147,483,647 까지의 숫자를 표현할 수 있습니다. 만약 String s = "12,147,483,648"를 int로 바꾸려고 한다면 int형의 범위를 넘어서게 되므로 NFE가 발생합니다. 해결방법 long 을 씁니다. long의 범위는 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 입니다. 만약 long보다 긴 경우는? BigInteger 클래.. 2021. 10. 27.
Java 에서 swap 하는 방법 함수는 입력받은 값을 가공하여 반환해줍니다. (반환을 하지 않을 수도 있음 ft. void) 함수가 내부에서 사용하는 변수는 지역변수 local variable 이기 때문에 그 값을 변경하더라도 함수가 종료되면서 함께 소멸됩니다. 함수호출시 값을 함수에게 전달하는 방법은 두 가지가 있습니다. Call by value는 값 자체 또는 변수에 담긴 값을 복사하여 매개변수로 전달합니다. Call by reference는 값이 저장된 메모리 공간의 주소를 전달하여, 함수가 그 공간을 참조할 수 있게 해 줍니다. Java에는 포인터가 없고, 기본적으로 call by value 이기 때문에 c언어에서는 간단히 만들 수 있는 swap을 구현하려면 짱구를 좀 굴려야 합니다. 1. 배열 이용하기 Integer[] arr.. 2021. 10. 27.
Java 정규표현식 - 2. 문자열에서 숫자 등 추출하기 String s = "a1b2c3d4e5f6"; String[] a = new String[3]; a[0] = s.replaceAll("[0-9]",""); // 모든 숫자를 "" 로 변경 후 문자열을 반환 a[1] = s.replaceFirst("[0-9]",""); // 처음 나오는 숫자를 ""로 변경 후 문자열을 반환 a[2] = Boolean.toString(s.matches("[a-z]")); // 문자만 존재할 때 true 반환 String[] ar = s.split("[0-9]"); // 숫자를 구분자로 문자열을 분리하여 String[]로 반환 for(String ss : a) { System.out.println(ss); } for(String sss : ar) { System.out.pr.. 2021. 10. 25.
반응형