Java
-
BigDecimal의 연산Java 2022. 6. 12. 21:00
BigDecimal 매우 크거나 작은 부동 소수점 수를 매우 정밀하게 처리하고 보정할 수 있다. ( 시간 복잡성이 다소 높아짐 ) -> float와 double 자료형은 정말한 값을 표현할 때 오류가 발생할 수 있기 때문에 정확도가 중요한 경우에 BigDecimal을 사용한다. 예를 들어 3.2와 2.1을 +,-,* 연산 해보자 double형을 사용했을 때 double a = 3.2; double b = 2.1; double doubleAddAnswer = a+b; //기대값 : 5.3 double doubleSubAnswer = a-b; //기대값 : 1.1 double doubleMulti = a*b; //기대값 : 6.72 -> 기대값과 다른 결과가 나온다 *) 실수(위에서 3.2와 2.1)를 컴퓨..
-
MyBatis 동적 SQL : if, choose(when, otherwise), trim, foreachJava/Spring 2022. 5. 31. 10:06
MyBatis Dynamic Sql : 검색 조건에 따라 검색해야하는 SQL문이 변경되어야하는 경우 사용한다. 종류 : if, choose(when, otherwise), trim(where, set), foreach if 형식 : 예시 : select * from MOVIE where rating > 8.5 AND title like #{title} -> 파라미터로 title이 전달 되었다면 #{title} 이 포함된 평점 8.6 이상인 영화를 검색한다. choose, when, otherwise 형식 : 실행문 실행문 예시 : select * from MOVIE where rating > 8.5 AND title like #{title} AND director_name like #{director} ..
-
스프링부트 @SpringBootApplication 어노테이션Java 2022. 5. 30. 17:16
Spring Boot SpringApplication Class는 Java 메인 메소드에서 부트스트래핑(실제로 프로그램이 실행되기 이전에 실행되는 모든 동작)과 Spring 어플리케이션을 실행하기 위해 사용된다 @SpringBootApplication는 @Configuration, @EnableAutoConfiguration, @ComponentScan 세개의 어노테이션으로 클래스를 선언하는 것과 같은 기능을 한다. @SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiguration @Configuration : 스프링 Ioc 컨테이너에 어노테이션이 입력된 클래스가 설정파일 또는 java Bean을 만드는 클래스임을 알려준..
-
향상된 for문Java 2022. 5. 22. 17:37
향상된 for문은 배열 혹은 컬렉션 안에 담겨있는 값을 하나씩 꺼내서 지정한 변수에 대입한 후 for문 중괄호 안에 있는 연산을 수행한다. for(데이터타입 변수명 : 배열or컬렉션) { ... 반복 실행할 코드 ... } 의 형식으로 작성한다 public class Main { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for(int i : arr) { System.out.println(i); } } } 일반적인 for문에서 int i=0 처럼 변수를 초기화 하지 않고 이름만 지정해주면 그 변수에 배열의 값이 하나씩 대입된다 -> 위의 예제에서는 int i 라는 변수에 배열 arr의 값 1,2,3,4,5 가 순서대로 i에 대입된..
-
21-12-10 컬렉션프레임워크 Comparator, ComparableJava 2021. 12. 10. 17:51
Comparator, Comparable Comparator: 기본 정렬 기준을 구현하는데 사용 Comparable : 기본 정렬 기준 외에 다른 기준으로 정렬하고자 할때 사용 public interface Comaptator { int compare (Object o1, Object o2); //o1과 o2 두 객체를 비교 boolean equals(Object obj); // equals를 오버라이딩 하라는 뜻 } public interface Comparable { int compareTo (Object o); //주어진 객체(o)와 자신을 비교 } compare()와 compareTo()는 두 객체의 비교 결과를 반환하도록 작성한다 : 같으면 0, 오른쪽이 크면 음수, 왼쪽이 크면 양수를 반환 r..
-
21-12-06 Thread #2 스레드 풀Java 2021. 12. 6. 17:37
스레드 풀 스레드 폭증 : 병렬 작업 처리가 많아지면 스레드의 개수가 증가 -> 스레드의 생성과 스케줄링으로 인해 CPU, 메모리 사용량이 늘어난다. => 애플리케이션 성능 저하 스레드 풀 : 작업 처리에 사용되는 스레드를 제한된 개수만큼 미리생성하여 작업 Queue에 들어오는 작업들을 하나씩 스레드가 맡아서 처리, 작업이 끝난 스레드는 작업 결과를 애플리케이션에 전달하고 다시 작업 큐에서 새로운 작업을 가져와 처리하도록 하는 것 ExcutorService 인터페이스와 Executors 클래스 -> 스레드 풀을 생성하고 사용할 수 있도록 java.util.concurrent 패키지에서 제공하는 인터페이스와 클래스 -> Executors의 정적 메소드를 이용해서 ExcutorService 구현 객체 생성 ..
-
21-12-02 ThreadJava 2021. 12. 2. 23:40
프로세스 : 실행 중인 하나의 프로세스 스레드 : 하나의 코드의 실행 흐름. 멀티 태스킹 두가지 이상의 작업을 동시에 처리하는 것 멀티 태스킹의 구현방법 1) 멀티 프로세스 : 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리 (하나의 프로그램에서 여러 프로세스를 동시에 실행) 2)멀티 스레드 : 한 개의 프로세스를 실행하고 내부적으로 여러가지 작업 처리 (하나의 프로세스 내에서 여러 스레드가 동시에 작업 처리) Thread 모든 자바 프로그램은 메인 스레드가 main() 메소드를 실행하면 시작된다. main스레드는 작업 스레드를 만들어서 병렬로 코드들을 실행할 수 있다. = 멀티 스레드 생성 스레드가 추가되지 않고 하나의 main 스레드만 존재하는 싱글 스레드 환경에서는 메인스레드가 종료되면 프로세..
-
21-11-29 Iterator, Arrays 클래스 메서드Java 2021. 11. 29. 20:36
Iterator, ListIterator, Enumeration -> 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 ->컬렉션의 자료구조들(List, Set)에 저장된 요소들을 읽어오는 방법을 표준화한 것 -> Enumeration은 iterator의 구버전 -> ListIterator는 Iterator의 접근성은 향상시킴 (단방향 -> 양방향) Iterator의 메서드 메서드 설명 boolean hasNext() 읽어 올 요소가 남아있으면 true반환 Object next() 다음 요소를 읽어온다. next()를 호출하기 전에 hasNext()를 호출하여 읽어올 요소가 있는지 확인하는 것이 바람직하다. 사용법 Collection list = new ArrayList(); //ArrayList는..