java (100) 썸네일형 리스트형 [JAVA] 문자열 처리와 관련된 클래스 자바에서 문자열을 처리할 일은 매우 많다.예를 들자면 아래와 같은 경우들이 있다.사용자 입력 (Scanner.nextLine())데이터베이스 값 (VARCHAR 같은 문자열 컬럼)파일 읽기/쓰기 (BufferedReader.readLine())로그 기록 (System.out.println("Error: 파일을 찾을 수 없습니다."))웹 개발 (HTML, JSON, XML 등의 데이터 형식)간단하게 생각했을때 이정도인데 세세하게 들어가면 더더욱 많다.때문에, 문자열 처리는 필수적이게 되는데 그렇다면 이와 관련된 클래스가 무엇이 있는지 확인해보자.문자열 처리와 관련된 클래스 String, StringBuilder, StringBuffer에 대해 알아보겠다.StringString 객체는 불변 → 한 번 생성되.. [JAVA] 다형성과 정적, 동적 바인딩 다형성다형성은 하나의 부모 클래스 타입(또는 인터페이스)으로 여러 자식 클래스 객체를 참조할 수 있는 것을 의미한다.즉, 같은 코드로 여러 객체를 다룰 수 있도록 하는 개념이다.정적, 동적 바인딩다형성을 활용하는 과정에서 메서드 호출 방식이 "정적 바인딩"과 "동적 바인딩"으로 구분된다.정적 바인딩컴파일 타임(Compile Time)에 어떤 메서드가 실행될지 결정되는 방식이다.메서드 오버로딩(Overloading)과 관련되어 있다.실행 속도가 빠르며, 컴파일러가 미리 결정하여 최적화가 가능하다.class MathUtils { // 메서드 오버로딩: 같은 이름의 메서드지만 매개변수가 다름 int add(int a, int b) { return a + b; } double .. [JAVA] 추상 클래스(abstract) 추상 클래스추상 클래스란 객체를 직접 생성할 수 없는 클래스로, 주로 다른 클래스들이 상속받아 사용할 공통적인 기능(메서드, 필드 등)을 정의하는 용도로 사용된다.공통적인 기능을 정의하고, 일부 메서드는 자식 클래스가 반드시 구현하도록 강제하는 역할을 한다.1. 목적코드의 재사용성 증가공통적인 메서드를 제공하여 중복 코드 방지일관된 인터페이스를 제공한다.특정 기능을 반드시 구현하도록 강제유지보수 및 확장에 용이하다.추상 클래스에 새로운 기능을 추가하면, 이를 상속받은 모든 클래스에서 사용할 수 있음객체의 역할과 행동을 명확히 구분할 수 있다.예: 동물(Animal) 클래스에서 먹다(eat)는 공통적으로 제공하고, 소리 내기(makeSound)는 각 동물마다 다르게 구현하도록 강제2. 특징객체 생성 불가능.. [JAVA] 상속 상속객체 지향 프로그래밍(OOP: Object Oriented Programming)에서 크게 3요소로 꼽는 캡슐화, 상속, 다형성 세 가지 중 상속에 대해 알아보자.참고) 상속의 다른 표현으로는 계승, 확장(Java에서 상속할 때 extends라는 키워드를 사용한다.)이라는 단어도 사용된다고 한다.1. 목적코드 재사용성 향상기존 클래스를 확장하여 새로운 클래스를 생성함으로써, 같은 기능을 반복적으로 구현하지 않아도 된다.유지보수 용이공통 기능을 부모 클래스에 두고, 변경이 필요할 때 한 곳만 수정하면 된다.객체 지향 프로그래밍의 원칙 적용OOP의 다형성과 캡슐화를 활용하여 효율적인 프로그램 구조를 설계할 수 있다.확장성 향상기존 클래스를 확장(extend)하여 새로운 기능을 쉽게 추가가 가능하다.가독성.. [멋쟁이사자] 백엔드 - 11일차 회고록 11일차학습 목표클래스와 상속을 활용하여 코드 재사용성을 높이고, 다형성을 적용하여 유연한 프로그램 구조를 설계할 수 있다.추상 클래스와 인터페이스의 개념과 차이를 이해하고, 각각의 용도와 특징을 설명할 수 있다.프로그램 실행 중 발생하는 예외를 try-catch-finally 블록을 활용하여 효과적으로 관리할 수 있다.오전에는 어제 하던 동적 바인딩을 워크샵 코드로 수업을 진행했다.확실히 코드로 학습하니 이해가 더 잘되는것 같다.추상 클래스와 인터페이스는 아래와 같은 차이를 보인다.추상 클래스상속을 통한 코드 재사용이 목적공통된 기능을 일부 구현 가능일부 메서드는 추상 메서드(abstract method)로 선언하여 하위 클래스에서 반드시 구현하도록 강제할 수 있음인스턴스를 생성할 수 없음단일 상속만 .. [멋쟁이사자] 백엔드 - 10일차 회고록 10일차학습 목표상속(Inheritance)의 개념과 활용을 이해하고, 부모 클래스의 기능을 재사용하여 코드의 중복을 줄일 수 있다.추상 클래스(Abstract Class)의 개념을 이해하고, 공동 기능을 정의하여 코드의 일관성을 유지할 수 있다.다형성(Polymorphism)을 활용하여 객체를 동적으로 관리하고, 유연한 코드 구조를 만들 수 있다.인터페이스(Interface)를 사용하여 유연한 설계를 구현하고, 다중 구현을 활용할 수 있다.상속상속은 사실 지겹도록 많이 들었다. 그만큼 중요하다고 들었기 때문에 아래 블로그에 잘 정리해뒀다.https://lold2424.tistory.com/172 [JAVA] 상속상속객체 지향 프로그래밍(OOP: Object Oriented Programming)에서 크.. [JAVA] Stream 1. 목적스트림(Stream)은 데이터를 연속적으로 처리하는 기능을 제공하는 Java의 API이다.즉, 컬렉션(List, Set), 배열, 파일 등의 데이터를 간결하고 효율적으로 다룰 수 있도록 해준다.스트림을 사용하는 이유반복문을 줄여 가독성을 높임for 문 없이 map(), filter() 등을 활용해 간결한 코드 작성 가능병렬 처리(Parallel Processing) 지원대량의 데이터를 더 빠르게 처리 가능 (parallelStream())불변(Immutable)한 데이터 처리기존 데이터를 변경하지 않고 새로운 스트림을 생성하여 처리2. 특징데이터를 한 방향으로 흘려보내는 방식으로 요소를 한 번씩 처리하며, 다시 사용할 수 없다.불변(Immutable) 기존 데이터를 변경하지 않고 새 값을 생성한.. [JAVA] 배열(Array) 1. 목적배열은 같은 타입의 여러 개의 데이터를 하나의 변수에 저장할 수 있는 자료구조다.Java에서는 배열을 사용하여 데이터를 효율적으로 관리하고 반복적인 연산을 쉽게 수행할 수 있다.배열을 사용하는 이유는 아래와 같다.여러 개의 값을 하나의 변수에 저장 가능반복문을 활용한 데이터 처리 가능모든 배열 요소의 합을 구하거나 정렬하는 작업이 쉬워짐고정된 크기의 연속적인 메모리 할당을 통해 빠른 데이터 접근 가능O(1) 시간 복잡도로 배열 요소 접근 가능 (arr[i] 사용)2. 특징고정된 크기 배열을 선언할 때 크기가 정해지며 변경 불가능같은 타입의 요소 저장 배열에 저장되는 모든 값은 같은 데이터 타입이어야 함인덱스를 통한 접근 배열의 요소는 0부터 시작하는 인덱스로 접근연속된 메모리 공간 할당 배열은 .. 이전 1 2 3 4 5 6 7 ··· 13 다음