Java에서 객체를 정렬할때 직접 정렬 알고리즘을 짜서 정렬 할 수도 있지만, Arrays.sort()나 Collections.sort()를 많이 사용하죠. 사용자 기준으로 정렬기준을 정해 원하는대로 정렬하고 싶을때 Comparator, Comparable을 사용합니다. Comparator과 Comparable의 차이점을 간단하게 생각하자면 Comparable은 Class에 정렬기준을 정하는 것이고, Compartor는 기본 정렬 기준과 다르게 정렬하고 싶을때 사용합니다. Comparable 사용하기 Comparable은 클래스에 Comparable를 implements하고 compareTo를 오버라이드 하여 구현합니다. 예시를 보겠습니다. 실행결과 compareTo에서 음수 or 0을 리턴할 시 두 객..
* 오버로딩(Overloading) 오버라이딩(Overriding) Java에서 중요한 개념으로 다형성이 있다. 다형성은 같은 자료형에 여러 가지 객체를 대입했을 때 대입한 객체에 따른 결과를 얻어내는 것을 말한다. 그 다형성을 위한 방법으로 오버로딩과 오버라이딩이 있다. 명칭은 비슷하지만 개념은 완전히 다르다. (그렇지만 자주 헷갈린다.) - 오버로딩(Overloading) * 오버로딩: 같은 이름의 메소드가 자료형이나 인자의 갯수가 다를경우를 말한다. - 예시 public int add(int a1, int a2) { ... } public int add(double a1, double a2) { ... } 오버로딩의 개념이없다면 각자 addInt, addDouble 메소드로 만들어야겠지만, 오버로딩..
* 제네릭(Generic) 타입 Java에서 제네릭 타입을 사용할 경우 컴파일 과정에서 타입체크를 할 수 있습니다. 클래스와 메소드를 선언할때 파라미터로 선언할 수 있습니다. * 왜 제네릭 타입을 쓸까? 1. 컴파일 단계에서 에러를 잡을 수 있다. - 잘못된 객체를 넣을시 컴파일 단계에서 걸러주어 런타입 단계에서 문제가 발생 될 여지를 막아주기 때문에 꼭 써주는 것이 좋다. 2. 타입 캐스팅을 컴파일러가 해준다. - 예를 들어 숫자만 들어가야하는 Map이 있다고 생각해 봅시다. Map map = new HashMap(); map.put("사과", 1); map.put("단감", 2); int rank = (Integer)map.get("사과"); - 제네릭 타입을 선언하지 않을 경우 캐스팅을 해줘야 하지..
* Java volatile? - volatile 변수는 변수의 값을 읽어올때 CPU Cache에서 읽어오는 것이 아니라, Main Memory에서 읽어오게 된다. - write 할때마다 변수의 값을 Main Memory에 저장한다. * 어떨때 쓸까? - Multi Thread 환경에서 Thread가 변수값을 읽어올때 각각의 CPU cache값이 다르기 때문에 변수 값이 불일치하는 문제가 발생한다. - Thread 1에서 int counter 값을 0에서 계속 증가시키고 있다고 치면, 아직 CPU cache에만 값이 저장되고 있기 때문에 Thread 2에서 counter을 읽어들이면 0을 가져오게 된다. * 언제 쓸까? - 하나의 Thread에서만 값을 read & write하고 나머지 Thread는 r..
- Total
- Today
- Yesterday
- yyyy-MM-dd
- local cache
- 카카오 코딩 테스트
- 삼성 코테
- spring cache
- 19236
- 백준
- 삼성기출
- 삼각달팽이
- DP
- 오버로딩
- 청소년상어
- javascript
- vaild
- 제네릭 타입
- 날짜 유효성
- 커링
- RGB거리
- 문자열 압축
- 39회차
- 01타일
- for of
- 1629
- 카카오 인턴십
- java
- 프로그래머스
- 가장 큰 수
- 키패드 누르기
- 제네릭(Generic)
- 반례
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |