Java 기초 문법 12

Java ) Lombok ) 공식 문서를 통해 알아보는 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor + 사용시 주의사항

Spring과 Lombok을 사용한다면 꼭 알고 있어야 하는 생성자 관련 어노테이션들이다. 아래 Lombok 공식 문서와 블로그를 참고로 글을 작성하였다. - @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor - Lombok 사용상 주의점(Pitfall) Overview @NoArgsConsructor, @RequiredArgsConstructor, @AllArgsConstructor, 이 3형제는 이름에서부터 어떤 역할을 하는 어노테이션들인지 대략 짐작이 간다. 일단 3형제 뒤에 붙은 Constructor라는 단어로부터, 이 3형제는 프로그래머 대신 생성자를 만들어주는 역할을 한다는 것을 유추할 수 있다. 그러니까, 객체 내부에 선언되..

Java 기초 문법 2023.07.20

Java ) 자바 HashMap 사용법 & 예제 총정리

HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조입니다. 여기서 키와 값은 모두 객체입니다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보입니다. 위 그림과 같이 HashMap은 내부에 '키'와 '값'을 저장하는 자료 구조를 가지고 있습니다. HashMap은 해시 함수..

Java 기초 문법 2023.06.11

Java ) List 의 기본 메서드 정리

리스트 선언 ArrayList 이름 = new ArrayList(); 리스트 원소 조회 이름.get(인덱스번호); 리스트에 원소 추가 이름.add(); 리스트 특정 인덱스의 원소 변경 이름.set(인덱스번호,바꾸고싶은값); 리스트 특정 인덱스의 원소 삭제 이름.remoeve(인덱스번호); 리스트 비우기 이름.clear(); public class Col1 { public static void main(String[] args) { // List // 순서가 있는 데이터의 집합 => Array 와 비슷 // 처음에 길이를 몰라도 만들 수 있음 // 1) Array -> 정적배열 // 2) List(ArrayList) -> 동적배열(크기가 가변적으로 늘어난다) // - 생성 시점에 작은 연속된 공간을 요청해..

Java 기초 문법 2023.06.01

Java ) 래퍼 클래스(Wrapper Class)란 무엇인가? (박싱, 언박싱)

래퍼 클래스란(Wrapper Class)? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다. 이럴 때에 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다. 자바는 모든 기본타입(primitive type)은 값을 갖는 객체를 생성할 수 있습니다. 이런 객체를 포장 객체라고도 하는데 그 이유는 기본 타입의 값을 내부에..

Java 기초 문법 2023.06.01

Java ) List 정리

List ⛓️ 💁‍♂️ 순서가 있는 데이터의 집합 (데이터 중복 허용) - 배열과 비슷 ArrayList 📌 ArrayList 는 배열(Array)처럼 일렬로 데이터를 저장하고 조회하여 순번값(인덱스)로 값을 하나씩 조회할 수 있습니다. 특징 배열(Array)처럼 크기가 정해져 있지않고 필요할때마다 크기가 점점 더 늘어납니다.먼저, Array처럼 크기를 고정하여 생성하는 것을 정적배열 이라면 Array은 메모리에 연속된 공간을 요청한 사이즈 만큼 받아서 실제값을 저장하는 기본형 변수로 저장하기 때문에 정적배열 입니다. ArrayList 는 생성시점에 작은 연속된 공간을 요청해서 참조형 변수들을 담아놓고, 값이 추가될때 더 큰 공간이 필요하면 더큰 공간을 받아서 저장하기 때문에 동적배열 입니다. 따라서, ..

Java 기초 문법 2023.06.01

Java ) 인터페이스(interface) 총 정리

서론 Spring 공부하던 중 interface부분에 대해 이해가 부족한 것 같아 자세하게 한번 정리해 보려고 합니다. 목차 1. 인터페이스란? 2. 인터페이스의 작성 방법 3. 인터페이스의 상속 4. 인터페이스의 구현 5. 인터페이스를 이용한 다형성 6. 인터페이스의 장점 1. 인터페이스란? 인터페이스는 일종의 추상 클래스입니다. 인터페이스는 추상 클래스처럼 추상 메서드를 갖지만 추상 클래스보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없습니다. 오직 "추상 메서드"와 "상수"만을 멤버로 가질 수 있습니다. 추상 클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설..

Java 기초 문법 2023.06.01

Java ) static 과 instance의 차이

서론 static과 instance의 차이에 대해서 한번 정리하여 짚고 넘어 갈려고 합니다. 목차 1. 클래스(static) 변수와 인스턴스 변수의 차이 2. 클래스(static) 메서드와 인스턴스 메서드 차이 3. 클래스(static) 멤버와 인스턴스 멤버 간의 참조와 호출 1. 클래스(static) 변수와 인스턴스 변수의 차이 멤버 변수 중 static이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변수입니다. 아래 코드를 보며 정리해보겠습니다. public class Test { int instanceValue; // 인스턴스 변수 static int classValue; // 클래스 변수 void method() { int stackValue = 0; // 지역 변수 } } 위 코드에는 3개..

Java 기초 문법 2023.06.01

Java ) java 2차원 배열 조회, 최대값과 최소값 구하기

2차원 배열 조회 // 가변 2차원 배열 조회 int[][] array = { {10, 20, 30}, {10, 20, 30, 40}, {10, 20} }; for (int i = 0; i < array.length; i++) { // 1차원 길이 for (int j = 0; j < array[i].length; j++) { // 2차원 길이 System.out.println(array[i][j]); // 2중 반복문으로 i, j 인덱스 순회 } } // 출력 10 20 30 10 20 30 40 10 20 최대값 // 최대값 구하기 int[] arr = { 3, 2, 1, 5, 1 }; // 최대값 초기값 세팅 int max = arr[0]; // 최대값 구하기 for (int num : arr) { ..

Java 기초 문법 2023.05.24

Java ) java String 배열

1.선언, 생성, 초기화 배열 중에서도 가장 많이 사용하게될, 문자열 배열인, String 배열 선언하고 생성하는 방법은 기존 배열과 동일 String 배열 선언과 생성 // String 배열을 아래와 같이 선언과 생성할 수 있습니다. String[] stringArray = new String[3]; String 배열의 초기화 // 선언 후 하나씩 초기화 할 수 있습니다. String[] stringArray = new String[3]; stringArray[0] = "val1"; stringArray[1] = "val2"; stringArray[2] = "val3"; // 선언과 동시에 초기화 할 수 있습니다. String[] stringArray1 = new String[]{"val1", "val..

Java 기초 문법 2023.05.24

Java ) java 연산자

Chapter 3 : 🧮 계산 하기 (연산자) 📌 Java 프로그래밍 에서는 변수, 상수 들을 계산하기 위해서 연산자를 사용 어떤 연산자들이 있고, 어떻게 연산을 하는지 보기 연산자와 피연산자에 대한 이해 연산자 : 덧셈, 뺄셈 처럼 계산할 기호 ➕ 피연산자 : 연산자로 인해 계산되는 숫자 🔢 [코드 스니펫] 계산 코드 int x = 5; int y = 10; int z = x + y; // 5(피연산자) +(연산자) 10(피연산자) 계산 System.out.println(z); // 출력값 : 15 계산할때 계산의 대상이 되는것이 피연산자 이며, 계산의 목적이 되는것이 연산자 연산자 종류 연산자는 사칙연산 외에도 여러가지 연산자가 있습니다. 산술 연산자 + - * / % > 사칙 연산과 비트연산 비교 ..

Java 기초 문법 2023.05.22