Java

· Java
💡Proxy Pattern 대리인 이라는 뜻으로, 뭔가를 대신해서 처리하는 것 Proxy Class를 통해 대신 전달하는 형태로 설계되며, 실제 클라이언트는 Proxy로 부터 결과를 받음. Cache의 기능으로도 활용이 가능 SOLID중에서 개방폐쇄원칙(OCP)과 의존 역전 원칙(DIP)를 따른다. 개방 폐쇄의 원칙(OCP)이란 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 원칙을 말한다 의존 역전 원칙(DIP)란 객체는 저수준 모듈보다 고수준 모듈에 의존해야한다. 고수준 모듈 : 인터페이스와 같은 객체의 형태나 추상적 개념 저수준 모듈 : 구현된 객체 고/저수준 모델의 정의는 위와 같다. 위 정의를 의존성 역전 원칙에 대입하면, 객체는 객체보다 인터페이스에 의존해야한다..
· Java
💡 Adpater pattern 실생활에서는 110v 를 220v로 변경해주거나, 그 반대로 해주는 돼지코라고 불리는 변환기를 예로 들면 이해하기 쉽다. 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 한다. SOLID 중에서 개방폐쇄 원칙 (OCP)를 따른다. 개방 폐쇄의 원칙(OCP)이란 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 원칙을 말한다. 🧑🏻‍💻 220 볼트 짜리를 110 볼트로 변환하는 변환기 Adapter를 만들어보자. 110v 인터페이스 public interface Electronic110V { void powerOn(); } 220v 인터페이스 public interface Electronic220V { void conne..
· Java
💡Singleton pattern 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용한다. 주로 사용하는 곳 서로 자원을 공유할 때 실물 세계에선 프린터에 해당 프로그래밍에선 TCP Socket 통신에서 서버와 연결된 connect 객체에 주로 사용한다. 💡 싱글톤 패턴을 사용한 경우 👩🏻‍💻 Code SocketClient 의 인스턴스를 2개 생성했을 때, 생성된 2개의 객체가 같은 지 비교 SocketClient public class SocketClient { private static SocketClient socketClient = null; private SocketClient(){ //디폴트생성자인경우 } public static SocketClient getInstance(){ if(s..
· Java
💡 Queue의 특징 맨 앞(front)에서 자료를 꺼내거나 삭제하고, 맨 뒤(rear)에서 자료를 추가 함. First in First Out(FIFO : 선입선출) 구조 일상 생활에서 일렬로 줄 서 있는 모양 순차적으로 입력된 자료를 순서대로 처리하는데 많이 사용되는 자료구조 콜센터에 들어온 문의 전화, 메세지 큐 등에 활용됨 jdk 클래스 : ArrayList 🧑🏻‍💻 연결 리스트를 활용하여 Queue 구현하기 MyLinkedList.java https://muscleking3426.tistory.com/73 [Java] 연결 리스트(LinkedList) 💡 LinkedList 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인..
· Java
💡 Stack의 특징 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 꺼내올 수 있음( 중간의 자료를 꺼낼 수 없음) Last In First Out (LIFO : 후입선출) 구조 택배 상자가 쌓여있는 모양 가장 최근의 자료를 찾아오거나 게임에서 히스토리를 유지하고 이를 무를때 사용 함수의 메모리는 호출 순서에 따른 stack 구조 jdk 클래스 : Stack 🧑🏻‍💻 배열을 활용하여 Stack 구현하기 MyArrayStack.Java package ch04; import ch02.MyArray; public class MyArrayStack { int top; // 스택의 최상위 데이터 위치 MyArray arrayStack; //MyArray 참조형 변수 public MyArrayStack() {..
· Java
💡 LinkedList 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인터)가 있음 자료가 추가 될때 노드 만큼의 메모리를 할당 받고 이전 노드의 링크로 연결함(정해진 크기가 없음) 연결 리스트의 i 번째 요소를 찾는데 걸리는 시간은 요소의 개수에 비례 : O(n) jdk 클래스 : LinkedList 🧑🏻‍💻 LinkedList 구현하기 MyListNode.java public class MyListNode { //리스트 객체 private String data; // 데이터 public MyListNode next; // 다음 노드를 가리키는 링크 public MyListNode() { //디폴트 생성자 //맴버 변수 null ..
· Java
💡배열(Array)의 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 정해진 크기 요소의 추가, 제거 시 다른 요소들의 이동이 필요함 배열의 N 번째 요소를 찾는 인덱스 연산이 빠름 jdk 클래스 ArrayList, Vector 🔨 Array 구현 MyArray.java package ch02; public class MyArray { int[] intArr; //int array int count; //개수 public int ARRAY_SIZE; public static final int ERROR_NUM = -999999999; public MyArray() { //디폴트 생성자 count = 0; //요소의 개수 ARRAY_SIZE = 10; //배열의 크기 intArr = new in..
· Java
* 해당 블로그 포스팅은 필자가 개인적으로 공부하고 리뷰하는 용도로 작성되었습니다. 필자는 회사에서 문자열 데이터를 다룰 때가 많다. 그래서 자바를 공부할 때도 문자열 데이터 처리를 위주로 공부한다. 이번에는 자바에서 문자열을 자유자재로 유용하게 사용할 수 있는 문자열 관련 클래스들에 대해 공부하고 리뷰해본다. String String 클래스의 특징은 다음과 같다. * 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀에 있는 주소를 참조하는 두 가지 방법이 있다. * 힙 메모리는 생성될때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가진다. 소스를 보자. public class StringTest { public static void main(String[] args) { // ..
· Java
* 본 포스팅은 JAVA의 정석을 복습한 내용을 위주로 작성되었습니다. Arrays * Arrays 클래스에는 배열을 다루는데 유용한 메서드가 정의되어있음. * Arrays에 정의된 toString( ) 메서드 -> 모든 기본형 배열과 참조형 배열 별로 하나씩 정의함. static String toString(boolean[] a) static String toString(byte[] a) static String toString(char[] a) static String toString(short[] a) static String toString(int[] a) static String toString(long[] a) static String toString (float [] a) static Str..
· Java
* 해당 게시글은 JAVA의 정석 스터디 복습 용으로 작성되었습니다. [Stack vs Queue] - 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조로 되어있다. - 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어있다. - 0->1->2 순으로 데이터를 삽입했을 때, 스택 은 2->1->0 순으로 삭제한다. : LIFO 큐 는 0->1->2 순으로 삭제한다. : FIFO [참고] 스택은 자바에서 제공하는 클래스가 있지만, 큐는 인터페이스로만 정의되어 있어 따로 구현이 필요하다. 예제 package ch11; import java.util.*; public class StackQueueEx ..
runnnerDevHong
'Java' 카테고리의 글 목록