Java

· Java
Stream이란 - 자바에서의 Stream(스트림)은 원하는 결과를 얻기 위해 다양한 메서드들을 제공하는 객체의 모음이다. - 쉽게 말해 객체를 묶음 단위로 처리하기 위해 사용하는 것이 바로 스트림인 것이다. - Stream API는 자바 8에서 처음 등장했으며, 데이터의 모음(Collection)을 처리하기 위해 사용된다. 기존에도 같은 목적을 가진 Collection 프레임워크를 통해 다수의 데이터를 효과적으로 처리할 수 있었다. 그럼 Collection를 놔두고 굳이 Stream을 사용해야 할 이유가 무엇일까? Stream이 지니는 장점에는 명확하고 읽기 쉬운 코드로 인한 좋은 가독성 등 몇 개의 장점이 있지만, Collection과 비교했을 때 명확한 차별점이자 장점이 존재한다. Collectio..
· Java
intern() intern() 메서드는 문자열을 복사하는 역할을 하는 메서드이다. 무작정 복사하는 것이 아니라, 이미 존재하는 문자열일 경우에는 기존 문자열을 참조하기도 한다. intern() 메서드의 동작 과정은 아래와 같다. 1. intern() 메서드로 호출된 문자열이 String constant pool에 존재하는지 확인 2. String constant pool에 존재할 경우 해당 문자열의 참조를 반환 3. 존재하지 않을 경우 String constant pool에 문자열을 저장하고 pool에 저장한 문자열의 참조를 반환 String constant pool이란? 더보기 문자열 상수 풀 리터럴 문자열을 저장하는 힙 영역 내에 존재하는 특별한 메모리 영역이다. 사용 목적과 이점은 아래와 같다. ..
· Java
Class vs Record 자바의 Record는 Java 14부터 도입된 순수하게 데이터를 저장/관리하기 위한 클래스이다. 아래의 예시를 살펴보자. immutable 한 객체 Person을 생성하고 관리하는 코드이다. 객체의 불변성과 유효성을 보장하기 위해서 equals(), hashCode(), toString() 등의 메서드를 오버라이드하고 있으며, 접근제한자 private, 키워드 final을 사용하고 있다. import java.util.Objects; public class RecordTest { public static void main(String[] args) { Person person = new Person("John Doe", "test address"); System.out.pri..
· Java
캐스팅(Casting) 데이터 타입의 변환 캐스팅은 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 것이다. 프로그래밍에서 데이터를 유연하게 다루고, 연산을 위해서 반드시 필요한 작업이다. 1 2 3 4 5 6 7 8 9 10 public class Main { public static void main(String[] args) { String num1 = "500"; int num2 = 500; System.out.println(num1 + num2); // 500500 System.out.println((num1 + num2).getClass()); // class java.lang.String } } Colored by Color Scripter cs 500을 두 번 더해 1000을 만든다고 ..
· Java
Error와 Exception의 차이Error와 Exception은 프로그램의 중단을 발생시킬 수 있는 오류이다. Error와 Exception 모두 오류이긴 하지만 차이점이 존재한다. Error: 코드로 대처나 수습이 불가능한 심각한 오류(StackOverflow Error, OutOfMemoryError)Exception: 코드로 대처나 수습이 가능한 비교적 가벼운 오류 대처가 가능한가와 오류의 심각성에 따라 두 오류를 구분한다. 1. Error- Error는 예측이 불가능하기 때문에 대처 또한 불가능하다.- JVM의 프로그램 실행에 문제가 생기기 때문에 프로그램 자체가 종료되어 버린다. 2. Exception- Exception은 주로 개발자의 설계 로직에 문제가 있어서 발생한다.- 발생해도 프로그..
· Java
자바에서 문자열을 다루는 클래스인 String, StringBuilder, StringBuffer에 대해서 알아보자. String 우리가 흔히 알고 있는 문자열을 다룰 때 사용하는 기본적인 클래스이다. String도 concat이나 +로 문자열 연산 가능하지만 + 사용해서 String 인스턴스 결합 시에 기존 String 인스턴스에 내용을 추가하는 것이 아니라 내용이 합쳐진 새로운 String 인스턴스를 생성하기 때문에 결합을 많이 할수록 공간 낭비, 시간 낭비이다. StringBuffer & StringBuilder 그래서 나온 문자열 연산 전용 클래스가 StringBuffer와 StringBuilder이다. StringBuffer의 특징은 내부적으로 Buffer라는 공간을 가지기 때문에 문자열 추가가..
pseudocoder_
'Java' 카테고리의 글 목록 (2 Page)