http://jjjayyy.tistory.com/47여기서 이중 for문으로 정렬된 두 데이터의 같은 값을 추출하는 작업을 진행했다.하지만 디버깅을 해보니 같은 값이 없을 때에도 해당 리스트의 전체를 돌며 탐색해서 비효율적이었다.가령, List A의 size는 (20)이고 List B의 size는 (5000)이라면같은 값이 없는 조건일 경우 한 번씩 다 확인하면서 총 100,000번 비교해보는 셈이다.그러다 지하철을 오며가며 본 알고리즘에서 이진탐색이 생각나서 적용해봤다. 1234567891011121314151617181920212223for(ItemVO listVo : list) { int mid = 0; int first = 0; int last = newItemList.size() - 1; whi..
선언된 쿼리가 굉장히 복잡한데 거기에 GROUP_CONCAT과 ORDER BY까지...데이터가 많아질수록 느려지다가 결국...the memory size allocated for the statement has exceeded the maximum limit이런 에러를 내뱉으면서 살려달라고 한다.그래서 GROUP_CONCAT이 필요한 부분만 따로 쿼리를 만들었고,JAVA에서 두 리스트를 불러와 하나로 합치는 작업을 진행했다. 두 리스트가 공통된 부분을 기준으로 비교해야하는데 그러려면 이중 for문을 사용해야했다.이중으로 돌면 데이터가 많아질수록 느려질 것 같아서 최소로 for문을 돌리는 방법을 생각했는데 1234567891011121314151617181920212223242526 private List..
예외 처리의 두가지 방법1. 처리하기> try{ } catch (Exception e) { }> 처리하고 꼭 실행시켜주고 싶은게 있으면 마지막에 finally { }> 여러개의 catch 사용가능 (순서대로 처리하기 때문에 아래로 갈수록 예외 상위클래스로!)2. 회피하기> 메소드 옆에 throws Exception { } - 상위 클래스인 Exception만 해도 모든 예외가 처리(회피) 되지만, 어떤 예외가 발생했는지 알 수가 없다.- 컴파일러에서는 RuntimeException을 제외한 모든 것을 확인 (확인 예외)- RuntimeException은 컴파일러에서 확인하지 않음.(미확인 예외)
Static 메소드- Static 메소에서는 static 변수가 아닌 변수는 사용할 수 없다.- Static 메소에서는 static 메소드가 아닌 메소드도 사용할 수 없다.- 호출할 때는 클래스명을 사용해 호출한다. (아래 예제 기준으로 Chicken.정적메소드();)> 레퍼런스 변수명( = new 클래스())로도 호출이 가능하지만 경고가 뜬다. (좋은 방법이 아니라는 얘기)> 호출할 수 있다고 해서 참조하는 객체에 들어있는 인스턴스 변수를 사용한다거나 하는 것이 아니기 때문에 Static 변수- 클래스가 처음 로딩될 때 초기화- 인스턴스가 만들어질 때마다 초기화되지 않음.123456789public class Chicken { int chickenCount = 0; public int chicCnt()..
깊게 파면 한도 끝도 없겠지만 책을 바탕으로 가볍게알고는 있지만 안쓰다보면 잊게 되는 내용들만 정리해봐야겠다. class A - class B extends A - class C extends B (상위클래스 - 하위클래스)> 'A는 B다' 가 성립하면 상속> class C에서 class B의 메소드를 오버라이드 하지 않고 그대로 쓰고 싶다면- super.bclassMethod();> 모든 클래스는 extends Objects- Object 클래스를 상속받고 있다.- 따라서 Object 클래스의 메소드를 사용하거나 오버라이드 할 수 있다.> 이중상속 불가능.- class C가 class B를 상속받고 있는데 어디서 굴러나온 class D를 또 상속 할 수 없다.* 처리 순서(?)- 호출 : C → B →..
클래스는 JVM에서 어떻게 그 유형의 객체를 만들지 기술 Return... - int로 선언된 메소드에서는 return 값이 byte여도 문제가 없다. - 하지만 byte로 선언된 메소드는 return 값이 int 형일 경우 에러가 난다.- 선언한 유형이 리턴한 유형보다 작을 경우 (선언 유형 < 리턴 유형) 별도의 캐스팅을 해줘야 한다. Instance Variable vs Local Variable - 인스턴스 변수 (Instance Variable) : 클래스 내 선언, 초기화 안해도 default 값 있음.- 지역 변수(Local Variable) : 메소드 내 선언, default 값 없음.
변수 명명 규칙http://myeonguni.tistory.com/1596( 여기에 너무 잘 정리되어 있다! )- 문서화 주석 ( /** ... */ ) : 클래스, 인터페이스, 생성자, 메소드, 필드 설명- 한 줄은 80자 이상 피함 ( JAVA의 경우 Window → Preference → formatter 검색 → 가이드 라인 적용 )- 클래스 : 명사, 첫 단어 대문자 ( class MyWorld )- 인터페이스 : 클래스랑 같지만 간혹 형용사 사용 ( interface Serializable )- 메소드 : 동사, 첫 단어 소문자 ( run(); , getData(); )- 상수 : 모두 대문자, 문자 구분은 언더바 ( static final int MAX_NUMBER ) 원시변수 (Primit..
- Total
- Today
- Yesterday
- 쇠막대기
- java
- 스프링 부트
- 문자열 내 마음대로 정렬하기
- API
- 알고리즘
- 다음 맵 api
- 노션트렐로광고X
- json
- K번째수
- 예매 알림
- 객체지향과 디자인패턴
- Spring
- 프로그래머스
- 최솟값
- 자바
- 기능개발
- 카카오인턴
- 텔레그램
- 파이팅코리아
- 안드로이드 스튜디오
- 맵 api
- 타겟 넘버
- FrogJmp
- codility
- cgv
- AWS
- 124 나라의 숫자
- 완주하지 못한 선수
- 더 나은 내일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |