JAVA

    collection foreach vs stream foreach vs for문

    https://velog.io/@mooh2jj/Java-stream-Collector-%EC%99%9C-%EC%93%B0%EB%8A%94-%EA%B1%B0%EC%95%BC [Java] Stream, Collector 왜 쓰는 거야?스트림스트림은 람다와 마찬가지로 자바8에 추가된 기능이다. 스트림이란, 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의한다. 스트림과 컬렉션스트림도 컬렉션과 마찬velog.io스트림의 정의스트림은 람다와 마찬가지로 자바8에 추가된 것으로, 람다를 활용하여 데이터 처리 연산을 지원하도록 컬레션, 배열, I/O자원등에 대해 저장되어 있는 요소들을 추출하여 반복적인 처리를 가능케 하는 기능이다.Iterator에서 Stream로 간 이유iterator, stream ..

    interface를 상속받은 Abstract class를 상속받는 이유.

    https://postitforhooney.tistory.com/entry/Java-Interface%EC%99%80-Abstract-class%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%99%80-%EA%B0%81%EA%B0%81%EC%9D%98-%ED%8A%B9%EC%A7%95-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0 [Java] Interface와 Abstract class의 차이점 및 사용방법 이해하기. # [Java] Interface와 Abstract class의 차이점 및 사용방법 이해하기. - 최근 수정일 : 2017.04.18 - IDE : Spring Tool Suite - OS : OSX Sierra (10.12.3) - Lang : JAVA 1...

    java10 _ var 키워드

    https://codechacha.com/ko/java-local-variable-type-inference/ Java 10 - var 키워드로 변수 선언 (지역 변수 타입 추론) Java 10에서 도입된 `var`는 변수를 선언할 때 타입을 생략할 수 있으며, 컴파일러가 타입을 추론합니다. 컴파일 타임에 추론하는 것이기 때문에, Runtime에 추가 연산을 하지 않아 성능에 영향을 주 codechacha.com js 처럼 변수타입대신에 자유롭게 선언이 가능. 하지만, 지역변수 한정으로만 사용이 가능하며 클래스의 속성값 또는 lamda에서는 사용이 불가.

    serialVersionUID와 @SuppressWarning("serial")처리

    serialVersionUID 란? 자바에서 serial version uid를 생성하는 것은 기본적으로 서로 다른 클래스들 간의 구별을 하기 위한 것이다. 동일한 이름을 가진 클래스라 하더라도 메소드나 필드가 다를 경우 서로 다른 것으로 인식하는 것이 기본이기 때문에 Object Serialization을 할 때 import/export 등에서 버전에 따라 종종 불일치 에러가 발생하는 것을 만나게 된다. @SuppressWarning("serial") Adds a default serial version ID Adds a generated serial version ID @SuppressWarnings("serial") 이 세 가지를 추천한다. 그렇다면, 이러한 warning 이 뜨는 이유는 무엇인가?..

    Reflection

    Reflection이란? 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 런타임에 지금 실행되고 있는 클래스를 가져와서 실행해야하는 경우 동적으로 객체를 생성하고 메서드를 호출하는 방법 자바의 리플렉션은 클래스, 인터페이스, 메소드들을 찾을 수 있고, 객체를 생성하거나 변수를 변경하거나 메소드를 호출할 수 있다. 어떤 경우에 사용되나? 코드를 작성할 시점에는 어떤 타입의 클래스를 사용할지 모르지만, 런타임 시점에 지금 실행되고 있는 클래스를 가져와서 실행해야 하는 경우 프레임워크나 IDE에서 이런 동적인 바인딩을 이용한 기능을 제공한다. intelliJ의 자동완성 기능, 스프링의 어노테이션이 리플렉션을 이용한 기능이다. -> intelliJ ..

    Duration.ofSeconds

    얼마동안 메서드를 실행시킬 것인지 정하고 초과시 메서드 실행을 실패로 중단시킨다. @Test @DisplayName("스터디 시작") void create_new_study() { assertTimeout(Duration.ofSeconds(10), () -> { new Study(10); Thread.sleep(300); }); } https://www.daleseo.com/java8-duration-period/ [Java8 Time API] Duration과 Period 사용법 (+ChronoUnit) Engineering Blog by Dale Seo www.daleseo.com

    Apache Ant

    Apache Ant Apache Ant는 자바 기반의 빌드 도구 Apache Tomcat 처럼 Jakarta 프로젝트의 일환으로 만들어진 산출물로 C에서 말하는 make 파일과 같은 Java 프로그램 build 이다 OS와 상관없이 사용하게 되어 있음 Configuration 파일이 XML로 되어 있어 어플리케이션 구조에 맞게 적용하기에 편리하게 되어 있음. Apache Ant의 주요기능 Java 소스 파일 컴파일 jar, war, ear, zip 파일 생성 avadoc을 실행하여 도움말 생성 파일이나 폴더의 이동 및 복사, 삭제 각각의 작업에 대한 의존성 설정 유닉스에서처럼 파일이나 폴더에 퍼미션 설정 파일의 변경 날짜를 설정하는 touch 기능 외부 프로그램의 실행 플랫폼에 무관한 XML 이용 (bu..