본문 바로가기

Language29

[Java API] List 인터페이스(ArrayList, LinkedList) https://claremont.tistory.com/entry/Java-API-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACCollection-Framework [Java API] 컬렉션 프레임워크(Collection Framework)컬렉션 프레임워크(Collection Framework): 데이터를 저장하고 조작하는 데 유용한 자료구조와 알고리즘을 제공하는 표준화된 라이브러리이 프레임워크는 데이터를 효율적으로 다루기 위해 다양한claremont.tistory.comhttps://claremont.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-ep3-1-%EB%8B.. 2024. 9. 19.
[Java API] 컬렉션 프레임워크(Collection Framework) https://claremont.tistory.com/category/Computer%20Science/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0 'Computer Science/자료구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.comhttps://claremont.tistory.com/category/Computer%20Science/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 'Computer Science/알고리즘' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.com(자료구조와 알고리즘 개념이 잡혀있어야 한다)  컬렉션 프레임워크(Collection Framework): 데이.. 2024. 9. 18.
[Java] 제네릭은 처음부터 있었던 문법이 아니다(feat. raw type, type eraser) ㅇraw type: 다이아몬드()를 사용하는 일반적인 제네릭 방식과는 다르게, 다이아몬드를 사용하지 않는 방식내부의 타입 매개변수가 Object로 사용된다고 이해하면 된다GenericBox integerBox = new GenericBox();자바의 제네릭은 자바가 처음 등장할 때부터 있었던 것이 아니라, Java 5 이후에 등장했기 때문에 제네릭이 없던 시절의 과거 코드와 호환이 필요했다. 그래서 어쩔 수 없이 이런 raw type을 지원하는 것이다. 따라서 우리가 코드를 작성할 때는 raw type을 사용할 이유가 없다.※ raw type은 Java에만 있는 독특한 개념이다   type eraser도 마찬가지로 이해하면 된다ㅇtype eraser: 컴파일 시점에 제네릭 타입 정보를 제거하고 raw t.. 2024. 9. 16.
[Java API] 예외계층구조 핵심 그림 "예외도 객체다"     참고 및 출처: 김영한의 실전 자바 - 중급 1편https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1 2024. 9. 16.
[Java] 중첩 클래스에 대한 고찰 중첩(Nested): 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계 (나의 안에 있지만 내 것이 아닌 것)내부(Inner): 나의 내부에 있는 나를 구성하는 요소여기서 의미하는 중첩(Nested)과 내부(Inner)를 분류하는 핵심은 바로 바깥 클래스 입장에서 볼 때 안에 있는 클래스가 나의 인스턴스에 소속이 되는가 되지 않는가의 차이이다**정리하면 내부 클래스들은 바깥 클래스의 인스턴스에 소속된다. 정적 중첩 클래스는 그렇지 않다.**  [용어 정리]중첩 클래스: 정적 중첩 클래스 + 내부 클래스 종류 모두 포함정적 중첩 클래스: 정적 중첩 클래스를 말함내부 클래스: 내부 클래스, 지역 클래스, 익명 클래스 3가지 종류를 포함해서 말함  + 지역 변수 캡처지역 클래스를 통해 생성한 인스턴스가.. 2024. 9. 9.
[Java API] 날짜와 시간 라이브러리 https://claremont.tistory.com/entry/%EC%8D%B8%EB%A8%B8%ED%83%80%EC%9E%84%EA%B3%BC-%ED%83%80%EC%9E%84%EC%A1%B4-%EA%B3%84%EC%82%B0 썸머타임과 타임존 계산ㅇ썸머 타임(일광 절약 시간: DST, Daylight Saving Time)보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜬다. 시간도 여기에 맞추어 1시간 앞당기거나 늦추는 제도를 썸claremont.tistory.com(참고) Java의 날짜와 시간 라이브러리 역사https://claremont.tistory.com/entry/%EC%88%98%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9E%90%EC%84%B.. 2024. 8. 27.
[Java API] enum 주요 메서드 정리 타입 안전 열거형 패턴 - Type-Safe Enum Pattern  ㅁenum 열거형: 타입 안전성을 제공하고, 코드의 가독성을 높이며, 예상 가능한 값들의 집합을 표현하는 데 사용정해진 객체만 사용할 수 있기 때문에, 잘못된 값을 입력하는 문제를 근본적으로 방지해 준다. (런타임 에러 아닌 컴파일 에러로 사전 차단)※ enum은 enumeration의 약자이다  (특징)1. 외부 생성도 컴파일 에러로 차단해준다.2. 열거형은 java.lang.Enum 를 자동(강제)으로 상속받는다..3. 열거형은 이미 java.lang.Enum 을 상속받았기 때문에 추가로 다른 클래스를 상속을 받을 수 없다. 4. 열거형은 인터페이스를 구현할 수 있다.5. 열거형에 추상 메서드를 선언하고, 구현할 수 있다. (이 경.. 2024. 8. 24.
[Java API] Math 클래스, Random 클래스 ㅇMath 클래스: 다양한 수학적 연산을 위한 정적 메서드를 제공하는 유틸리티 클래스따라서 객체를 생성하지 않고 클래스 이름을 통해 직접 메서드를 호출할 수 있다package lang.math;public class MathTest { public static void main(String[] args) { System.out.println("max(1, 3): " + Math.max(1, 3)); // 최대값 System.out.println("min(1, 3): " + Math.min(1, 3)); // 최소값 System.out.println("abs(-1): " + Math.abs(-1)); // 절대값 System.out.println();.. 2024. 8. 23.
[Java API] System 클래스 ㅇSystem 클래스: Java 프로그램 기본 시스템 기능에 접근할 수 있는 유틸리티 클래스e.g. 자바 프로그램의 표준 입력, 표준 출력, 시스템 속성, 환경 변수, 시간 측정 등의 기능을 제공※ 이 클래스는 상속할 수 없으며, 모든 메서드와 필드는 정적(static)으로 선언되어 있어 객체를 생성하지 않고 사용할 수 있다 (예시 코드)package lang.system;import java.util.Arrays;public class SystemMain { public static void main(String[] args) { // 현재 시간(ms)을 가져온다 long currentTimeMillis = System.currentTimeMillis(); S.. 2024. 8. 23.