Java 5

[ Java ] Java, Python, C 특징 및 차이점

Java의 특징 Java 는 1995년에 개발되었습니다. 객체 지향 언어(OOP) 로 기능 또는 역할에 따라 모듈화 하여 관리합니다. → 가독성, 유지보수성, 재 사용성이 좋습니다. 플랫폼 독립적 언어입니다. 운영체제에 관계없이 JVM 환경에서 실행됩니다. → 운영체제에 맞춰 코드를 재 작성할 필요가 없습니다. 다양한 라이브러리와 프레임워크가 존재합니다. → 빠른 개발이 가능하며 생산성이 증가됩니다. Multi Thread를 지원합니다. → 동시에 여러 작업이 가능해 분산 컴퓨팅에 유용합니다. 보안성이 높습니다. → 자바 실행 시 코드 검증을 통해 악성, 바이러스 실행을 방지합니다. 메모리 관리를 가비지 컬렉터가 맡아 합니다. → 가비지 컬렉터를 사용하여 메모리 관리를 자동으로 수행합니다. 개발자는 메모..

Java 2023.12.23

[ Java ] 추상클래스 vs 인터페이스

추상클래스와 인터페이스? 차이점은 무엇이며 언제 적절히 사용해야 할까요? 자세히 살펴 보도록 하겠습니다. 추상 클레스 추상클레스란? 일부 메서드가 추상 메서드로 선언된 클래스입니다. 추상 클레스에는 구현부가 있는 일반 메서드가 존재할 수 있습니다. 코드 예시) abstract class Singer { private String name; abstract void sing(); // 추상 메서드 public String getName() { // 일반 메서드 return name; } public void setName(String name) { this.name = name; } } 추상클래스의 특징 1. 클래스와 추상 메서드에 abstract 키워드를 사용합니다. 2. 로직이 있는 메서드와 추상 메서..

Java 2023.12.22

[ Java ] Stream 의 reduce 사용해보자

알고리즘 문제나, 개발을 하다 보면 Stream에 정의된 연산을 자주 사용하게 됩니다. 그중 reduce를 사용하는 방법에 대해 알아보려 합니다. reduce는 스트림의 요소를 하나씩 줄여가며 계산하는 연산(reducing)입니다. reduce는 forEach와 같은 최종 연산으로, 스트림 생성 후 단 한 번만 연산 가능합니다. 참고 - 스트림의 중간 연산과 최종 연산? 더보기 중간 연산은 스트림을 반환합니다. 그렇기 때문에 연속해서 연산을 이어갈 수 있습니다. 중간 연산의 종류로, distinct(), filter(), sorted(), map() 등이 있습니다. 최종 연산은 스트림이 아닙니다. 최종 연산을 하게 되면 스트림이 소모가 되어 연산을 추가로 진행할 수 없습니다. 최종 연산의 종류는 forE..

Java 2023.12.20

[ Java ] 리스트 ↔ 배열 변환

배열 → 리스트 ★ 자리에 배열 넣어 주기 1. Arrays 로 변환 → Arrays.asList(★); 값의 동기화. ★의 값이 변경되면 List값도 같이 변경됨. 2. ArrayList 로 변환 → new ArrayList(Arrays.asList(★)); new로 값의 동기화를 막음. 3. Stream 로 변환 → Stream.of(★).collect(Collectors.toList()); 리스트 → 배열 ♥ 자리에 List넣어 주기 toArray() 를 이용해 변환 → ♥.toArray(new String[ ♥.size() ]);

Java 2023.04.04