분류 전체보기 73

메서드 시그니처란?

메서드 시그니처(Method signature)란 무엇일까? 메서드 시그니처(Method Signature)**는 프로그래밍에서 메서드를 식별하는 데 사용되는 메서드의 구성 요소를 의미합니다. 자바를 비롯한 여러 언어에서 메서드를 구분하는 핵심 요소는 메서드 이름과 매개변수 목록입니다.  자바에서 메서드 시그니처의 구성 요소메서드 이름: 메서드가 호출될 때 사용되는 이름.매개변수 목록: 메서드가 받는 입력 값들. 각 매개변수의 타입과 순서가 중요하며, 이름은 중요하지 않습니다. 시그니처에 포함되지 않는 요소반환 타입: 메서드 시그니처에는 포함되지 않습니다. 즉, 동일한 이름과 매개변수를 가지지만 반환 타입이 다른 메서드를 작성할 수 없습니다.접근 제어자(public, private, protected),..

카테고리 없음 2024.10.16

오버라이딩의 응용

오버 라이딩이란? 상속 받은 메소드를 재정의 하는 것입니다. 오버라이딩을 하면 코드의 재사용성과 확장성이 높아집니다. 오버 라이딩 예시 class Animal { public void makeSound() { System.out.println("Animal sound"); }}class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark"); }} 위 코드에서 Dog 클래스는 Animal 클래스를 상속받아 makeSound 메소드를 재정의했습니다. 이를 통해 Dog 클래스는 자신에게 맞는 소리를 낼 수 있습니다.   응용하기 class Parent { p..

Java 2024.10.16

테스트 코드 커버리지

테스트 커버리지 테스트 커버리지란 시스템 및 소프트웨어에 대해 충분히 테스트가 되었는지를 나타낸 정도이다. 수행한 테스트가 얼마나 테스트 대상을 커버 했는지 나타낸다.  코드 커버리지 기준 1. 라인 커버리지 (Line Coverage)코드가 한줄이 한번 이상 실행이 충족이 되어야 됩니다. public class Main { public static void foo(int a) { System.out.println("--function starts--"); // 1번 if (a > 0) { // 2번 a /= 2; // 3번 } System.out.println("--function ends--"); // 4번 } ..

Java 2024.10.16

자바 default 접근 제어자

사진과 같이 private과 protected 사이에 default 접근 제어자가 존재한다.  공통점:두 접근 제어자 모두 같은 패키지 내에서만 접근이 가능합니다.차이점:default: 같은 패키지 내에서만 접근이 가능합니다. 상속 관계여도 다른 패키지에서 접근할 수 없습니다.protected: 같은 패키지 내에서 접근이 가능한 것은 물론, 다른 패키지의 하위 클래스에서도 접근이 가능합니다. 즉, 상속받은 클래스가 다른 패키지에 있어도 protected로 선언된 멤버에 접근할 수 있습니다.  package com.example.animals;class Animal { // default 접근 제어자 메소드 void makeSound() { System.out.println("Ani..

Java 2024.10.16

컴파일 타임과 런타임의 차이

컴파일(Compile)이란?  개발자가 작성한 소스 코드를 프로세서가 이해할 수 있는 기계어로 번환하는 작업  런타임(Runtime)이란? 컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간을 말한다. 예를 들어, JavaScript가 Web Browser에서 실행된다면 런타임 환경은 Web Browser가 되고 JavaScript가 Node.js에서 동작한다면 런타임 환경은 Node.js이 된다.   컴파일 에러컴파일 에러는 프로그램이 컴파일링되는 과정에서 발생하는 에러로 일반적으로 컴파일 에러 발생시 컴파일러는 문제를 일으킨 소스코드라인을 지적해준다.Syntax ErrorType 체크 에러파일 참조 오류런타임 에러소스코드가 이미 실행가능한 프로그램으로 성공적으로 컴파일..

Java 2024.10.10

자바 변수 네이밍 컨벤션

1. 클래스(Class)PascalCase를 사용합니다. 즉, 각 단어의 첫 글자를 대문자로 작성합니다.예: CustomerService, OrderRepository, ProductController2. 메소드(Method)camelCase를 사용합니다. 메소드명은 동사로 시작하는 것이 권장되며, 첫 단어는 소문자로 시작하고 이후 단어의 첫 글자는 대문자로 씁니다.예: findCustomerById, saveOrder, calculateTotalAmount3. 변수(Variable)camelCase를 사용합니다. 변수명은 직관적이어야 하며, 무엇을 저장하는지 명확하게 알 수 있어야 합니다.예: customerName, orderAmount, itemList4. 상수(Constant)UPPER_SNAKE..

Java 2024.10.10

코딩 컨벤션

코딩 컨벤션 이란? 코딩 컨벤션은 코드 작성 시 일관성 있고 가독성 높은 코드를 작성하기 위한 일종의 규칙 또는 스타일 가이드입니다. 이는 개발자들이 협업할 때 코드의 가독성을 높이고, 유지보수 비용을 줄이기 위해 중요한 역할을 합니다   코딩 컨벤션은 전체 코드 작성 시 지켜야 하는 일반적인 스타일 가이드입니다.이는 들여쓰기 방식, 주석 작성 규칙, 코드 블록의 구조, 세미콜론 사용 여부, 괄호 배치와 같은 전반적인 코드 스타일을 포함합니다.언어에 따라 다르며, 협업에서 코드의 일관성과 가독성을 유지하기 위해 사용됩니다.  주요 컨벤션 요소 :1. 네이밍 규칙  camelCase: 변수나 함수명에 주로 사용되며, 첫 단어는 소문자, 이후 단어는 대문자로 시작합니다. 예: myVariable.Pascal..

Java 2024.10.10

[java] Integer 캐싱

결론부터 말씀드리면 Integer 에 캐싱되는건 min 값이 -128 이고 max값은 127이다.     아래와 같이 테스트를 하였다. 결과는 다음과 같다.    127번 까진 각각 맞지만, 128번부터 인스턴스의 주소가 변경이 되어서 false가 나온다. 그에 따른 동시성 이슈때문에 찾아봤지만, 불변이기 때문에 동시성 이슈는 발생하지 않는다.  참조 : https://www.baeldung.com/java-compare-long-values

Java 2024.10.06

[java] 자바에서 스택과 힙의 차이

스택이란?- Stack 에서 heap 영역에 생성된 Object 타입의 데이터들의 참조를 위한 값들이 할당된다.- 원시 타입(primitive types)( byte, short, int, long, double, float, boolean, char)의 경우 실제 데이터 값이 할당된다.- 해당 method가 호출 되면 메모리에 할당되고 method가 종료되면 메모리가 해제된다.  Main 메서드 호출이 끝나고 Stack은 후입 선출 구조이기 때문에 아래와 같이 처리된다. 후입 선출 : 가장 최근에 요청된 것을 가장 먼저 처리, 가장 처음에 들어온 요청은 최후에 처리  스택 상태: 힙 이란? - Heap 영역에는 대체로 생명주기가 긴 데이터가 저장된다.- 모든 Object type(String, Arra..

Java 2024.10.06