목록언어/자바(Java) (6)
It's easy, if you try
Final final은 메소드, 클래스, 변수에 붙여서 사용합니다. 1. Immutable 변수 final 변수 선언 시 추후에 수정이 불가합니다. final int COOKIE_SIZE = 3; 추후에 수정할 수 없기 때문에 초기화가 필수입니다. 2. final 함수 메소드 오버라이트를 제한합니다. 3. final 클래스 상속이 불가능한 클래스가 됩니다. Wrapper Class 도 final 클래스에 해당됩니다. Static과의 차이점 static은 모든 인스턴스에 공통된 값을 유지합니다. 또한, 메모리에 한번 할당되어 프로그램이 종료될 때 해제됩니다. static 또한 메소드, 클래스, 변수에 사용될 수 있습니다. static 변수는 정적 필드, static 메소드는 정적 메소드라고도 합니다. 이 ..
Map map = new HashMap(); map.put("a", 3); map.put("b", 2); map.put("c", 1); List entryList = new LinkedList(map.entrySet()); entryList.sort(((o1, o2) -> map.get(o1.getKey()) - map.get(o2.getKey()))); for(Map.Entry entry : entryList){ System.out.println("key : " + entry.getKey() + ", value : " + entry.getValue()); } //key : c, value : 1 //key : b, value : 2 //key : a, value : 3
👊 코드 개선을 위한 Collection 사용 목차 Collection의 장단점 실습 (1) 실습 (2) 1. Collection의 장단점 위와 같이 클래스 A와 B가 있을 때, 간결성과 가독성면에서는 B가 우수합니다. 그러나, 힙 메모리 사용량이나 함수 실행 속도 면에서는 A가 더 우수합니다. 📌 따라서, 장/단점이 있기 때문에 어느 방식을 적용할지는 요구사항, 메모리 사용량, 가독성, CPU 연산량 등 다각도로 고려해야합니다. 2. 실습 (1) 📌switch ~ case ~ 문을 통해 작성한 현재 달의 날 수 출력 프로그램을 Collection을 사용해 개선해 봅시다. 개선 전 import java.util.*; import java.text.SimpleDateFormat; public class 코..
목차 1. Collections 의 Sort 2. Comparable 3. Comparator 4. Comparator 익명의 내부 클래스 사용하기 5. 람다식으로 표현하기 Collections.sort 사용하기 Collections.sort() 를 이용해 객체를 오름차순 또는 내림차순으로 정렬할 수 있다. Arrays.sort()의 경우 Collection(List) 정렬은 불가능하다. 배열 객체의 경우만 가능하다.(기본은 오름차순, Arrays.sort(배열 이름, Collections.reverseOrder()); ==> 내림차순) 만약 사용자가 정렬 조건을 다시 정의하고 싶다면 1. Comparable (구현, compareTo 메소드 오버라이딩) 2. Comparator (구현, compare ..
순열 서로 다른 n개의 원소 중 r개를 순서 있게 골라낸 것을 순열(Permutation)이라고 한다. 아래 코드는 주사위를 3번 던졌을 때 나올 수 있는 경우의 수이다. (중복 X, 순서 O) // 순열 : nPr ==> n! private static void dice2(int cnt) { if(cnt == N) { totalCnt++; System.out.println(Arrays.toString(numbers)); return; } for(int i =1; i n^r private static void dice1(int cnt) { if(cnt == N) { // 기저 조건 totalCnt++; System.out.println(Arrays.toString(numbers)); return; } f..
자바 언어의 탄생 1991년 Green Project에서 가정용 전자기기에서 사용되는 작은 컴퓨터 언어를 디자인 했다. 이때, 작고 견고한 언어, 신뢰할 수 있는 코드 특정 디바이스에 종속되지 않아야 함 와 같은 특성을 고려해 Virtual Machine에서 동작하는 중간코드를 생성해 이식성이 높은 언어를 디자인 했다. 1992년 초기 자바 언어는 절차지향언어와 객체지향 혼용해 사용했던 언어인 C++ 를 기반으로 개발되었다. 그러다가 C++ 의 여러가지 한계에 부딪혀 완벽한 객체지향 언어인 Oak 가 개발되었고 제임스 고슬링에 의해 명명된 Oak는 Oak라는 프로그램이 존재했기 때문에 이후 JAVA로 변경 되었다. 1994년 World Wide Web의 발전과 Mosaic의 사용에 주목 자바를 기반으로 ..