SpringBoot/Java

UUID Universally Unique Identifiers, 범용 고유 식별자를 뜻한다. 고유 식별이 가능해야 하는 중요한 Key값들을 중복이 없게 규칙에 따라 난수를 생성해 사용하는 값이다. 완전히 중복을 배제하는 것은 아니지만 높은 확률로 중복을 방지해준다. C#에서는 비슷한 기능으로 GUID 메서드가 존재한다. JAVA에서 어떻게 UUID를 생성하는지 알아보자 import java.util.UUID; public class Test { public static void main(String[] args) { String id = UUID.randomUUID().toString(); } } UUID.randomUUID() 는 UUID 형태의 값을 생성해주는데, 해당 속성을 컨트롤하는건 아무래도 ..
final 변수, 메서드, 클래스가 변경이 불가능하도록 한다. 변수 : final 로 선언된 변수는 상수로 취급되고, 한 번 초기화 됐을 경우 변경할 수 없다. 메서드 : final로 선언된 메서드는 하위 클래스에서 오버라이드 할 수 없다. 해당 메서드는 상속된 클래스에서 그대로 사용되어야 한다. 클래스 : final로 선언된 클래스는 하위 클래스를 가질 수 없다. 다른 클래스가 해당 클래스를 상속받아 새로운 클래스를 정의하는 것이 불가능하다. 메서드는 오버라이드 할 수 없고, 클래스는 하위 클래스를 정의할 수 없다. finally try/catch 블럭이 종료될 때 항상 실행될 코드 블럭을 정의할 수 있다. 단, finally는 예외가 발생하더라도 항상 실행된다. 주로 리소스 해제, 또는 정리 작업을 ..
JAVA Stream java에서 제일 큰 분기점, 큰 변화가 있던 버전이라고 하는 java 8에서 추가된 기능으로, 람다식을 활용할 수 있게 해주는 기술이다. java 8 버전 이전에는 배열을 다루는 방법이 for문, 혹은 foreach문을 통해서 요소의 전부를 탐색하는 방법 밖에 없었다. 이러한 부분은 로직이 복잡해질수록 컨트롤하기 어렵고, 코드의 양이 많아지고, 여러 루프가 반복되며 효율이 떨어지기 마련이었다. 스트림은 배열, 컬렉션 인스턴스에 여러 함수를 조합하여 원하는 결과를 표현할 수 있다. 람다를 이용해 코드의 양을 줄이고, 간결하게 표현할 수 있다. 또한 하나의 작업을 두개 이상 작업으로 잘게 나누어 동시에 처리가 가능한 비동기처리 (병렬처리)가 가능하다. String[] arr = new..
💡 Stream 컬렉션이나 배열에 저장된 데이터를 처리하기 위한 API이다. 특정 조건에 따라 Stream에서 요소의 하위 집합만 선택할 수 있는 필터링이다. filter() 스트림에 적용할 수 있으며 Stream에는 filter()를 통과하는 요소만 포함되게된다. 테스트 목적에서만 사용해야 하며, 실제 프로그램 코딩에서는 사용해선 안된다. import java.util.Arra**ys; import java.util.List**; import java.util.stream.Stream; public class Main { public static void main(String[] args) { // Create a list of integers List numbers = Arrays.asList(1, ..
원문 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. imp..
// 추상클래스와 인터페이스. 추상클래스( Abstract )는 여러 클래스간의 유사한 필드, 메소드를 공통적으로 뽑아 만들어진 클래스를 뜻하며 다중상속이 불가하다, 그에 반해 인터페이스( Interface )는 그 정도가 다르다. Implements를 사용하여 다중 상속을 할 수 있다. Extends를 사용한 클래스 상속은 하나만 가능하다. 둘 모두 new 연산자로 인스턴스가 생성이 불가능하며, 사용을 위해 하위클래스에서 상속, 구현하여 사용한다. // static 변수, 메소드에서 사용하고 해당 인스턴스의 생성과 상관없이 메모리에 해당 영역을 할당시켜 영역을 공유하는, 고정적인 기능을 가진다. // 상속 상위 클래스에서의 에러, 기능의 추가 혹은 변경이 생겼을때 상속을 받는 클래스가 정상적으로 작동하..
1. 제네릭 메소드에 대하여 설명하시오. 제네릭 클래스와 마찬가지로, 메소드에서도 사용이 가능하다. 매개변수 타입과 리턴 타입으로 파라미터를 가지는 메소드이다. 제네릭 메소드의 선언 방법 리턴 타입 앞에 기호를 추가하고 타입 파라미터를 기입한다. public 리턴타입 메소드명 ( 매개변수, ~ ) { } public Box boxing (T t ~ ) { } 제네릭 메소드의 호출 방법 리턴 타입 변수 = 메소드명 (매개값); Box box = Boxing(100); 리턴타입 변수 = 메소드명(매개값); Box box = boxing(100); 클래스의 메소드만을 부분적으로 제네릭화 할 수 있음. 2. 콜렉션 프레임워크란? 3. ArrayList 와 LinkedList 의 장단점은? c..
1. 접근제한자 4가지 종류에 대하여 설명하시오. public 는 모든 접근을 허용 protected는 상속되지 않은 패키지의 클래스를 차단 default 는 다른 패키지 클래스를 전부 차단 private는 모든 외부에 있는 클래스 접근을 차단 2. class 에서 붙일수 있는 접근 제한자 2개를 설명하고, 해당 접근제한자의 사용 목적은? public은 모든 접근을 허용, default는 클래스 선언시 public 생략되면 자동으로 default 생성자가 만들어짐 접근 지정자는 객체를 보호하고 캡슐화하여 정보를 보호하기 위해 사용 접근 허락되지 않는 멤버에 접근하도록 코딩을 하면 컴파일 과정에서 오류 발생 3. 지역변수에 접근제한자를 붙이지 않는 이유는? 지역 변수라는 것은 범위가 한정적이고, 그 범위 ..
함형우
'SpringBoot/Java' 카테고리의 글 목록