Language/Java

·Language/Java
2024.11.28 - [Knowledge/자료구조] - [자료구조] 스택(stack)과 자바를 통한 구현(배열, ArrayList) [자료구조] 스택(stack)과 자바를 통한 구현(배열, ArrayList)스택 스택(stack)은 먼저 넣은 데이터가 나중에 나오는 자료구조이다. 데이터를 넣는 작업은 푸시(push) , 꺼내는 작업은 팝(pop) 이라고 한다. 스택에서 데이터를 관리할 때, 가장 최근에 추가된jh7722.tistory.com 스택의 대한 설명은 위 포스팅을 참고 바란다. 스택의 추상자료형푸시(push), 팝(pop), 가득 찼는지 확인(isFull), 비었는지 확인(isEmpty)과 같은 연산과 최근에 삽인한 데이터 위치를 확인할 톱(top)도 있다. 구분정의설명연산boolean isF..
·Language/Java
Math 클래스java.lang 패키지에 포함되어 있는 클래스이다. 수학연산에 관련된 다양한 기능을 제공한다.  Math의 다양한 함수들abs() : 절대값 구하기int a = -10;int absValue = Math.abs(a);System.out.println("Absolute value: " + absValue); // Output: Absolute value: 10max() : 최대값 구하기int x = 5;int y = 10;int maxValue = Math.max(x, y);System.out.println("Max value: " + maxValue); // Output: Max value: 10min() : 최소값 구하기int minValue = Math.min(x, y);System...
·Language/Java
Java의 startsWith와 endsWith 메서드는 문자열이 특정 문자열로 시작하거나 끝나는지 확인할 때 유용한 메서드이다. startsWithboolean startsWith(String prefix)문자열이 지정된 파라미터인 prefix로 시작하는지 여부를 확인한다.단 공백도 취급하기 때문에 공백이 있을 경우 적절한 처리 후 사용해야 한다.  예시String str = "Hello, World!";boolean result1 = str.startsWith("Hello"); // true 반환boolean result2 = str.startsWith("He"); // true 반환boolean result3 = str.startsWith("H"); // true 반환boolean result4 =..
·Language/Java
코딩테스트를 풀다보면 배열을 리스트 형태로 변환할때가 많은데 아래와 같이 사용하였다.List aaList = Arrays.asList("a", "b", "c", "d", "e");aaList.remove(0);당연히 List를 반환하므로 remove(), add() 등 ArrayList의 메소드를 사용가능 할 줄 알았지만 단순 선언만으론 해당 기능들을 사용할 수 없다.해당 이미지는 asList()에 대한 설명이다. `Arrays.asList` 를 사용하여 생성된 리스트는 고정 크기이다. 즉 리스트의 크기를 변경(추가 또는 제거)할 수 없다. 리스트의 요소의 변경만 가능한 배열의 특성을 가지고 있다고 생각하면 된다.  그러기 때문에 다음과 같은 방법을 이용해야 한다. import java.util.Arra..
·Language/Java
비트 연산자는 일반 코드를 작성할 때 사용한 적이 없지만 코딩테스트에서는 심심치 않게 출제되므로 정리할 필요를 느낀다. 비트 연산자는 정수타입의 데이터를 2진수로 계산하는 연산자이다. (피연산자로 실수는 허용하지 않는다.) 2진수는 말 그대로 1이나 0으로 표현되는 것을 의미하며, 여기서 bit는 1이나 0을 나타낸다.  2진법(2진수)컴퓨터에서 데이터를 표현하기 위해 사용된다. 2를 기반으로 1과 0으로 표현된다.10진수0123456789102진수011011100101110111100010011010 2의 보수2의 제곱수에서 빼서 얻은 이진수를 의미하며, 컴퓨터가 음수를 저장하기 위해 사용되는 방식 중 하나이다.기본적으로 비트는 2의 제곱수로 표현이 된다. 예를 들어 4비트의 2진수를 2^4(=16) ..
·Language/Java
람다가 등장한 배경람다 표현식이 등장한 배경은 자바 8의 주요 개선 사항 중 하나이다. 이전 자바에서는 코드를 간결하게 표현하기 위해선 익명 클래스를 활용하였다. 익명클래스는 인터페이스나 추상 클래스의 구현을 정의하는 데에는 유용했지만, 코드가 복잡해지고 가독성이 떨어지는 문제가 발생되었다. 자바 8에서는 이러한 문제를 해결하기 위해 람다 표현식을 도입하였다. 람다 표현식은 익명 함수를 정의하는 간결한 방법으로, 함수형 프로그래밍 스타일을 지원하고 코드를 더 간결하게 만들어준다. 람다 표현식은 자바 컬렉션과 스트림 API와 밀접하게 관련되어 있으며, 컬렉션을 데이터를 저장하고 조작하는 데 사용되는 자바의 핵심 요소 중 하나이다. 자바 8에서는 이 컬렉션을 효과적으로 다루기 위해 스트림 API 도입하였고,..
·Language/Java
어노테이션의 역할스프링 같은 프레임워크를 사용하면 아무래도 어노테이션의 역할은 더 광범히 해진다. 그럼 일단 Java 코드로 돌아와 어노테이션의 역할을 먼저 확인해 보자.우선, 어노테이션은 기본적으로 아래 세 가지 기능을 제공한다.컴파일러에서 코드 작성 문법 에러를 체크빌드도구에서의 사용 (코드 생성)실행 시(런타임 시) 특정 기능을 실행이것에 대한 예시로 @Override 어노테이션을 확인해 보자.  @Override 어노테이션은 직관적으로 자바의 오버라이딩을 표현해 주는 것을 알 수가 있다. 자바에 대한 오버라이딩을 배우면 알 수 있듯이 저 어노테이션이 없다고 하더라도 해당 기능을 쓰는 데는 문제가 발생하지 않는다. class Parent { public void hello(String name..
·Language/Java
객체지향을 공부하다 보면 나오는 개념 중 하나가 다형성이다. 그 다형성을 설명하기 위해 나오는 키워드가 Overriding과 Overloading이다. 물론 다형성은 상위 클래스와 하위 클래스 사이에서도 이야기할 수 있고, 인터페이스와 구현 클래스 사이에서도 이야기할 수 있지만 가장 기본은 오버라이딩과 오버로딩이다. 관점에 따라 오버로딩은 다형성인지에 대해서는 이견이 존재한다. 하지만 객체지향엔 정답이 없으니 상관없다. 해당 키워드들을 비교하는 것은 자바 객체지향에 있어 클래식한 질문 중 하나이다. 왜냐하면 두 용어는 이름은 비슷하지만 전혀 다른 의미로 사용되기 때문이다. 오버라이딩과 오버로딩? - 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의 - 같은 메서드 이름, 다른 인자 목..
·Language/Java
코딩테스트를 풀다 보면 유용하게 써야 되는 방법 중 하나이다. 자바에서 'String[]' 배열과 'LIst' 사이 변환은 매우 간단하나 까먹을 때가 있어 문서화시켜 정리하자. String[] 배열을 List으로 변환하기 Array 유틸리티 클래스의 'asList'메서드를 사용하여 배열을 리스트로 변환할 수 있다. import java.util.Arrays; import java.util.List; public class ArrayToListExample { public static void main(String[] args) { String[] stringArray = {"a", "b", "c"}; List stringList = Arrays.asList(stringArray); System.out.p..
·Language/Java
이 코드에서 @Override가 있으면 문제가 없을까? class Parent { public void hello(String name) { System.out.println("안녕하세요, 저는 " + name + "입니다."); } } class Child extends Parent{ // @Override가 있고 없고 차이가 없을까? public void hello() { System.out.println("안녕!"); } } 위 코드는 @Override 어노테이션을 사용하지 않으면 동작이 되고, 사용하면 예외가 발생한다. 예외가 발생한다는 것은 오버라이딩이 아니라는 의미이다. 오버라이딩의 조건은 다음과 같다. 부모 클래스의 메서드와 메서드 이름이 동일해야 한다. 매개변수의 타입, 개수, 순서가 일치..
JH_DEV77
'Language/Java' 카테고리의 글 목록