BE/Java 53

[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

[Java] abstract와 interface

`abstract`와 `interface`는 추상화를 구현하는 두가지 주요 도구이다1. 추상 클래스 (`abstract`)개념추상 클래스는 완전히 구현되지 않은 클래스 이다일부 메서드는 구현을 가지고, 일부는 구현되지 않을 수 있다직접 객체 생성이 불가능하며 상속받을 하위 클래스가 구현해야 합니다특징클래스와 메서드에 `abstract` 키워드 사용구현된 메서드 포함 가능함 (일반 메서드와 추상 메서드 모두 가질수 있다)상속을 통한 확장 (다른 클래스가 이를 상속받아야 하며 추상메서드를 반드시 구현해야함)인스턴스 생성 불가 (직접 객체를 생성할 수 없음)변수와 메서드의 다양한 유형 허용 (인스턴스 변수, 정적 변수, 정적 메서드 등을 포함할 수 있다)클래스 내부의 변수나 메서드중에 하나라도 abstract..

BE/Java 2024.11.30

[Java] 접근 제어자

접근 제어자의 종류접근 제어자같은 클래스같은 패키지다른 패키지(서브클래스,상속)다른 패키지`public`OOOO`protected`OOOX`(default)`OOXX`private`OXXX1. `public`어디서나 접근 가능제한이 없는 가장 개방적인 접근 제어자사용 위치 : 클래스, 메서드, 변수, 생성자특징 : 외부에서 자유롭게 사용 가능한 요소를 선언할때 사용2. `protected`같은 패키지와 다른 패키지의 서브클래스(상속)에서 접근 가능같은 패키지에 있는 클래스에서는 접근 가능하지만 다른패키지에서는 서브클래스를 통해서만 접근 가능하다package example;public class Parent { protected String message = "Hello, Subclass!"; ..

BE/Java 2024.11.30