일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- gradle
- CloutNative
- wappalyzer
- 우분투에war배포
- Postman
- VUE
- String
- intellij
- SpringBoot
- Lombok
- MySQL
- spring
- DB생성
- minikube
- frontend
- springMVC
- 이클립스
- MySQL시작하기
- appleM1
- 스프링에러
- MYSQL에러
- offset
- SQL
- windows10
- Seek_Keyset
- K8S
- NullPointerException
- pagination
- restful api
- Java
- Today
- Total
목록전체 글 (76)
미운 오리 새끼의 우아한 개발자되기
Programmers의 Lv1의 3진법 뒤집기 문제를 풀다가 찾아본 Java method로 진법 변환 완전 쉽게 하는 방법. 1. n진수 -> 10진수 public class Solution { public static void main(String[] args) { int num = 10; //10진수 값 System.out.println("10진수 -> 2진수"); System.out.println(Integer.toBinaryString(num)); System.out.println(Integer.toString(num,2)); System.out.println("10진수 -> 3진수"); System.out.println(Integer.toString(num,3)); System.out.print..
1. Java 8의 변경사항 - java.time 패키지의 추가 Java 8 버전의 변경사항 중 하나는 java.time 패키지가 추가되었다는 것이다. Date와 Calendar가 가진 아래와 같은 단점들을 해소하기 위함이었다. Calendar 인스턴스는 불변 객체(immutable object)가 아니라서 값이 수정될 수 있음. 윤초(leap second)와 같은 특별한 상황을 고려하지 않음. Calendar 클래스에서는 월(month)을 나타낼 때 1월부터 12월을 0부터 11까지로 표현해야 하는 불편함. java.time 패키지에 속한 클래스들의 가장 큰 특징은 String 클래스 처럼 불변이라는 점이다. 그래서 날짜나 시간을 변경하는 메서드들은 항상 변경된 새로운 객체를 반환한다. (그래서 변경후..
데이터를 정해진 양식에 맞게 출력할 수 있도록 도와주는 MessageFormat이 있다. 예를 들어, 고객들에게 보낼 안내문을 출력할 때, 안내문 양식에 받는 사람의 이름과 같은 데이터만 달라지도록 할 때 사용된다. 그리고 parse를 이용하면 지정된 양식에서 필요한 데이터만 손쉽게 추출할 수도 있다. 개인적으로 실무에서는 고객 안내 이메일이나, 문자메세지 혹은 로그 찍을 때 사용했던 기억이 있다. 알아두면 편리해서 기록해본다. import java.text.MessageFormat; public class MessageFormatEx1 { public static void main(String[] args) { String msg = "Name: {0} \nTel: {1} \nAge: {2} \nBir..
특정 범위에 속하는 값을 문자열로 변환하기 위해 ChoiceFormat을 사용할 수 있다. 연속적이나 불연속 적인 범위의 값들을 처리하는데 if 문이나 switch문으로 처리하기에 적절치 못할 때 사용하면 좋다. 생각보다 편하게 처리할 수 있기에 기록해두면 도움 될 것 같아서 자바의 정석 예제 코드를 올려본다. import java.text.ChoiceFormat; public class ChoiceFormatEx1 { public static void main(String[] args) { double[] limits = {60, 70, 80, 90}; // limit은 오름차순으로 써야한다. ChoiceFormat의 생성자에 그렇게 정의되어있다. String[] grades = {"D", "C", "..
힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(complete binary tree)를 기본으로 한 자료구조(tree-based structure)로서 다음과 같은 힙 속성(property)을 만족한다. 힙에는 두가지 종류가 있다. 최대 힙(max heap): 부모 노드의 키 값이 자식 노드의 키 값보다 항상 같거나 큼 최소 힙(min heap): 부모 노드의 키 값이 자식 노드의 키 값보다 항상 같거나 작음 키 값의 대소관계는 오로지 부모 노드와 자식 노드 간에만 성립하며 형제 사이에서는 대소관계가 정해지지 않는다. 힙 리스트로 표현할 때 i 번째 노드의 왼쪽 자식 노드의 위치는 2i가 되며, 오른쪽 자식 노드의 위치는 2i+1이고 또한 i 번째 노드의 부모노..
퀵 정렬은 pivot을 기준으로 partitioning을 하여 다른 원소와의 비교를 통해 정렬을 수행하는 비교 정렬에 속하는 정렬이다. 1. 리스트 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 pivot이라고 한다. 2. pivot 앞에는 pivot 보다 값이 작은 모든 원소들이 오고, pivot 뒤에는 pivot 보다 값이 큰 모든 원소들이 오도록 pivot을 기준으로 리스트를 둘로 나눈다. 이렇게 리스트를 둘로 나누는 것을 분할이라고 한다. 분할을 마친 뒤에 pivot은 더이상 움직이지 않는다. 3. 분할된 두 개의 작은 리스트에 대해 재귀적으로 이 과정을 반복한다. 재귀는 리스트의 크기가 0이나 1이 될 때까지 반복된다. 특징 및 장점 분할 정복 알고리즘이다. 비교 정렬이다. in place..
합병정렬(또는 병합정렬)은 비교기반 정렬 알고리즘이다. 분할(Divide): 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 정복(Conquer): 각 부분 리스트를 재귀적으로 합병 절렬을 이용하여 정렬한다. 결함(Combine): 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한디ㅏ. 이때 정렬 결과가 임시배열에 저장된다. 복사(Copy): 임시 배열에 저장된 결과를 원래 배열에 복사한다. 특징 및 장점 일반적인 방법으로 구현했을 때, 안정정렬이다. Linked list를 정렬할 때 사용하면 효율적이다. 분할 정복 알고리즘(그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법, 보통 재귀함수를 통해 구현)이다. 배열일 경우 Θ(n)의 추가 공간이 필..