java

    [Java의 정석] 14. 람다와 스트림

    [Java의 정석] 14. 람다와 스트림

    1. 람다식 1) 람다식이란? 메서드의 이름과 반환값 없이, 하나의 식처럼 표현한 것으로 '익명 함수'라고도 한다. int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int) (Math.random()*5 + 1)); // 람다식 더보기 /* int max(int a, int b) { return a > b ? a : b; } */ (int a, int b) -> a > b ? a : b (a, b) -> a > b ? a : b // 타입 추론이 가능한 경우는 타입 힌트를 생략 가능 더보기 a -> a*a // 매개변수가 하나인 경우는 괄호 생략 가능 (int a) -> a*a // 매개변수 타입이 있으면 괄호 생략 불가능 더보기 /* (String name, ..

    Java Bytecode 와 RISC-V instruction 비교

    Java Bytecode 와 RISC-V instruction 비교

    c 와 java 의 차이점 - 함수호출을 c 에서는 call procedure, java 에서는 invoke method - 객체참조를 c 에서는 포인터, java 에서는 object reference - c 에서는 메모리를 동적할당한 후에 명시적으로 해제해야하는 반면, java 에서는 사용자가 그렇지 않았을 때의 오류를 방지하기 위해 garbage collector가 참조되지 않는 힙 메모리를 정리한다. (full gc 등) 그래서 java 에서는 free 라는 예약어가 없다. - c array 은 bound 검사를 하지 않는다. java 는 배열 선언 시 해당 배열에 대한 길이를 따로 저장하고, 범위를 초과하는 참조에 대해서 runtime 에 오류를 발생시킨다. Java Bytecodes vs RIS..