Java150 [Java]람다식, 람다표현식(Lambda expression) 람다식(Lambda expression) Java 8에 도입된 람다식은 익명 함수로 메서드 이름이 존재하지 않으며 매개변수와 함수의 본문이 존재하는 메서드입니다. 화살표(->)는 매개변수와 메서드의 본문을 구분하기 위해 사용하는 람다 연산자입니다. 람다식 구문 람다식 구문은 다음과 같습니다. (매개변수) -> 메서드 본문 왼쪽에 매개변수를 작성하며 오른쪽에 메서드 본문을 구현합니다. 메서드 본문이 짧은 경우 중괄호를 생략할 수 있으며 반대로 본문의 소스코드가 많은 경우 중괄호를 사용할 수 있습니다. // 메서드 본문의 중괄호 생략 (x, y) -> x + y; // 메서드 본문의 중괄호 추가 (x, y) -> { // 함수형 인터페이스의 추상 메서드 반환 타입이 void가 아닌 경우 return문 작성 .. Java 2022. 5. 10. [Java]리플렉션(Reflection) 리플렉션(Reflection)이란? 우리가 작성한 소스코드가 프로그램이 되기까지 컴파일러는 컴파일 타임에 소스코드가 문제없는지 확인합니다. 일반적으로 객체의 타입을 모르는데 특정 클래스의 메서드와 필드를 호출하는 경우 컴파일 에러가 발생하며, 특정 메서드와 필드를 호출하기 위해서는 해당 메서드와 필드가 존재하는 클래스를 타입으로 객체를 생생해야 합니다. 하지만, 프로그램을 개발하다 보면 객체의 타입은 모르지만 특정 클래스의 메서드 또는 필드를 호출해야 하는 경우가 있습니다. 이러한 상황에서 Reflection을 사용하여 문제를 해결할 수 있습니다. Java는 리플렉션(Reflection)이라는 API를 제공하여 런타임(프로그램이 실행 중)에 객체의 타입을 몰라도 특정 클래스의 필드 또는 메서드를 호출할 .. Java 2022. 5. 8. [Java]배열에서 중복 제거하는 방법 이번 포스팅은 배열에서 중복 요소를 제거하는 방법을 소개합니다. LinkedHashSet 클래스 LinkedHashSet 클래스는 배열에서 중복 요소를 제거하는 가장 좋은 방법입니다. LinkedHashSet 클래스가 중복 제거에 좋은 이유는 두 가지 특징 때문입니다. 첫 번째 특징은 중복 요소를 제거합니다. 두 번째 특징은 순서를 유지하기 때문입니다. 다음은 LinkedHashSet 클래스 예제입니다. String[] strArray = new String[] {"B", "B", "C", "C", "A", "A", "A"}; // 배열을 LinkedHashSet으로 변환합니다. LinkedHashSet linkedHashSet = new LinkedHashSet( Arrays.asList(strArra.. Java/배열 2022. 5. 7. [Java]문자열을 문자열 배열로 변환(String to String Array) 문자열을 문자열 배열로 변환 이번 포스팅은 문자열을 문자열 배열로 변환하는 몇 가지 방법을 설명합니다. split() 메서드 문자열을 문자열 배열로 변환하기 위해 가장 많이 사용하는 방법은 String 클래스의 split() 메서드를 사용하는 것입니다. 특정 구분자로 문자열을 분리하고 분리된 문자열을 배열에 저장합니다. 다음 예제는 띄어쓰기를 기준으로 문자열을 분리합니다. String str = "Hello Java Programming!"; String[] strToStrArray = str.split(" "); for (int i=0; i < strToStrArray.length; i++) System.out.println("strToStrArray[" + i+ "]=" + strToStrArray[.. Java/문자열 2022. 5. 7. [Java]문자열 배열을 문자열로 변환(String Array to String) 이번 포스팅은 문자열 배열을 문자열로 변환하는 방법을 설명합니다. toString() 메서드 첫 번째 방법은 Arrays 클래스의 toString() 메서드를 사용하는 것입니다. toString() 메서드에 문자열 배열을 전달하면 문자열 표현이 반환됩니다. 문자열 표현은 대괄호에 배열 요소로 구성됩니다. String[] strArray = {"Hello", " ", "Java", " ", "Programming"}; String strArrayToString = Arrays.toString(strArray); System.out.println(strArrayToString); 실행 결과 [Hello, , Java, , Programming] StringBuilder.Append() 메서드 사용 문자열 배.. Java/문자열 2022. 5. 7. [Java]반복자(Iterator) 반복자(Iterator)란? Java의 Iterator 인터페이스는 Collection Framework의 구성요소로 컬렉션을 순회하여 요소를 접근하는 경우 사용됩니다. Iterator 인터페이스 특징 Iterator 인터페이스는 Java 1.2 컬렉션 프레임워크부터 사용할 수 있습니다. 컬렉션 객체를 순회하여 요소를 접근합니다. 모든 컬렉션에서 사용할 수 있으므로 "Universal Java Cursor"로 알려져 있습니다. Iterator 인터페이스는 읽기(Read) 및 쓰기(Write) 작업을 지원합니다. 즉, 컬렉션 객체를 순회하여 요소를 제거할 수 있습니다. Iterator 인터페이스의 메서드 다음은 Iterator 인터페이스의 세 가지 핵심 메서드입니다. next() 메서드 next() 메서드.. Java 2022. 5. 2. [Java]HashMap 객체 생성 방법, HashMap 생성자(constructor) HashMap 객체 생성 방법 이번 포스팅은 Java에서 HashMap 객체를 생성하는 다양한 방법을 소개합니다. 생성자(constructor) 다음은 기본 생성자를 사용하여 HashMap 객체를 생성하는 방법입니다. 1. 기본 생성자 일반적으로 가장 많이 사용하는 방법입니다. HashMap hmap = new HashMap(); 이 생성자는 초기 용량을 16으로 설정하고 적재율이 0.75인 HashMap 객체를 생성합니다. 2. 초기 용량 및 적재율 설정 다음은 HashMap 객체의 초기 용량과 적재율을 설정하는 생성자입니다. // 초기 용량만 설정 public HashMap(int initialCapacity) // 초기 용량, 적재율 둘 다 설정 public HashMap(int initialCap.. Java/컬렉션 2022. 5. 2. [Spring]Transactional 어노테이션 사용 및 롤백 처리 스프링의 서비스 계층에서 DataBase의 데이터를 변경하다 문제가 발생하는 경우 롤백하기 위해 @Transactional 어노테이션을 사용합니다. 일반적으로 트랜잭션 어노테이션에 대해 "문제가 생기면 알아서 처리해주는구나..." 여기까지만 이해하고 그 이상으로 생각하지 않습니다. 저도 이때까지 트랜잭션 어노테이션에 대해 깊게 생각하지 않았는데 스프링을 다시 공부하면서 몇 가지 의문이 들었습니다. 「 트랜잭션 어노테이션이 정말 모든 예외 및 에러에 대해 롤백을 해줘? 」 「 왜 Service 계층에서 작성하지? 」 「 내가 트랜잭션 격리 수준에 대해 얼마나 알고 있지? 」 「 예외 및 에러를 어떻게 감지하고 롤백 처리하지? 」 그 외 여러 가지 의문점도 있었지만 저는 트랜잭션 어노테이션이 모든 예외 및 .. Java 2022. 4. 14. [Java]ArrayList 마지막 요소 제거 ArrayList 마지막 요소 제거 이번 포스팅은 Java의 ArrayList에서 마지막 요소를 제거하는 방법을 소개합니다. remove 메서드 ArrayList의 remove() 메서드를 사용하여 마지막 요소를 제거할 수 있습니다. remove() 메서드는 전달받은 인덱스(index)의 요소를 제거합니다. ArrayList에서 마지막 요소를 제거하려면 size() 메서드를 사용합니다. size() 메서드는 ArrayList에 존재하는 요소의 수를 반환합니다. ArrayList의 인덱스는 0부터 시작하므로 마지막 요소의 인덱스는 ArrayList.size() - 1입니다. ArrayList arrList = new ArrayList(); String removeResult = null; arrList.a.. Java/컬렉션 2022. 4. 12. [Java]객체(Object)를 XML로 변환 객체를 XML로 변환 JAXB(Java Archiecture for XML Binding)는 Java의 객체(Object)를 XML과 매핑하는데 사용되는 라이브러리입니다. 반대로 XML을 객체와 매핑하는 경우에도 사용됩니다. JAXB는 Java 1.6부터 도입된 라이브러리입니다. 따라서 JAXB를 사용하기 위해 Maven 또는 Gradle 프로젝트에 라이브러리를 추가할 필요가 없습니다. 마샬링(Marshalling) JAXB에서 Java의 객체를 XML로 변환하는 작업을 마샬링(Marshalling)이라고 합니다. JAXB는 객체를 XML로 변환하는 작업을 수행하기 위해 Marshall 클래스를 제공합니다. 클래스 생성 마샬링 작업을 수행하기 전에 Author 및 Book이라는 두 개의 간단한 클래스를 .. Java 2022. 4. 11. [Java]main 함수(메서드) main() 함수 main() 함수는 Java, C, C#, C++을 입문하면서 가장 먼저 배우는 개념이고 중요한 개념입니다. 대학교 시험이나 신입 면접에서 자주 출시되는 내용이며 경력 있는 개발자에게는 더 어려운 질문을 요구합니다. 이번 포스팅은 면접 질문에서 나올 법한 main() 메서드(함수) 내용들을 소개합니다. main() 메서드가 public static인 이유 A. 정적(static)인 이유 JVM이 실행되는 과정에 클래스 객체가 포함되지 않습니다. JVM이 클래스 객체 없이 main() 메서드를 메인 메모리에 적재할 수 있도록 static 키워드를 추가합니다. 만약, main() 메서드를 non-static으로 선언하면 JVM은 main() 메서드가 존재하는 클래스 객체로 main() 메서.. Java 2022. 4. 10. [Java]정수를 문자열로 변환(Int to String) Java에서 정수를 문자열로 변환하는 작업은 빈번하게 발생합니다. 반대로 문자열을 정수로 변환하는 방법도 마찬가지입니다. 이번 포스팅은 Java에서 정수를 문자열로 변환하는 여러 방법들을 소개합니다. 정수를 문자열로 변환 int 또는 Integer를 String으로 변환하기 위해 String 클래스는 몇 가지 메서드(valueOf(), format())를 제공합니다. 또 다른 방법으로 Integer 클래스의 toString() 메서드가 존재하며 StringBuilder 객체로 변환해야하는 경우 append() 메서드와 toString() 메서드를 함께 사용할 수 있습니다. String.valueOf() 메서드 valueOf() 메서드는 전달받은 값을 String으로 변환합니다. valueOf() 메서드는.. Java/문자열 2022. 4. 10. 이전 1 ··· 8 9 10 11 12 13 다음