Java 프로그램 연산 속도 계산하기 연산속도를 계산하기 위해서는 System.currentTimeMillis()나 System.nanoTime()을 이용합니다. 두 메소드는 UTC라는 시간 표준 체계를 따라 현재시간을 리턴해줍니다. 그래서 연산 속도를 측정하기 위해서 시작시간의 현재시간, 종료시간의 현재시간의 차를 이용하면 연산속도가 얼마인지 계산 해 낼 수 있습니다. currentTimeMillis는 ms로리턴하고(1/1,000초) JDK 5버젼 이상부터는 사용가능한 nanoTime는 ns(1,000,000,000초)로 리턴하니 가능하면 더 정확한 nanoTime을 사용하는게 좋습니다. String vs StringBuffer 연산 속도 비교해보기 String String을 이용하여서 "abcde"라..
정규표현식 정규 표현식(Regular Expression)은 주어진 문자열 데이터에서 특정한 조건의 문자를 '검색'하는 과정을 처리 할 수 있도록 하는 규칙입니다. 정규표현식은 특정 언어에서만 사용되는 것이 아니라, 대부분의 언어에서 범용적으로 사용됩니다.예를들어 c[a-z]이라는 정규표현식은 알파벳 c로 시작하고 뒤에 알파벳 a부터 z까지의 문자 중 하나가 오는 문자를 검색합니다.ex) ca, cb, cc, cd ... cz 라는 문자는 찾습니다.ex) 하지만 c1 과 같이 다른 문자는 찾지 못합니다. 정규표현식을 작성하는 방법에 대해서는 관련된 도서나 인터넷상의 자료를 이용해서 공부해야 합니다.정규표현식을 정리해둔 사이트 http://zvon.org/comp/r/tut-Regexp.html#Pages..
메소드를 람다식으로 변경하는 방법에 대해서는 이전 포스팅을 참고 해주시기 바랍니다. ☞ 자바의 람다식(Lambda) - 1. 람다식으로 표현하기 람다식 사용하기 - 함수형 인터페이스 람다식으로 바뀐 메소드를 사용하기 위해서는 함수형 인터페이스를 선언해야 합니다. 인터페이스를 함수형 인터페이스로 선언하기 위해서는 '단 하나의 추상메소드'만이 선언 되어 있어야 합니다. interface MyInterface{ abstract int myMethod(int a); } 위와 같이 선언된 인터페이스를 함수형 인터페이스라고 합니다. (인터페이스명 위에 @FunctionalInterface라고 선언하면 '단 하나의 추상메소드가 있는지' 조건을 검사해줍니다.)추상메소드에서 유심히 봐야 할 것은, 인자의 갯수와 타입 그..
람다식(Lambda expression) 함수형 프로그래밍의 등장으로 많은 언어들이 함수형 프로그래밍으로 만들어 지고 있고, 자바는 객체지향언어 이지만 이러한 시대적 흐름의 맞추어 유연하게 변하기 위해서 람다식을 도입하게 되었습니다. 함수형 프로그래밍이라는 이름에서 알 수 있듯이 람다식은 함수(메소드)의 변형으로 만들어 집니다. 람다식을 사용하게 되면 메소드가 '식(expression)'으로 바뀌게 되고 마치 하나의 '변수(값)' 처럼 사용 할 수 있게 됩니다. 기존의 메소드를 람다식으로 바꾸기 //기존 메소드 int myMetohd (int a, int b){ return a > b ? a: b; }반환타입과 메서드이름을 제거합니다.매개변수의 선언부 괄호()와 몸통{} 사이에 ->를 추가합니다. //람..
클래스패스(classpath) 자바의 가상머신(JVM)이 컴파일된 클래스 파일(.class 확장자 파일)을 실행시킬 때, 클래스패스(classpath)에 설정된 경로에서 파일을 찾아봅니다. 그래서 자바파일을 (터미널 환경에서 직접) 컴파일 할 때는 아래와 같이 클래스패스 경로를 지정해주어야 합니다. $java -classpath ".:bin" Hello 옵션으로 클래스패스를 주지 않으면 현재 디렉토리에서만 클래스를 찾게 되지만, 만약 클래스들이 현재 디렉토리와 다른 경로에 존재한다면 위의 bin과 같이 명시해주어야 합니다. :(콜론)을 이용하여 경로를 구분합니다. (윈도우는 ; 세미콜론으로 구분합니다.) 위와 같이 설정하면 현재폴더와 bin 폴더 두 군데에서 찾아보게 됩니다.위의 예제와 같이 클래스패스가..
JDBC(Java DataBase Connectivity) JDBC란 자바에서 데이터베이스를 다루기 위한 API 입니다. Spring을 이용하게되면 JDBC를 직접 다루는 일은 없으나, SpringJDBC, MyBatis, JPA 등등 데이터베이스와 관련한 API는 JDBC를 기본으로 하여 동작하게 됩니다. 예제는 직접적인 코드 설명을 주로 하고, MAVEN과 mariaDB를 이용해서 진행했습니다. 1) SQL에 맞는 의존성을 MAVEN에 넣는다. (참고로 DBMS 버젼과 maven에 주입할 client의 버젼은 다른 것입니다.) org.mariadb.jdbc mariadb-java-client 2.3.0 2) 리플렉션을 이용하여, SQL에 맞는 드라이버를 등록한다. Class.forName("org.m..
롬복 플러그인의 설치&설정방법은 이전 포스팅을 참고 한다. ☞ 인텔리제이(intelliJ)에서 롬복(Lombok) 설치&설정하기롬복(Lombok) 롬복(Lombok)은 Java에서 반복적으로 작성되는 getters/setters나 equals, hashCode, toString 또는 생성자 관련 코드들을 간결하게 만들어주는 라이브러리다. 사실 자바를 지원하는 웬만한 IDE가 이런 코드들의 자동 생성을 지원하고 있어서 필요성을 못 느낄수도 있으나, 롬복(Lombok)은 유지 보수시에 큰 도움이 된다. 유지보수시에 클래스의 필드의 갯수와 비례해서 길어지는 getters/setters가 없으니 코드가독성이 올라가고, 필드값을 추가삭제 할 때도 getters/setters에 대한 신경을 쓰지 않아도 된다. @G..
롬복(Lombok)이란?롬복(Lombok)은 Java에서 반복적으로 작성되는 getters/setters나 equals, hashCode, toString 또는 생성자 관련 코드들을 간결하게 만들어주는 라이브러리다. 사실 자바를 지원하는 웬만한 IDE가 이런 코드들의 자동 생성을 지원하고 있어서 필요성을 못 느낄수도 있으나, 롬복(Lombok)은 유지 보수시에 큰 도움이 된다. 유지보수시에 클래스의 필드의 갯수와 비례해서 길어지는 getters/setters가 없으니 코드가독성이 올라가고, 필드값을 추가삭제 할 때도 getters/setters에 대한 신경을 쓰지 않아도 된다. Lombok 플러그인 설치하기 File - Settings - Plugins - Browse repositories . . . ..