본문 바로가기

개발 언어12

[Java] 시간 측정하기 System currentTimeMillis [Java] 코드 실행시간 측정하기 개발을 하다보면 내가 작성한 코드의 효율성을 알아보기 위해 주로 시간을 측정합니다. 또한 어느 부분에서 딜레이가 걸리는지 확인하기 위해 사용할수도 있습니다. 디버깅 중단점을 걸어서 확인할수도 있지만 매번 중단점을 넘겨줘야 해서 코드로 시간을 측정 하는 방법이 편리합니다. Java 현재시간 측정 함수 Java 에서 기본적으로 제공하는 함수중 System.currentTimeMillis 함수를 이용하면 현재 시간을 밀리세컨드 단위로 출력할수 있습니다. [System.currentTimeMillis] System.java 클래스에 있는 함수 설명을 보면 1970년 1월1일 UTC 시간 기준으로 현재까지의 시간 차이를 밀리 세컨드 단위로 출력한 값입니다. Returns the.. 2021. 12. 24.
[Java] 람다표현식의 조합과 Comparator, Predicate, Function 디폴트 메서드(Default method) [Java8] 람다 표현식 조합, 디폴트 메서드 Java8 의 함수형 인터페이스들중 몇몇은 람다표현식을 조합한 유틸리티 메서드를 제공합니다. 람다 표현식의 조합이란 간단한 여러개의 람다 표현식을 조합하여 복잡한 람다표현식을 만드는 것입니다. 하지만 우리는 함수형 인터페이스는 단일 추상메서드(Single Abstract Method) 만을 가지는 인터페이스라고 배웠는데 별도의 유틸리티 메서드를 가진다고 하니 이해가 되지 않을수 있습니다. 여기서 말하는 유틸리티 메서드는 디폴트 메서드(Default Method) 입니다. 디폴트 메서드(Default Method) Java8 에서 새로 추가된 기능중 하나인 디폴트 메서드는 default 키워드를 이용하여 생성합니다. 클래스의 인스턴스로 접근할수 있으며 인터페.. 2021. 12. 16.
[Java] 메서드 참조(Method reference) - 정적 메서드, 생성자 참조와 람다표현식 활용 [Java8] 메서드 참조(Method reference) 메서드 참조란 람다 표현식(Lambda expression) 의 축약형으로 볼수 있습니다. 이전 포스팅에서 작성했던 사과 필터링 예제코드에서 사과를 무게별로 정렬할때 사용했던 compareTo 메서드를 예시로 들어보겠습니다. [람다 표현식] inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight())); [메서드 참조] Comparator 클래스의 comparing 메서드를 사용한 방법입니다. inventory.sort(Comparator.comparing((Apple::getWeight))); 메서드 참조를 이용하는 이유 람다 표현식은 메서드를 사용하라고 가르키는.. 2021. 12. 15.
[C 언어] 포인터의 개념과 & / *연산자 포인터 포인터란 메모리상에 위치한 데이터의 주소를 보관하는 변수이다. int *p; 포인터 변수 p는 int형 데이터의 주소값을 저장할수있는 변수이다. & 연산자 포인터변수에 어떤 변수의 주소값을 저장하려면 해당 변수의 주소값을 알아야한다. 이때 주소값을 알아내는 연산자가 바로 & 이다. int *p; int a = 10; p = &a; 포인터 변수p는 int형 변수 a의 주소값을 저장한다. * 연산자 & 연산자의 반대의 역할을 하는 연산자로 볼수있다. 포인터변수에 저장되있는 주소가 가르키는 실제 데이터값을 불러오는 연산자이다. int *p; int a = 10; p = &a; printf("%d", *p); => 10 * 연산자를 이용하여 포인터 p가 가르키는 데이터 a에 접근할수 있다. 이러한 점을 .. 2021. 12. 6.