java 95

[Java] Optional

값을 포함하거나 포함하지 않을수 있는 객체`null`값을 직접 반환하는 대신 `Optional`객체를 반환하여 값의 유무를 명시적으로 처리하도록 함 1. Optional 생성1.1. Optional.of()`null`이 아닌 값을 가진 객체를 생성`null`값을 전달하면 NullPointerException이 발생Optional opt = Optional.of("Hello"); 1.2. Optional.ofNullable()`null`값을 허용하며, 값이 `null`이면 비어있는 객체를 생성Optional opt = Optional.ofNullable(null);// opt 는 Optional.empty(); 1.3. Optional.empty()값이 비어있는 객체 생성 2. 메서드2.1. isPrese..

BE/Java 2024.12.06

[Java] List

요소들은 인덱스로 관리된다 (0부터 시작)삽입 순서를 유지한다중복된 값을 허용한다주요 메서드메서드설명`add(E e)`요소를 리스트 끝에 추가`add(int index, E e)`특정 위치에 요소 추가`get(int index)`인덱스에 있는 요소 반환`set(int index, E e)`특정 인덱스의 요소를 변경`remove(int index)`특정 인덱스의 요소 삭제`size()`리스트의 크기 반환`isEmpty()`리스트가 비어있는지 확인ArrayList내부적으로 배열을 사용하여 데이터를 관리하는 `List`의 구현체초기 크기를 정하지 않아도 필요에 따라 자동으로 크기가 증가읽기/검색이 빈번한 작업에 적합함public class Main { public static void main(Strin..

BE/Java 2024.12.05

[Java] 컬렉션

컬렉션은 데이터를 저장하고 관리하기 위한 데이터 구조 클래스와 인터페이스의 집합.1. 기본 개념데이터 그룹(객체들)을 저장하고 조작하는데 사용되는 프레임워크배열처럼 데이터를 저장하지만 크기가 동적으로 조정되고 다양한 데이터 구조를 제공한다2. 구조2.1. 순서가 있는 List요소들이 순서대로 저장, 중복을 허용인덱스를 사용하여 요소를 관리대표 클래스ArrayList : 배열 기반으로 구현, 읽기 성능이 우수LinkedList : 연결 리스트 기반으로 구현, 삽입/삭제 성능이 우수Vector : ArrayList와 비슷하지만 동기화가 지원됨2.2. 중복이 없는 Set중복 허용 x순서가 중요하지 않은 데이터 저장에 사용됨대표 클래스HashSet : 요소들을 해시기반으로 저장, 순서가 없음LinkedHashS..

BE/Java 2024.12.04

[Java] 래퍼 클래스

List, Map 등 에서는 객체만 저장할수 있기 때문에 기본자료형을 객체로 변환하여 사용한다기본자료형래퍼 클래스`byte``Byte``short``Short``int``Integer``long``Long``float``Float``double``Double``char``Character``boolean``Boolean` 래퍼 클래스를 사용하면 박싱, 언박싱을 통해 기본자료형과 객체간 변환이 가능해진다박싱, 언박싱박싱기본자료형을 객체(래퍼클래스)로 변환하는 과정int num = 10;// 수동 박싱Integer boxedNum = Integer.valueOf(num);// 자동 박싱Integer autoBoxedNum = num;언박싱객체(래퍼클래스)를 기본자료형으로 변환하는 과정Integer boxed..

BE/Java 2024.12.03

[Java] break, continue, return

1. `break`문반복문이나 `switch`문을 즉시 종료한다반복문에서의 `break`for (int i = 1; i `switch`문에서의 `break`int day = 2;switch (day) { case 1: System.out.println("월요일"); break; case 2: System.out.println("화요일"); break; case 3: System.out.println("수요일"); break; default: System.out.println("주말");}// 화요일레이블과 함께 `break`레이블을 사용하여 중첩된 반복문에서 특정 반복문을 종료할수 있다outer:..

BE/Java 2024.12.02

[Java] 연산자

1. 산술 연산자연산자기능예제결과`+`덧셈`5 + 3``8``-`뺄셈`5 - 3``2``*`곱셈`5 * 3``15``/`나눗셈`5 / 2``2`(정수 나눗셈)`%`나머지`5 % 2``1`2. 비교 연산자연산자기능예제결과`==`값이 같은지 비교`5 == 5``true``!=`값이 다른지 비교`5 != 3``true``>`왼쪽이 오른쪽보다 큰지 비교`5 > 3``true``왼쪽이 오른쪽보다 작은지 비교`5 `false``>=`크거나 같은지`5 >= 5``true``크거나 작은지`5 `false`3. 논리 연산자연산자기능예제결과`&&`논리 AND (둘다 만족)`true && false``false``||`논리 OR (둘중 하나)`true || false``true``!`논리 NOT(부정)`!true``fals..

BE/Java 2024.12.01

[Java] 반복문

1. `for`문반복 횟수가 명확할때 사용for (초기화; 조건; 증감) { // 반복실행할 코드}초기화 : 반복 변수를 초기화한다 (`int i = 0`)조건 : 조건이 참이면 블럭실행, 거짓이면 종료 (`i 증감 : 반복이 끝날때마다 변수값을 변경 (`i++`)2. 향상된 `for`문for (타입변수 : 배열이나 컬렉션) { // 각 요소에 대해 실행할 코드} exampleint[] numbers = {1,2,3,4,5};for (int num : numbers) { System.out.println("Number: " + num);}/**/* 결과/* Number: 1/* Number: 2/* Number: 3/* Number: 4/* Number: 5 3. `while`문조건이 참..

BE/Java 2024.12.01

[Java] 조건문

1.`if` 문if (조건) { // 조건이 참일때 실행}if (조건) { // 조건이 참일때 실행} else { // 조건이 거짓일때 실행}if (조건1) { // 조건1이 참일때 실행} else if (조건2) { // 조건2가 참일때 실행} else { // 모든 조건이 거짓일때 실행} 2. `switch`문하나의 값을 여러 경우와 비교해서 실행switch (값) { case 값1 : // 값이 값1일때 실행 break; case 값2 : // 값이 값2일때 실행 break; default : //모든 케이스에 해당하지 않을때 실행} exampleint day = 3;switch (day) { case 1: ..

BE/Java 2024.12.01

[Java] 생성자와 오버로딩, getter setter

1. 생성자 (Constructor)정의생성자는 클래스가 객체로 생성될때 호출되는 특별한 메서드클래스의 이름과 동일, 반환타입이 없음(`void`도 명시하지 않음)역할객체 초기화를 주로 담당기본 생성자와 사용자 정의 생성자가 있다기본 생성자생성자를 작성하지 않으면 컴파일러가 자동으로 추가한다매개변수가 없고 아무 작업도 하지 않는다class Person { String name; int age;}public class Main { public static void main(String[] args) { Person p = new Person(); // 기본 생성자가 호출됨 System.out.println(p.name); // null System...

BE/Java 2024.12.01

[Java] 캐스팅 (형 변환)

1. 기본 자료형 캐스팅자동 캐스팅작은 타입에서 큰 타입으로 자동 변환데이터 손실이 없어서 안전int a = 10;double b = a; // int 가 double 로 자동 변환System.out.println(b); // 10.0강제 캐스팅큰 타입을 작은 타입으로 변환할때는 데이터 손실 가능성이 있어서 명시적으로 처리해야 한다`(타입)`을 앞에 써서 변환double a = 10.5;int b = (int) a; // double을 int로 강제 변환System.out.println(b) // 10 (소수점은 잘림) 2. 참조형(객체) 캐스팅업캐스팅하위 클래스 객체를 상위 클래스 타입으로 변환자동으로 수행되며 데이터 손실은 없지만 상위 클래스의 멤버만 접근 가능class Animal { void..

BE/Java 2024.12.01