Java

자바 1.8(Java 8)은 자바 언어 역사에서 가장 중요한 업데이트 중 하나로 평가받으며, 특히 람다(Lambda)와 스트림(Stream) API가 도입되면서 자바 언어의 사용성과 생산성이 대폭 향상되었습니다. 특히나, 스트림 API같은 경우에 효율적으로 병렬프로그래밍을 구사할 수 있게됨으로써 자바1.8버전 이상을 사용하시는분들이 더욱 효율적인 코드를 구사할 수 있게되었는데요, 이 글에서는 자바 1.8에서 추가된 람다와 스트림에 대해 알아보고, 각각의 장단점과 성능적인 측면에서의 고려 사항을 설명하는 시간을 가져보도록 하겠습니다.  람다 표현식(Lambda Expression)이란?   람다 표현식은 자바에서 간결하게 함수를 정의하는 방식입니다. 간단히 말해, 람다는 익명 함수(Anonymous Fun..
이제야 Generic을 포스팅 할 시간이 왔습니다.개인적으로 자바에서 가장 좋아하는 기능인데요, 객체지향원칙 중 다형성을 극한으로 치중한듯 한 제네릭은 여러 타입을 같은 클래스 하나로 공유할 수 있다는점이 아주 매력적인 기능인 것 같습니다.이러한 제네릭(Generic)은 같은 동작을 하는 코드이지만, 데이터 타입이 달라 각자의 타입에 맞는 여러 클래스들을 중복 구현하여야 하는 단점을 보완해줄 수 있는 해결사의 역할을 합니다. 제네릭은 Java에서 코드의 중복을 줄이고, 다양한 타입의 데이터에 유연하게 대처할 수 있는 강력한 기능을 제공하는데, 이번 글에서는 제네릭의 개념과 활용법에 대해 깊이 있게 알아보도록 하겠습니다. 제네릭(Generic) 개념  제네릭(Generic)은 Java에서 클래스나 메소드..
지난 시간에는 추상메소드에 대해 알아보았습니다.이번 포스팅에서는 interface에 관한 내용이 주되긴 하지만, 추상 클래스(abstract class)와의 비교를 포함하기도 하였으니, abstract class에 대한 이해가 부족하신 분들은 아래의 링크를 통해 간단하게라도 훑어보시시는것을 추천드립니다. https://hohome-develop.tistory.com/11 이번에 알아볼 Java에서의 '인터페이스'는 Java에서 다형성과 코드의 결합도를 낮추기 위해 중요한 역할을 합니다. 이번 글에서는 인터페이스의 개념과 사용 방법, 그리고 활용 예시를 중심으로 인터페이스에 대해 알아보도록 하겠습니다. 인터페이스(Interface) 인터페이스(Interface)는 Java에서 클래스가 구현해야 하는 메소드..
프로그래머스 : 다리를 지나는 트럭 ( Lv-2 )트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bri..
서론개인 프로젝트를 진행하던 와중, 메소드의 형식이 중복되며, 추후 확장성을 고려해야 할 클래스를 다루어야 될 일이 생겼습니다.이러한 문제를 해결하기 위한 방법으로 생각하던것은 '추상 클래스', '인터페이스', '제네릭' 이지만, 이번에 다루어볼 내용은 추상클래스로 선택하였습니다.먼저, 추상 클래스의 큰 특징으로는, 추상 클래스를 상속 받으면, 개발자는 프로젝트에서 필요하고 공통적으로 들어가야하는 필드 및 메소드를 오버라이딩을 하여 프로젝트의 큰 틀을 생각하지않고, 주어진 태스크만 집중하여 구현 하면 된다는 점이 있습니다.  Abstract Class ( 추상 클래스 ) 추상클래스 개념Abstract class는 Java의 추상클래스입니다.말 그대로, 클래스의 기능을 추상화한것이라고 볼 수 있는데, cl..
백준 1753: 최단경로 (Gold IIII)방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다.  입력첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 정점 사이에 여러 개의 간선..
Ho-home
'Java' 태그의 글 목록