자바(java) - Optional이란?
·
JAVA-기초/JAVA기본
Optional이란? Java8에서부터 지원하는 기능 java.util의 하위 클래스 NPE를 방지할 수 있도록 도와준다. null이 올 수 있는 값을 Wrapper클래스로 감싸준다. NPE란? NullPointerException 가장 많이 발생하는 예외중 하나 null 여부를 검사함으로써 예외가 터지는것을 방지할 수 있다. 검증하는 코드는 복잡하고 번거롭다. NPE 예시 코드 @Test public void test01() { String name = null; System.out.println(name.charAt(0)); // name은 null이기 때문에 NPE가 발생한다. if (name == null) { name = "userA"; //null을 체크해서 값이 없는 경우 새로운 값을 삽입하..
[Design Pattern] - Adapter 패턴
·
JAVA-기초/Design Pattern
아래 글은 제가 노션에서 작성한 글을 가져온것입니다. 아래 게시물을 참고하여 게시물을 작성할 경우 댓글 부탁드려요. Adapter 📌이미 제공된 코드를 그대로 사용할 수 없을 때, 필요한 형태로 변환후 이용하는 것 📌 이미 제공된 것과 필요한 것 사이의 차이를 메우는 디자인 📌Wrapper 패턴이라고 불리기도 한다. 📌두 종류가 잇다. 클래스에 의한 Adpater패턴(상속을 사용한 패턴 📌인스턴스에 의한 Adapter패턴(위임을 사용한 패턴) ⏬만들어 볼 클래스 📌Hello라는 주어진 문자열을 다음과 같이 표시하는 프로그램 (Hello), >>>Hello
[Java] 객체지향개념(OOP) 캡슐화와 정보은닉
·
JAVA-기초/JAVA기본
🟰Index 캡슐화 String 클래스의 캡슐화 정보 은닉(OOP의 핵심) 객체의 타입 은닉(업 캐스팅) 더욱 객체를 은닉(디자인 패턴) 객체의 필드 , 메서드 은닉(캡슐화) 구현 은닉(인터페이스) 캡슐화(Encapsulation) 내부를 가리는 캡슐화, 정보 은닉 개념중 하나 객체의 속성과 행위를 하나로 묶고, 외부로부터 내부를 감싸 숨겨 은닉한다. 외부의 잘못된 접근으로 값이 변하는 의도치 않는 동작을 방지하는 보효 효과도 가능하다. 대표적으로 **protected, default, private**의 접근제어자를 통해 구현 가능 유효하지 않은 숫자로 직접 변수를 변경하려는 시도를 내부에서 유효성 체크 로직을 통해 거를 수 있다. [ ] String클래스의 캡슐화String클래스는 final로 선언되..
[Java] Design Pattern - Iterator ,For 반복문의 차이
·
JAVA-기초/Design Pattern
🟰Iterator 패턴? 📌어떠한 객체의 집합, 값의 집합을 하나씩 지정해서 순서대로 처리하는 패턴 📌반복하는 의미를 갖고 있다. ⏬이해를 돕기 위한 예시 코드 ✅Book 객체(책장에 넣을 객체) package bookshelf; public class Book { private String name; public Book(String name) { this.name = name; } public String getName() { return name; } } ✅ Iterator 역할을 구현할 인터페이스 package bookshelf; import java.util.Iterator; /*** * Iterator 역할을 만들어내는 인터페이스 */ public interface Aggregate { pub..
객체지향 프로그래밍 5가지 설계 원칙, SOLID- 단일책임의 원칙
·
JAVA-기초/JAVA기본
해당 게시물을 이용한 2차 창작은 댓글 부탁드립니다. 🟰객체 지향프로그래밍을 하면서 지켜야 하는 5대 원칙중 하나 단일책임의 원칙부터 알아보자 ❗다음 원칙도 모두 포스팅 되어 있으니 천천히 읽어보세요 ☀️단일 책임의 원칙(Single Responsibility Principle) 하나의 모듈이 하나의 책임을 가져야한다. 다른 말로 모듈을 변경할 때에는 오직 한가지 목적을 위해 변경해야 한다는 것이다. 어떤 클래스가 하나의 책임 만을 갖고 있다면, 특정 행위자들로부터 변경을 확실한 목표를 갖고 수행할 수 있다. ⏬예시 코드 package solid; public class SingleResponsibilityPrinciple { private final String cook = "살아있는 가재"; priv..
자바(Java) - 쓰레드란? start와 run의차이
·
JAVA-기초/JAVA기본
Java는 단일 쓰레드 언어이기 때문에 한 번에 하나의 작업만 수행할 수 있습니다. 그러나 Java 비동기 처리를 위한 여러 가지 메커니즘을 제공합니다. 예를 들어, setTimeout 함수를 사용하여 지정된 시간이 지난 후에 함수를 실행할 수 있습니다. 이 경우에는 작업이 백그라운드에서 처리되고, 타이머가 만료되면 이벤트 루프가 해당 함수를 호출합니다. 또한 웹 워커(Web Workers)를 사용하여 백그라운드 스레드에서 실행되는 별도의 Java파일을 만들어 실행할 수 있습니다. 이 경우에는 워커 스레드에서 실행되는 코드와 메인 스레드에서 실행되는 코드가 분리되어 있습니다. 여기에 예시 코드가 있습니다: // setTimeout을 사용하여 비동기적으로 작업을 예약하는 예시 코드 console.log("..