[JAVA - 자료구조] LinkedList
Language/Java2024. 6. 9. 17:30[JAVA - 자료구조] LinkedList

ArrayList의 단점배열은 필요한 배열의 크기를 미리 확보하기때문에 나머지 공간은 사용되지 않고 낭비된다데이터의 추가와 삭제가 어려우며 이로인해 성능이 좋지않다낭비되는 메모리 없이 필요한만큼의 메모리만 사용하고 데이터를 중간에 추가하거나 삭제할 때도 효율적인 자료구조가 바로 노드와 연결이다노드와 연결의 '노드'는 내부에 저장할 데이터인 item과 다음으로 '연결'할 노드의 참조인 next를 가지고 있다.Node클래스public class Node { Object item; Node next; public Node(Object item) { this.item = item; } @Override public String toStrin..

Language/Java2024. 6. 9. 17:29[JAVA] 익명 클래스

anonymous class - 지역 클래스이지만 이름이 없다는 의미를 가지고있다보통의 클래스나 지역 클래스를 사용하기 위해서는클래스를 선언클래스를 new로 생성위와 같이 두 가지의 과정을 거쳤다.===익명 클래스를 사용하면 클래스의 이름을 생략하고, 클래스의 선언과 생성을 한번에 처리할 수 있다===익명 클래스 사용 전public class AnonymousOuter { private int outInstatnceVar = 3; public void process(int paramVar) { int localVar = 1; class LocalPrinter implements Printer{ int value = 0; ..

[JAVA] 날짜와 시간 - LocalDate, LocalTime
Language/Java2024. 6. 9. 17:19[JAVA] 날짜와 시간 - LocalDate, LocalTime

날짜와 시간 개념 및 이론날짜와 시간의 계산은 단순하게 생각하면 쉽지만, 실제로는 윤년, 각 달의 일수, 썸머타임 등 여러가지 요건과 환경을 고려해야하기때문에 매우 복잡하다.고려할 요소일광 절약 시간(썸머타임)타임존 계산: 각 타임존은 UTC로부터의 시간차이로 정의GMT: 처음 세계 시간을 만들 때 영국런던에 있는 그리니치 천문대를 기준으로 태양이 그리니치 천문대를 통과할 때를 정오로 한다.UTC: 세계협정시로 GMT보다 정밀한 시간측정을 단위로하며 개념자체는 유사하다LocalDate, LocalTime, LocalDateTime[!Local의 의미]세계 시간대를 고려하지 않아 타임존이 적용되지 않았기때문이다.즉, 특정 지역의 날짜와 시간만 고려할 때 사용한다애플리케이션을 개발할 때 국내 서비스만을 고려..

[JAVA - 자료구조] ArrayList
Language/Java2024. 6. 7. 16:58[JAVA - 자료구조] ArrayList

배열은 다음과 같은 단점이 있다배열의 길이를 동적으로 변경할 수 없다데이터를 추가하기 불편하다배열의 이런 불편함을 해소하고 동적으로 데이터를 추가할 수 있는 자료구조를 List라고 한다List자료구조의 특징순서가 있고 중복을 허용한다배열과 다르게 크기를 동적으로 변경할 수 있다.일반 ArrayList 구현public class MyArrayListV1 { private static int DEFAULT_CAPACITY = 5; private Object[] elementData; private int size = 0; public MyArrayListV1() { elementData = new Object[DEFAULT_CAPACITY]; } ..

[JAVA] 중첩 클래스 (중첩 클래스 ,정적 중첩 클래스, 지역 클래스)
Language/Java2024. 6. 3. 22:45[JAVA] 중첩 클래스 (중첩 클래스 ,정적 중첩 클래스, 지역 클래스)

중첩 클래스는 클래스안에 다른 클래스가 중첩되어있음을 의미하는 클래스로 크게는 ===정적 중첩 클래스===, ===내부 클래스===로 나뉘며 내부 클래스에는 다시 내부 클래스, 지역 클래스, 익명 클래스 세 가지로 나뉘어진다[!중첩클래스와 내부클래스 단어 정리]중첩 클래스와 내부 클래스의 의미는 면밀히 다르며 중첩 클래스란 중첩 for문과 같이 클래스 안에 다른 클래스가 중첩되어있음 그 자체를 의미하고, 내부 클래스는 클래스안에 내부 클래스가 외부 클래스의 구성요소가 되는 것을 의미한다내부 클래스: 내부 클래스, 지역 클래스, 익명 클래스정적 중첩 클래스: static키워드가 붙은 정적 중첩 클래스중첩 클래스: 정적 중첩 클래스 + 내부 클래스중첩클래스의 사용 이유논리적 그룹화: 특정 클래스가 다른 하나..

[JAVA] 다형성
Language/Java2024. 6. 2. 15:19[JAVA] 다형성

===다형성은 객체지향의 필수적인 요소이며 객체지향의 꽃이라고 불린다.===다형성의 핵심이론다형적 참조메서드 오버라이딩다형적 참조부모타입의 변수가 부모 인스턴스 참조Parent parent = new Parent();parent.parentMethod();자식변수가 자식 인스턴스 참조Child child = new Child();child.parentMethod();child.childMethod();child변수는 Parent인스턴스와 Child인스턴스를 모두 가지고있다.자식인스턴스에서 메서드를 먼저 찾아보고 없으면 부모 메서드를 호출한다.부모변수가 자식 인스턴스 참조(다형적참조)Parent poly = new Child();poly.parentMethod();부모타입의 변수가 자식 인스턴스를 참조부모..

[Java] - 배열(Array)
Language/Java2023. 10. 23. 23:13[Java] - 배열(Array)

배열이란? 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 중요한 점은 '같은 타입'이라는 점 입니다. 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없습니다. -선언방법 타입[] 변수이름 타입 변수이름[] 위 두가지의 선언방법이 있습니다. -배열생성 변수이름 = new 타입[길이]; 한 번 선언된 배열의 길이는 변경할 수 없습니다. 만약 변경을 해야한다면, 기존 배열의 길이보다 더 큰 배열을 생성한 뒤, 기존 배열을 새로운 배열에 복사하는 방법이 있지만 이는 효율적인 방법이 아니므로 배열을 생성할 때 길이를 자신의 사용 목적에 맞게 충분히 고려하여 설정해야 합니다. -배열사용예시 public class Main { public static void main(String[] args) {..

Language/Java2023. 10. 18. 21:45[Java] - BufferedWriter

역할 BufferedWriter는 버퍼를 이용하여 데이터의 출력을 다루는 함수입니다. 버퍼를 사용한다는 것은 버퍼에 출력문자열을 저장했다가 버퍼가 다 차거나 사용자의 코드로(flush) 요청이 들어오면 버퍼에 있던 문자열을 한 번에 출력한다는 것입니다. System.out.println()메서드와 역할은 비슷하지만 Scanner와 BufferedReader의 차이처럼 장단점이 존재합니다. System.out.println()과 BufferedWriter에 대해 알아두고 상황에 맞는 출력을 사용하는 것이 좋습니다. 파해쳐보기 System.out.pritnln과 비교 System.out.print/ln()은 Scanner와 마찬가지로 사용자에게 편리성을 제공합니다. println()으로 개행을 따로하지않아도..

image