본문 바로가기

DEV_BACKEND/Java

(18)
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 7일차 헷갈릴수 있는 코드 정리, 클래스 내부 필드와 문자열 처리 방식의 차이점, String 헷갈릴수 있는 코드 정리.package day07;public class Pen { protected String color = "빨강"; public void write(){ System.out.println("Pen이 씁니다."); } public void write(String msg){ } public void write(String msg, int count){ } @Override public String toString() { return "나는 펜이예요."; } public void print(){ System.out.println("a"); System.out.println("b"..
[상속]필드와 메서드의 차이 필드와 메서드의 차이필드(Field): 클래스의 속성(변수). 데이터 값을 저장함.메서드(Method): 클래스의 동작(행동). 특정 작업을 수행함.왜 차이가 생기나?필드 접근은 컴파일 시점에 결정됨참조 변수의 타입(왼쪽에 선언된 타입)에 따라 필드를 결정함.필드에는 오버라이딩이 없고, 숨김(Hiding)만 있음.예: Car car = new Bus();에서 car.name은 Car 클래스의 name 필드를 참조.메서드 호출은 런타임 시점에 결정됨실제로 참조하는 객체의 타입에 따라 호출할 메서드가 결정됨.메서드는 오버라이딩이 가능하며, 부모의 메서드를 자식이 재정의할 수 있음.예: car.운전하다();는 Bus 객체의 운전하다() 메서드를 호출.필드와 메서드의 동작 차이 요약 필드(Field)메서드(Me..
[TIL] Java 6일차 생성자, 상속, 오버라이딩과 오버로딩 생성자클래스의 객체가 생성될 때 호출되는 특별한 메서드로, 객체를 초기화하는 데 사용. 생성자는 클래스 이름과 동일해야 하며, 반환 타입이 없음(예: void조차 쓰지 않음). 특징 자동 호출:객체가 생성될 때 자동으로 호출됨.오버로딩 가능:생성자도 매개변수의 개수나 타입을 달리하여 여러 개 선언 가능(오버로딩).기본 생성자:생성자를 하나도 선언하지 않으면, 컴파일러가 매개변수가 없는 기본 생성자를 자동으로 생성함. 역할 객체 초기화:객체 생성 시 필드를 초기화하거나, 필요한 작업을 수행.코드 간결화:초기화 작업을 한 번에 처리하여, 이후 작업에서 간결한 코드 유지. 생성자 체이닝 (생성자가 다른 생성자를 호출할 수 있다) : 객체 초기화를 단순화하고 중복을 줄이는 데 매우 유용한 패턴. 생성..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 5일차 메서드의 선언, 캡상추다, 그리고 패키지 1. 메서드의 선언 정리new 연산자를 사용할 때마다 메모리에 인스턴스가 생성된다.인스턴스는 더 이상 참조되는 것이 없을 때, 나중에(언제 될지는 모른다. 보통 메모리가 부족할 때) 가비지 컬렉션(Garbage Collection) 된다.static한 필드는 클래스가 로딩될 때 딱 한번 메모리에 올라가고 초기화 된다.인스턴스 메소드(static이 안붙은 메소드)는 인스턴스를 생성하고나서 레퍼런스 변수를 이용해 사용할 수 있다.클래스 메소드는 클래스명. 메소드명() 으로 사용가능하다.메소드 안에 선언된 변수들은 메소드가 실행될 때 메모리에 생성되었다가, 메소드가 종료될 때 사라진다.   객체지향 프로그래밍(OOP) : 캡상추다(캡슐화, 상속, 추상화, 다형성). - 좋은 객체는 응집도는 높고 결합도(Cou..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 4일차 배열의 복사, 오버로딩 오버라이딩, 제한없는 Argument, 그리고 객체 지향(클래스) 배열의 복사배열은 주소값을 복사하므로 copy 변수가 original의 값을 복사하는게 아니라 주소를 복사해와서원본 값이 변경되면 복사된값도 변경됨(복사당시에는 1,2,3이었지만 변경후 값인 99,2,3을 가져오게 됨) 이러한 문제를 해결하려면 깊은 복사를 사용해야 함.메서드 오버로딩 (Method Overloading)같은 클래스에서 이름이 같은 메서드를 여러 개 정의하는 것. 메서드 오버라이딩(Method Overriding)부모 클래스에 정의된 메서드를 자식 클래스에서 재정의하는 것. 오버로딩과 오버라이딩의 차이 특징 오버로딩 (Overloading) 오버라이딩 (Overriding) 목적같은 이름의 메서드를 다양한 방식으로 호출부모 메서드를 자식 클래스에서 재정의클래스 관계같은 클래스부모-자식..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 3일차 Java의 배열, for-each문, 그리고 Arrays api 배열같은 타입의 데이터를 연속적으로 저장할 수 있는 자료구조. 배열은 고정된 크기를 가지며, 각 요소는 인덱스를 통해 접근할 수 있음.Java에서 배열과 배열의 값들은 각각 다른 메모리 영역에 저장됨. 1. 배열의 특징힙 메모리에 저장:배열은 객체로 힙(Heap) 메모리에 저장되며, 참조를 통해 접근함.(자바 메모리 구조의 다른 부분인 스택영역에는 메서드 호출 시 생성되는 지역 변수, 참조 변수 등이 저장됨. 배열 이름(str[])도 참조 변수로 스택에 저장됨.)2. 배열 선언과 초기화배열 선언배열을 선언하려면 **데이터 타입 뒤에 대괄호([])**를 사용함:int[] numbers; // 정수형 배열 선언 String[] names; // 문자열 배열 선언 배열 생성배열을 생성하려면 new 키워드와 크..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 2일차 Java의 타입과 연산자, 반복문 그리고 조건문 Java에서 타입은 변수, 객체, 메서드 등의 데이터 종류와 크기를 정의. Java는 강타입 언어(Strongly Typed Language)이기 때문에 모든 변수와 표현식은 명확한 타입을 가져야 함.강타입 언어(Strongly Typed Language)란 변수나 값의 데이터 타입이 엄격하게 정의되고, 타입 간의 변환이 명확히 규제되는 언어를 의미.강타입 언어와 약타입 언어 비교특징강타입 언어약타입 언어타입 엄격성타입 간 변환이 엄격타입 변환이 자유로움타입 검사 시점주로 컴파일 단계에서 검사실행 단계에서 타입이 결정되거나 변환됨코드 안전성타입 오류를 컴파일러가 감지타입 오류가 실행 중 발생 가능예시Java, C#, Swift, KotlinPython, JavaScript, PHP, Ruby Java 타..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 1일차 main 메서드, JVM, 컴파일 방식, 변수, 그리고 반복문 오랜만에 다시 보는 main 메서드의 구조분석public class Hello{ public static void main(String[] args){ System.out.println("Hello"); }} main 메서드: Java 프로그램의 진입점(Entry Point)으로, 프로그램 실행 시 가장 먼저 호출되는 메서드. JVM이 Hello 클래스를 로딩하고 main 메서드를 호출함. String[] args : 명령줄 인수를 배열 형태로 받는 매개변수, 그래서 입력한값이 args에 저장되고 코드에서 args 배열을 출력하면 그대로 나오게되는 구조이다. System: Java의 표준 입력 및 출력, 유틸리티 기능 등을 제공하는 클래스. out : System 클래스의 정적(..