자바로 어플리케이션을 만들다 보면 고유한 식별값이 필요할때가 있습니다.자바에서는 그런한 값을 만들기 위한 몇가지 방법을 제공합니다.그중에서 자바5 에서부터 사용할수있는 UUID 라는 클래스가 있습니다.12345678910package info.m2sj.web; import java.util.UUID; public class UniqueIDTest { public static void main(String[] args) { UUID u = UUID.randomUUID(); System.out.println(u.toString()); }}Colored by Color Scriptercs 결과752a8725-1021-4360-8a6a-b5e263b3623d 결과는 16진수 32자리 문자열입니다. 256 Bit..
스칼라, 파이썬, 클로저, 자바스크립트 등등 수많은 유행하는 언어들이 함수형 언어이거나 또는 함수형 프로그래밍을 지원할 수 있는 요소들을 가지고 있습니다. 함수형 코딩에 장점을 자바도 더 이상외면할 수 없기에 자바 역시 8에 와서는 드디어 함수적 코딩을 할 수 있는 요소들을 도입하게 되었습니다. (사실 함수라는 가면을쓴 인터페이스 입니다. 아마 이부분은 태생적 한계일거라고 생각합니다. 이하는 의미적 함수로 칭하겠습니다.) 8이 나오기 이전에 트렌드(?) 뒤처져 약간은 외면받았던 자바에 인기를 다시 끌어올릴 만큼 획기적인 변화라고 볼 수 있습니다. 자바에서 사용하는 함수적 표현 기법 즉 람다식에 대해서 알아보겠습니다.요즘 프로그래밍을 한다면 "람다" 어디 선가 한번쯤은 들어보셨을 겁니다. 사전적 용어를 검..
자바8 에서 함수형 언어의 장점을 채용 하면서 함수형 언어에서 주로 사용되는 Currying(위키피디아) 기법을 사용할수 있게 되었습니다. Currying 은 쉽게 말하면 N개 이상의 인자를 받는 함수를 조합(chaining) 해서 재사용성을 높여주는 기법 입니다. 이하 아주 간단(유치한?)한 예제로 자바8 에서 currying 을 사용하는 코드 입니다.(아래 코드에 이해를 돕기 위해서는 자바8 에 람다식에 대한 이해가 필요 합니다.)123456789101112131415161718192021222324252627282930package function;import java.util.function.BiFunction;import java.util.function.Function;public class ..
자바개발을 하다보면 어떤 이유에서든 Out of Memory 예외를 만나는 경우가 있습니다. 하지만 사용자 코드로 임의로 발생 시키고 싶을때도 있죠.이하 JDK 1.6 기준 메모리 유형별 Out of Memory 를 발생 시키는 코드 입니다. (JVM 메모리 영역에 대한 설명은 생략) 1.PermGen123456789101112public class OomTest { public static void main(String[] args) { List nogc = new ArrayList(); while (true) { StringBuilder a = new StringBuilder(); for (int i = 0; i
- Total
- Today
- Yesterday