본문 바로가기

Java & JSP

(26)
[Java] JAVA Collection Framework 정리 정리된 글 참고 https://darksilber.tistory.com/70 HashMap, HashTable, HashSet 의 차이점 외 기타... 출처 - http://www.mfamstory.com/ 포스트 내용의 참고자료 출처 : 소설같은자바 Third Edition JAVA에서 기본적인 자료 구조를 제공하기 위한 환경을 JAVA Collection Framework라고 한다. 다음은 JAVA Collectio.. darksilber.tistory.com
[Java] Arrays.sort()와 Collections.sort()의 시간복잡도 비교 알고리즘을 풀다가 흔하디 흔한 sort() 정렬의 차이가 궁금해졌다. 보편적으로 배열을 정렬할 땐 Arrays.sort(), 컬렉션(List,Set..)을 정렬할 땐 Collections.sort()를 사용한다. 찾아보니 같은 sort 메서드지만 내부에서는 다른 정렬방식을 사용하여 정렬한다고 한다. 이에 따라 시간복잡도도 달라 각 자료구조를 사용할 때 효율성 테스트의 성공/실패 결과가 달라질 수 있다. 이에 대한 내용을 간단히 정리해보자. 정렬 방식 시간 복잡도 Arrays.sort() DualPivotQuicksort 평균 : O(nlog(n)) / 최악 : O(n^2) Collections.sort() TimeSort (삽입정렬과 합병정렬을 결합한 정렬) 평균, 최악 : O(nlog(n)) 따라서 최..
[Java] inner class 와 inner static class 차이 들어가며 fastcampus 강의를 듣던 중 application layer 단의 DTO class를 만드는데 inner static class 로 request, response를 만들었다. 이전에 개발 시 dto 생성을 찾아보면서 따라해본 적있는 방법이지만 inner static class 에 대한 개념을 정확히 인지하지 못했다. 강사님이 "inner static class로 만들겠다. 멀티 쓰레드 환경에서 동시성 이슈는 발생하지 않기 때문에 안전하다." 라는 이야기를 하시며 코드를 작성하셨는데 이 말이 잘 이해가 안되서 inner static class에 대해 다시 찾아보고 정리하였다. inner class, inner static class ? class MyClass { class InnerCl..
[Java] Java와 Spring의 싱글톤 차이 자바의 싱글톤 패턴과 Spring Bean의 차이점이 궁금해져서 찾아본 내용. 아래 블로그에 설명이 잘 되어있다. https://judekim.tistory.com/91 자바 싱글톤 vs 스프링 싱글톤의 차이점 이 주제는 스프링 개발자들이 싱글톤 개념에 대한 이해를 확인하기 위해 인기 있는 인터뷰 질문 중 하나이다. 싱글톤 패턴이란 상황에 따라서 Application에서 특정 클래스에 대해 하나의 객체만 judekim.tistory.com
[Java] 객체 정렬 - Comparable, Comparator [Java] 객체 정렬 - Comparable, Comparator 들어가며 일반 숫자형은 정렬 기준이 정해져있다. 하지만 객체를 비교한다는 것은 사실상 주소값 비교가 아닌 객체가 갖고있는 속성의 값을 기준으로 해야한다. 그러므로 우리는 객체를 정렬하는 기준을 만들 수 있는 두 방법 Comparable, Comparator를 비교해보자. Comparable Comparable 인터페이스를 상속받아서 클래스의 기본 정렬 기준을 재정의 하는 방법이다. public class Player implements Comparable { // Fields, Getters, Setters 생략 @Override public int compareTo(Player o) { return o.getScore() - getSc..
[Java] compareTo 숫자, 문자열 비교 [Java] compareTo 숫자, 문자열 비교 compareTo int compareTo(NumberSubClass referenceName) int compareTo(String anotherString) 두 개의 값을 비교하여 int값으로 반환해주는 함수이다. 문자열의 비교, 숫자의 비교 방식이 존재한다. 숫자의 비교 public class CompareToTest{ public static void main(String[] args){ Integer x = 3; Integer y = 4; Double z = 1.0; System.out.println( x.compareTo(y) ); // -1 System.out.println( x.compareTo(3) ); // 0 System.out.pri..
(이미지 삽입 예정)[Java] Java의 객체지향 - JVM, JRE, JDK / 자바 프로그램 구동 형태 1. JVM, JRE, JDK 쉽게 이해하기 (현실 세계와 비교) 현실 세계 VS 자바 세계 현실 세계 가상 세계(자바 월드) 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프트웨어 개발 도구 운영체제 JRE - 자바 실행 환경 JVM용 OS 하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컾뮤터 (현실) 컴퓨터를 구동하기 위해 필요한 개발도구 -> (자바) JDK (현실) 소프트웨어(프로그램)을 구동시키도록 도와주는 환경인 운영체제 -> (자바) JRE (현실) 컴퓨터를 구동하기 위한 물리적인 존재, 컴퓨터 -> (자바) JVM(Java Virtual Machine) 자바 개발 도구인 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동된다. * ..
[Java] 제어자 finalfinal int NUM; Card(int num) { this.NUM = num;}final이 붙을 경우 원래는 선언 시 초기화 해야 한다.하지만인스턴스 변수에 final이 붙을 경우 선언 시 초기화할 수 없다.생성자에서 초기화할 수 있다.한번 지정한 이후로 값을 바꿀 수 없다. 보통 상수를 지정하면 static final String STR = "abcde";처럼 static final을 함께 지정한다.final만 지정할 경우 인스턴스를 만들 때 마다 계속 final에 해당하는 변수를 생성한다.어차피 값이 바뀌지 않고 공통으로 써도 되는 변수라면 static변수로 만들어서 사용하는게 바람직 한 것이다.