본문 바로가기

Java22

[자바] 인터페이스 (Interface) 인터페이스 (Interface) 여러 클래스들을 만들 때, 만들어야 될 필요한 기능들에 대해서 합의해놓은 규약, 또는 가이드라인 (즉 객체의 스펙을 지정​해준다) 실제 객체로 사용되진 않고 객체의 타입으로만 사용됨. 프로그램을 설계하고 유연한 프로그램을 만들기 위한 기법 '다형성'이라는 객체지향 프로그래밍 특징을 구현한 기법 ​ EX) 특정 클래스를 구현하는데 개발자 혼자 클래스를 다 개발할 때까지 기다리기는 너무 시간이 오래 걸림 해당 클래스에서 어떤 메소드를 구현할지 기능에 대해서 배포 배포받은 기능 설명을 보고 구현만 하면됨 ​ 문법 1. 인터페이스는 실제 객체 X 추상 메소드, 상수만을 가지고 있음 ​ 2. 인터페이스의 상수는 private 불가능 인터페이스는 외부로 공개하기 위해서 만들어지는 것.. 2020. 9. 15.
[자바] JRE, JDK JRE (Java Runtime Environment) JVM + 기타 API 클래스 자바 프로그램을 실행하는데 필요한 실행환경 제공 ​ JDK (Java Development Kit) JRE + 개발 도구 자바 프로그램 실행뿐만이 아니라 개발에 필요한 도구들도 함께 제공 2020. 9. 15.
[자바 이슈] Comparator 사용 관련 주의 알고리즘 문제를 풀다가 Comparator를 사용했는데 처음 보는 경우를 발견했다. 1. 런타임 에러 발생 코드 Arrays.sort(nodes, new Comparator() { @Override public int compare(int[] o1, int[] o2) { if(o2[1] > o1[1]) return 1; return -1; } }); 처음에 적은 코드이다. 내림차순 정렬을 하기 위해서 자리를 바꿔야 하면 1을 반환, 아니면 -1을 반환했는데 계속 몇몇 테스트 케이스에서 런타임 에러가 발생했다. 2. 정상 동작 코드 Arrays.sort(nodes, (o1, o2) -> o2[1] - o1[1]); 그리고 나중에 고친 코드이다. (람다식은 중요하지 않다.) 이건 정상적으로 돌아가는 코드인데.. 2020. 9. 9.
[자바] Arrays.sort() 자바 배열 정렬 Arrays.sort() 자바에서 제공하는 배열 정렬 메서드입니다. 따로 Comparator를 지정하지 않으면 기본적으로 오름차순으로 정렬됩니다. (단, Comparator를 사용하려면 객체형 데이터타입으로 선언해야 합니다. 내부적으로 QuickSort를 구현하기 때문에 O(log n)의 시간복잡도를 가집니다. ArrayList와 같은 Collections 프레임워크에 속하는 컴포넌트들은 Collections.sort()를 사용하면 됩니다. import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) { Integer array[] = {3,2,1,6,5,7,4,8.. 2020. 9. 9.